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:

  1. Generate and upload a file with promo codes to your Reteno account.
  2. Create an additional field for user profiles in which the promo code will be recorded.
  3. Connect the HTTP request data source in your Reteno account.
  4. Prepare a message with velocity variables to transfer promo codes.
  5. Create a workflow by which a message will be sent, and a promo code will be passed.

1. Uploading a File with Promo Codes

Prepare a list of promo codes in the following format:

606

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.

1503

3. Connecting HTTP Request

  1. Go to your account settings -> Data sources -> New data source -> External data sources.
1508
  1. Select the HTTP request external data source.
1221
  1. Set the arbitrary source name.
  2. Select the POST protocol type and specify the protocol https://api.reteno.com/api/v1/contact. This API resource will update the data of the users participating in the campaign, adding the received promo codes to user profiles in Reteno. If you need to update the user information in your system, specify the appropriate protocol.
1379
  1. Activate the Pass JSON in the request body switcher and enter the request body in the corresponding field:
{
     "channels": [
          {
               "type": "contact unique identifier: email, sms or mobilepush",
               "value": "$data.get('contact_unique_identifier')"
          }
     ],
     "fields": [
          {
               "id": "ID of the contact card field created at the previous stage, where the promo code will be recorded",
               "value": "$data.get('promocode')"
          }
     ]
}
1379

4. Message Creating

This functionality works in each of the channels available in the Reteno system. We will demonstrate how to set it up using a mobile push notification as an example.

  1. Set an arbitrary name for the message.
  2. 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')
1514

Users who receive the message will see it like this (depending on the OS of the mobile device):

463

5. Workflow Creation

The workflow should have 5 required blocks:

1553
  1. The Start block.
  2. Get contact task — the block extracts user data from the Reteno database, including the user’s token to which the push will be sent.
  3. 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.
  1. The message block.
  2. 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.
1450