Examples
How to implement Webhooks for your LoyaltySurf campaign.
Example 1: Webhooks
Below is a Node.js + Express example of what the code for your webhook endpoint could look like:
//Your webhooks payload endpoint
app.post("/your/webhook/payload-url", function(req, res) {
const body = req.body;
try {
if (body.event === 'PARTICIPANT_SUBMITTED_REWARD_FORM') {
// Write code here to do something when a participant submits a reward form
console.log(`${body.data.participant.email} just submitted a reward form: ${body.data.reward.description} - ${body.data.reward.cta}`);
} else if (body.event === 'PARTICIPANT_REACHED_A_GOAL') {
// Write code here to do something when a participant wins a reward
console.log(`${body.data.participant.email} just won this reward: ${body.data.reward.description}`);
// If the reward is approved
if (body.data && body.data.reward && body.data.reward.approved) {
// Do something
// Optional: If you set metadata on the CampaignReward object, you can reference it:
if (body.data.reward.metadata && body.data.reward.metadata["proRewardValue"]) {
console.log(`${body.data.participant.email} earned an amount of ${body.data.reward.metadata["proRewardValue"]}.`);
}
}
} else if (body.event === 'NEW_PARTICIPANT_ADDED') {
// Write code here to do something when a new participant is added
console.log(`${body.data.email} just joined via source: ${body.data.loyaltyActionSource}.`)
} else if (body.event === 'CAMPAIGN_ENDED') {
// Write code here to do something when a campaign ends
console.log(`${body.data.name} just ended with ${body.data.loyaltyActionCount} total loyalty actions!`);
}
} catch (err) {
res.status(400).end();
}
res.json({received: true});
});Example 2: Webhooks (with secret)
Below is a Node.js + Express example (using the crypto-js library) of what the code for your webhook endpoint could look like:
Last updated
Was this helpful?