Fetching a loyalty ledger in Braze
Let's set up Braze to retrieve the loyalty ledger information of a customer from Talon.One.
To do this, we must send a request to Talon.One from a campaign or canvas body using the List customer data endpoint.
Talon.One requirements
- You have an Application and a campaign set up.
- You have at least one customer profile in your Application. This profile also exists in Braze.
- You have set up a profile-based loyalty program.
- Your loyalty program contains awarded points.
Braze requirements
- You have created a campaign or canvas in Braze.
- You have a way to identify a given customer across Talon.One and Braze.
In this tutorial, we assume a customer's Talon.One
integrationId
is always equal to Braze'suser_id
. You can also create a new property on your Braze customer profiles to store Talon.One's integration ID.
Creating an API key in Talon.One
In the Campaign Manager, create a Braze-specific API key:
-
In your Application, click Settings > Integration API Keys.
-
Click Create API Key.
-
In the Create API Key drawer, select Production as the key type.
-
In Key name, type a name to identify the key.
-
In Key expiration date, select a date.
-
In Third-party integration, select Yes.
-
From Platform, select Braze.
-
Click Create API Key.
-
Click to copy the key for use.
noteYou cannot view or copy the API key after closing the drawer. If you lose it, create another API key.
We will use the API key in the Braze campaign template.
Retrieving the loyalty information in Braze
To retrieve the loyalty ledger information:
-
Send a request to the List customer data endpoint with the
loyalty
query parameter set totrue
.
For example, use curl or a similar tool to send the following request, where:YOUR_SUBDOMAIN
is your Talon.One subdomain name.CUSTOMER_INTEGRATION_ID
is the integration ID of the customer profile in Talon.One.YOUR_API_KEY
is the API key you created.
curl 'https://YOUR_SUBDOMAIN.talon.one/v1/customer_profiles/CUSTOMER_INTEGRATION_ID/inventory?loyalty=true' --header 'Authorization: ApiKey-v1 YOUR_API_KEY'
-
Check the response. It contains all the loyalty information of this customer profile.
Response sample
{
"loyalty": {
"programs": {
"myProgram": {
"id": 323414846,
"title": "My loyalty program",
"name": "myProgram",
"ledger": {
"currentBalance": 46,
"pendingBalance": 10,
"expiredBalance": 30,
"spentBalance": 84,
"tentativeCurrentBalance": 56,
"currentTier": {
"id": 11,
"name": "bronze"
},
"pointsToNextTier": 20,
}
}
}
}
}
Displaying the loyalty ledger information in Braze
To trigger the Talon.One customer data endpoint, let's use Braze's Connected Content feature.
You can use it in every campaign message body or any canvas message body.
We assume that your Braze setup sets an attribute for each user equal to the value of
the customer profile's integrationID
in Talon.One. This allows you to dynamically
retrieve the loyalty points of any user. We call this attribute ${user_id}
in this
tutorial.
-
Open your Braze campaign or canvas for editing.
-
Add the following Connected Content call to the body of your message, where:
YOUR_SUBDOMAIN
is your Talon.One subdomain name.YOUR_API_KEY
is the API key you created.YOUR_PROGRAM_NAME
is the name of your loyalty program.
{% connected_content https://YOUR_SUBDOMAIN.talon.one/v1/customer_profiles/{{${user_id}}}/inventory?loyalty=true
:headers {"Authorization": "ApiKey-v1 YOUR_API_KEY"}
:method get
:content_type application/json
:save result
%}
Total points in YOUR_PROGRAM_NAME:
{{result.loyalty.programs.YOUR_PROGRAM_NAME.ledger.currentBalance}} -
To test your request and its parsing, click Preview in the template editor.
tipWe highly recommend you use Postman or similar tools to ensure you understand the structure of the response of the List customer data endpoint.