Passing Promo Code from Message to User Profile
The HTTP request data source allows you to send a unique promo code from a trigger message, record it to a user profile, or pass it to your server. Thus, you can automatically fix which particular promo code one or another of your users received.
Setting process:
- Generate and upload a file with promo codes to your eSputnik account.
- Create an additional field for user profiles in which the promo code will be recorded.
- Connect the HTTP request data source in your eSputnik account.
- Prepare a message with velocity variables to transfer promo codes.
- Create a workflow by which a message will be sent, and a promo code will be passed.
1. Uploading a file with promo codes to eSputnik
Prepare a list of promo codes in the following format:
Mandatory fields of the table with promo codes:
code
— promo code in any format;expirationDate
— date and time of promo codes expiration in the format 2017-12-31T23:59;discount
— promo code value from 0 to 99;type
— an arbitrary name of the promo code type;inUse
— a flag indicating whether a promo code has been used or not (true/false).
More about promo codes downloading >>
2. Adding additional field Promo code to user profiles
Read more on the creation of additional fields in the instructions. After creating an additional field, copy its ID — you will need to specify it in the body of the JSON request as a field for recording the corresponding promo codes.
3. Connecting HTTP request
- Go to your account settings -> Data sources -> New data source -> External data sources.
- Select the HTTP request external data source.
-
Set the arbitrary source name.
-
Select the
POST
protocol type and specify the protocol https://api.esputnik.com/api/v1/contacts. This API resource will update the data of the users participating in the campaign, adding the received promo codes to user profiles in eSputnik. If you need to update the user information in your system, specify the appropriate protocol.
- Activate the Pass JSON in the request body switcher and enter the request body in the corresponding field:
{
"contacts": [{
"channels": [{
"type": "user unique identifier",
"value": "$data.get('user unique identifier')"
}],
"fields": [{
"id": ID of the user profile field created at the previous stage, where the promo code will be recorded,
"value": "$data.get('promocode')"
}]
}],promocode
"dedupeOn": "user unique identifier",
"contactFields": ["user unique identifier"],
"customFieldsIDs": [user profile field ID],
"restoreDeleted": true
}
4. Message creating
This functionality works in each of the channels available in the eSputnik system. We will demonstrate how to set it up using a mobile push notification as an example.
- Set an arbitrary name for the message.
- Fill the message with the necessary content. Add a velocity variable to it, which will provide data exchange with the HTTP request external data source.
Construction syntax:
#set($url=$!data.get('your data source name'))
In the message body where the promo code should be substituted, specify the variable in the following form:
$!data.get('promocode')
Users who receive the message will see it like this (depending on the OS of the mobile device):
5. Workflow creation
The workflow should have 5 required blocks:
- The Start block.
- Get contact task — the block extracts user data from the eSputnik database, including the user’s token to which the push will be sent.
- Get promo code task — the block retrieves the promo code from the previously loaded list to insert it into the message. This task must have 3 required parameters:
days
— number of days for which the promo code must be valid;type
— the specified type of promo code from the previously loaded list;discount
— the amount of discount.
- The message block.
- The End block.
More on setting up workflow blocks >>
Set the workflow launch conditions and activate it. Each promo code received in a message by this workflow will be recorded in the profile of the corresponding user.
Updated 10 months ago