Creating a birthday promotion via Braze
Birthdays are a great opportunity to give presents to someone so treating your customers with a discount on their birthday is a great way to increase brand loyalty. In this tutorial, let's see how to build a birthday promotion using Braze and Talon.One.
Let's imagine that we want to email a customer on their birthday via Braze. This email contains a coupon for the customer. The coupon's validity starts on the day the email is sent to the customer and ends 7 days after that date.
When the customer redeems the coupon within its validity period, they get 10% off on their whole order.
Talon.One requirements
Ensure you already have an Application set up and that it contains a running campaign with the Coupons feature enabled.
You can edit the default format of the coupon codes in the campaign's Settings section.
Braze requirements
We assume that you have set up your Braze account and that you have an active Braze campaign for which you want to generate coupon codes.
We also assume that the campaign is configured so that it sends an email to customers on their birthday.
See Creating an email campaign for more information.
Creating an API key in Talon.One
In the Campaign Manager, create a Braze-specific API key:
- In your Talon.One Application, click Settings > Developer settings.
- Click Create API Key.
- For Do you want to use this API Key with a 3rd party service?, select Yes.
- From Platform, select Braze.
- Select an expiration date, and click Create API Key.
- Copy the key for later use.
We will use the API key in the Braze campaign template.
Creating the birthday coupon code
To generate a coupon from Braze, we call the following endpoint:
https://integration.talon.one/braze/coupon
See API Docs
To trigger the endpoint, we must use Braze's Connected Content feature and Braze's Liquid tags.
We assume that your customer profile in Braze contains a unique identifier that is equal to the customer integration ID in Talon.One.
In this tutorial, we use ${user_id}
. Ensure the user ID matches the integration ID in Talon.One.
-
Open your Braze email campaign for editing.
-
According to the Braze docs, add the following Connected Content call to the email body, where:
YOUR_DEPLOYMENT_URL
is the base URL of your Talon.One deployment.YOUR_APPLICATION_ID
is the ID of your Application in Talon.One.YOUR_CAMPAIGN_ID
is the ID of your campaign in Talon.One.YOUR_API_KEY
is the API key you created.
{% assign today = 'now' | date: "%Y-%m-%dT%H:%M:%SZ" %}
{% assign todayinseconds = 'now' | date: "%s" %}
{% assign seven_days = {{todayinseconds}} | plus: 604800 | date: "%Y-%m-%dT%H:%M:%SZ" %}
{% capture postbody %}
{"deploymentUrl": "YOUR_DEPLOYMENT_URL", "applicationId":YOUR_APPLICATION_ID, "campaignId":YOUR_CAMPAIGN_ID, "identifier":"{{campaign.${dispatch_id}}", "integrationId":"{{${user_id}}}", "startDate":"{{today}}", "expiryDate":"{{seven_days}}"}
{% endcapture %}
{% connected_content https://integration.talon.one/braze/coupon
:headers {
"Authorization": "ApiKey-v1 YOUR_API_KEY"
}
:method post
:body {{postbody}}
:content_type application/json
:save result
%}
<p>Your coupon code is: {{result.Value}}</p>noteresult.Value
must be written with a capitalV
, according to the response of the Create coupon endpoint. -
To test your request:
- Click Preview in the template editor.
- In Preview as User, click Select existing user and search for an existing user in Braze.
You should see a coupon code.
noteA new coupon code is only generated when you use the preview function for the first time. This is because the
dispatch_id
isn't available at campaign creation. When your campaign is running, the call behaves as expected.
Your birthday coupon codes are now generated automatically when your campaign is running. The coupon start date is set as the time Braze sent the email. The coupon end date is the time Braze sent the email + 7 days.