Rewards Webhook
Send the reward outputs like points, merchandise, cashbacks, coupons to your servers

A webhook url can be provided to CustomerGlu to receive the rewards won by users in real-time
A POST request will be made to the specified Webhook URL . Example request body is as follows
{
"campaignId": "xyz41c29-bb0d-4fe6-8260-1403d1c0e964",
"type": "scratchcard",
//"direct","spinthewheel","slotmachine","memorygame","quiz",giftbox,...//
"userId": "testuser1",
"rewardId": "xyzbb3ca-093f-43f2-84ba-8d5ed0d6c1b4",
//rewardId will be unique and can be used as a de-duplication filter
"rewardName": "200 Coins",
"rewardAmount": 400 //optional
"code": "CODE123"//optional
"details": {//optional
"userBName": "testuser2", //in case of a reward for a referral
"userBId": "testuser2"//in case of a reward for a referral
"userAName": "testuser0", //in case of a reward for a referral
"userAId": "testuser0"//in case of a reward for a referral
"rewardCategory": "RM",//custom attribute
"currency":"USD"//custom attribute
}
//details object can also contain any logic/business specific custom attributes which can be given as a campaign input//
}
Optionally, to verify the authenticity of request, a secret token can be provided to CustomerGlu.
When you set a token, you'll receive the X-CG-SIGNATURE
header in the webhook POST
request. value of this header will be a hmac hexdigest of the request body with the provided token. See on how to validate the requests
Validating Reward Webhook
const verifySignature = (reqBodyDigest, cgHeader) => {
return crypto.timingSafeEqual(Buffer.from(cgHeader), Buffer.from(`${reqBodyDigest}`));
}
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/hook', (req, res) => {
const jsonString = JSON.stringify(req.body);
const reqBodyDigest = crypto.createHmac('sha1', token)
.update(jsonString)
.digest('hex');
const cgHeader = req.headers['x-cg-signature'];
const verify = verifySignature(reqBodyDigest, cgHeader)
}
Webhook Payload Customization
You can define your own schema for the webhook payload. Below are the default keys that we will send as part of the payload. You can extend this with additional custom attributes as needed.
Default Keys
campaignId
,type
,rewardType
,userId
,rewardId
,status
,transactionId
,rewardName
,rewardAmount
,body
,rewardExpiry
,tnc
,code
,details
.
How To Use
Use the
$
symbol with Default Keys to access dynamic values, and static values can be accessed without the$
symbol.
Example Screenshots from CustomerGlu Dashboard > Dev Console > Reward Webhook.

Example Payload You Will Receive After Setting Up the Reward Webhook.

Setting Up Reward Webhook from the Dashboard
Whitelisting CustomerGlu Webhook IPs
The following IP address(es) should be whitelisted by your Server, to receive Webhook requests from CustomerGlu:
20.207.108.216
Last updated
Was this helpful?