Benjamin Reynolds (Deactivated) recording → Targeted Coupons Through Braze-20220322_123641-Meeting Recording.mp4
Sanity config
Use Required assignment ruleset
On the offer in sanity, set the ‘requires assignment' rule
Find here documentation on Sanity rulesets
...
Table of Contents | ||||
---|---|---|---|---|
|
Assign Offers to Users Using Braze Webhook
Sanity Setup
Create a Config Offer (e.g. config offer for for BK UK)
you will need a different Config Offer created for each offer you would like to assign using Braze
save the
Loyalty Engine ID
of the template offer to input into Braze afterwithin this config offer, in the
Mechanics
dropdown underBenefits
you will need to link the offer benefits (e.g. Picker or Offer Combo)Make sure to add the config offer to the list of Live Config Offers in the
Live Offers
in Sanity, so the offer shows in the app to the user after it is assigned
Info |
---|
If the same offer is assigned multiple times, the user will see the same offer added multiple times to their offer list. This means that the user will see multiple instances of the same offer in their offer list - as many as offer assignments done for that offer. Each offer will maintain their own configuration settings |
Braze Configuration
Body request
Code Block | ||
---|---|---|
| ||
{ "couponIdemail": "0526d543-3871-4e9c-bec5-327ebcd3f1db{{${email_address}}}", "tokenIdsource": "braze-test", "testerrank": 123456, (optional) "userIdconfigId": "{{${user_id}}}",Loyalty engine id of config offer", "ruleParams": { "expiresOnstartDate": "2020yyyy-08-11T08:59:59.000Z" } |
...
mm-dd",
"endDate": "yyyy-mm-dd"
}
} |
Replace
configId
with the Loyalty Engine ID of the offer you want to assign using BrazetokenId
should be a unique identifier for each campaignuserId
source
should bebraze
in Production;braze-test
in lower environments (Dev, Staging)email
-> leave as isexpiresOn
-> this field determines when the offer assignment will expire, so i.e. the end of the offer life
Note |
---|
Note that in the past we relied on |
startDate
andendDate
-> required fields; theendDate
must be set after thestartDate
- this represents the duration of time the offer assignment will be available forrank
field (optional) determines the sequence priority of the assigned personalized offer. The lower the number, the higher the priority (i.e. 1 would rank at the top)
Request headers
Webhook URL
...
Info |
---|
the Hot path should be used for any user triggered campaigns that should happen in realtime
the Cold path should be used for any marketer triggered campaigns that can be processed over time
|
Example of Hot Webhook URL in Production:
Code Block |
---|
https://prod-bk-loyalty-middleware.rbictg.com/bulk-action/api/v2/braze/webhooks/assign-coupon-token |
Info |
---|
Make sure you use v2 - in the past the URL used to be v1 |
Authorization
Code Block |
---|
Authorization: Basic SCYkKk1tTnVQIiVtJCJLcUVpOWRpfmBEK3pJYkwlN24yLFhGbnpRfDpNWi4hcVgvRWI5dkZxTy45bXleNVFTTXkwZFo6WkdOJFwualRDeWFshot/create-offer |
Example of the Cold Webhook URL in Production:
Code Block |
---|
https://prod-bk-loyalty-middleware.rbictg.com/bulk-action/cold/create-offer |
If you would like to test in Staging the Offer assignment first, just replace prod
with staging
in the Webhook URL.
Markets in EU Timezone and APAC Timezone should add euc1-
and apse1-
prefixes to the URL respectively (e.g., https://euc1-prod-bk-loyalty-middleware.rbictg.com/bulk-action/cold/create-offer
)
Content-type
Code Block | ||
---|---|---|
| ||
Content-Type: application/json |
...
Loyalty Offers Assignment (New Loyalty Offers Platform)
X-Region
Code Block |
---|
x-region: gb |
Info |
---|
|
X-Api-Key
Code Block |
---|
x-api-key: string |
Note |
---|
Please reach out to Lopes da Costa, Valentina or another PM to get you access to the API Key in Production or Staging for your brand |
...
Info | ||
---|---|---|
By default, the assigned offers will have the same rules as the ones configured in Sanity. If you want to override some of these with custom rules, for example, a custom End Date & Start Date, you can pass the following arguments:
In the above example, we set the Start Date to be the time when the Offer was assigned, and we set the End Date to be 7 days after the offer was assigned (now + 604800 seconds). |
Note |
---|
|
Note |
---|
Be extremely careful and test your webhooks, once an offer is assigned to a user its rules CANNOT be changed from Sanity. |
Other resources
Assign Loyalty Points to Users Using Braze Webhook
Tip |
---|
This can be used for all Markets with Loyalty |
Body request
Code Block | ||
---|---|---|
| ||
{
"pointsEarned": 500,
"source": "braze",
"email": "{{${email_address}}}"
} |
Replace
pointsEarned
with the amount of points you would like users that receive this Braze web hook to receivesource
should bebraze
in Production;braze-test
in lower environments (Dev, Staging)email
-> leave as is
Note |
---|
Note that in the past we relied on |
Request headers
Webhook URL
Info |
---|
the Hot path should be used for any user triggered campaigns that should happen in realtime
the Cold path should be used for any marketer triggered campaigns that can be processed over time
|
Example of Hot Webhook URL in Production:
Code Block |
---|
https://prod-bk-loyalty-middleware.rbictg.com/bulk-action/hot/assign-points |
Example of the Cold Webhook URL in Production:
Code Block |
---|
https://prod-bk-loyalty-middleware.rbictg.com/bulk-action/cold/assign-points |
If you would like to test in Staging the Offer assignment first, just replace prod
with staging
in the Webhook URL.
Markets in EU Timezone and APAC Timezone should add euc1-
and apse1-
prefixes to the URL respectively (e.g., https://euc1-prod-bk-loyalty-middleware.rbictg.com/bulk-action/cold/assign-points
)
Content-type
Code Block | ||
---|---|---|
| ||
Content-Type: application/json |
X-Region
Code Block |
---|
x-region: gb |
Info |
---|
|
X-Api-Key
Code Block |
---|
x-api-key: string |
Note |
---|
Please reach out to Lopes da Costa, Valentina or another PM to get you access to the API Key in Production or Staging for your brand |
...