Skip to content

SessionM Loyalty Platform

SessionM is a customer engagement and loyalty platform that provides campaign management features and loyalty management solutions to help marketers drive targeted outreach to increase engagement and profitability.

Prerequisites

Source Requirement Description
Braze A Braze REST API key A Braze REST API key with trigger_send permissions. This can be created in the Braze dashboard from Settings > API Keys.
Braze A Braze REST endpoint Your REST endpoint URL. Your endpoint will depend on the Braze URL for your instance.
Braze and SessionM Matching identifier To use the integration, ensure that both SessionM and Braze have a record of the identifiers used by each platform. References to user_id correspond to SessionM’s user identifier generated at the time of profile creation in SessionM.
SessionM A SessionM account A SessionM account is required to take advantage of this partnership.
SessionM A SessionM Core REST endpoint Your endpoint will depend on the SessionM URL of your instance. This can be created in the SessionM dashboard from Digital Properties.
SessionM A SessionM Core REST API key The SessionM API key associated with your instance and the Braze integration. This key can be used for all core based calls including tags. This can be created in the SessionM dashboard from Digital Properties.
SessionM A SessionM Core REST API secret The SessionM API secret associated with your instance and the Braze integration. This key can be used for all core based calls including tags. This can be created in the SessionM dashboard from Digital Properties.
SessionM A SessionM Connect REST endpoint Your endpoint will depend on the SessionM URL of your instance. Please reach out to your SessionM technical account manager or Delivery team to provide.
SessionM A SessionM Connect REST Authorization string The SessionM Connect Basic Authorization string associated with your instance. This authentication string can be used for all connect based calls including get_user_offers. Please reach out to your SessionM technical account manager or Delivery team to provide.
SessionM A SessionM Connect REST Retailer ID A unique guid identification to the specific customer associated with your instance. Reach out to your SessionM technical account manager or Delivery team.

Use cases

The following use cases showcase a few ways to leverage the SessionM and Braze integration.

  • Create segmentation that incorporates data across all loyalty, customer management, and messaging platforms.
  • Use robust segmentation to target specific user sets with offers and promotions.
  • Take advantage of the most up-to-date user, offer, and loyalty information when sending messages.
  • Provide detailed notifications to customers on the progress and completion of promotional and loyalty activities.
  • Notify customers when a new offer is awarded and provide the offer details.

Integrating SessionM with Braze

Step 1: Create a segment in Braze

In Braze, create a segment of users to target with SessionM promotions and offers.

Segment Builder with the "Custom Attributes" filter selected.

Step 2: Import Braze segments into SessionM

First, create a webhook campaign in Braze and set the webhook URL to {{endpoint_core}}/priv/v1/apps/{{appkey_core}}/users/{{${user_id}}}/tags. Use Liquid to define the user_id within the URL.

Using a raw text Request Body, compose the webhook body to include the desired tags to be added to the user profile in SessionM and the desired time to live. An example is:

1
2
3
4
5
6
 {
   "tags":[
    "braze_test"
   ],
   "ttl":2592000
}

In the Settings tab, add the key-value pairs for each request header field: - Create a key Content-Type with a corresponding value application/json - Create a key Authorization with a corresponding value Basic YOUR-ENCODED-STRING-KEY. Contact your SessionM team for the encoded string key for your endpoint.

Webhook settings.

Schedule your delivery, set your Target Audiences to target the segment you created previously, then launch your campaign.

Option 2: CSV import

Export your Braze segment using the Braze segmenter and provide a CSV file to SessionM that contains the customers to tag, the tag name, and a time to live for each user in the file.

Retrieving real-time offer wallet with Braze

Integrating SessionM with Braze allows for the real-time pulling of SessionM user data at time of message send, using Connected Content, to eliminate the risk of communicating outdated, expired or already redeemed loyalty offers to customers.

The following example shows Connected Content being used to template offer wallet data into a message. However, Connected Content can be used with any of SessionM’s Connect endpoints.

Step 1: Issue offer in SessionM

SessionM issues offers to customers from several different internal levers that can be configured. After being issued, the offers are moved to a state which SessionM calls the “offer wallet”.

A customer must complete the required action or meet the targeting and is issued the offer within SessionM.

SessionM then adds the offer to the customer’s wallet in the issued state.

Step 2: Call SessionM Offer Wallet API

In campaign or Canvas step with the SessionM offers, use Connected Content to make an API call to the SessionM get_user_offers endpoint.

In the Connected Content request, specify the user’s SessionM user_id and your retailer_id to retrieve the full list of active offers the customer has in their wallet. Each request to this endpoint can include a single user. Contact the SessionM team for the encoded string key for the basic authorization header in your Connected Content call.

In the request body, culture defaults to en-US, but you can use Liquid to template a user’s language for multi-lingual SessionM offers (for example, by using "culture":"{{${language}}}").

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{% capture postbody %}
{"retailer_id":"YOUR-RETAIL-ID","user_id":"{{${user_id}}}","skip":0,"take":1000,"include_pending_extended_data":false,"culture":"en-US"}
{% endcapture %}

{% connected_content
     {{endpoint_connect}}/offers/api/2.0/offers/get_user_offers
:method post     
:headers {
       "Content-Type": "application/json",
       "Authorization": "Basic YOUR-BASE64-ENCODED-KEY"
  }
     :body {{postbody}}
     :save wallet
%}

Step 3: Populate offer wallet to Braze messaging

After a request is made to the endpoint, SessionM returns the complete list of offers in the issued state, along with the full details for each offer. This is an example returned response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
    "status": "ok",
    "payload": {
      "user": {
        "opted_in": false,
        "activated": false,
        ...
      },
      "user_id": "00000000-0000-0000-0000-000000000000",
      "user_offers": [
        {
          "offer_id": "1a2b3324-1da6-4e49-b921-afc386dabb60",
          "offer_group_id": "00000000-0000-0000-0000-000000000000",
          "offer_type": "manual_fulfillment",
          ...
        }
      ],
      "total_records": 1,
      "offer_groups": [
        {
          "id": "00000000-0000-0000-0000-000000000000",
          "name": "All Offers",
          "sort_order": 0
        }
      ],
      "offer_categories": [
        {
          "id": "9a82f973-aae6-4e10-839b-7117a852cf9e",
          "name": "All Offers",
          "sort_order": 0
        }
      ],
      "total_points": 1000,
      "available_points": 100
    }
}

Using Liquid dot notation, this can be populated into the message. For example, to personalize the message with the resulting offer_id, you could leverage the return payload by using {{wallet.payload.available_points}, which returns 100.

Setting up triggered messaging

The integration between SessionM and Braze allows user profile data, offer details, and point balances to be dynamically populated into messaging and sent in real-time to the customer at the point of action.

Step 1: SessionM Delivery team configures templates

Collaborate with your SessionM Delivery team to develop templates for use in your triggered messaging. SessionM will insert user profile data, offer details, and point balances into the messaging and trigger them in Braze for real-time customer messaging.

Standard fields present in all templates from SessionM include:

  • canvas_id
  • campaign_id
  • broadcast flag
  • customer identifier
  • email address

Additional fields can be configured based on specific needs:

  • Offer data: offer_id, offer title, user offer id, description, terms and conditions, logo, pos discount id, expiration date
  • Point award data: point award amount, point account name
  • Event trigger data: Any data in the trigger event that utilizes the trigger/send webhook outcome
  • Campaign-specific data: campaign runtime, campaign_id, campaign name, campaign custom data

Additional fields are sent to Braze as trigger_properties for personalizing the message.

Step 2: Create a Braze campaign or Canvas

Create an API-triggered campaign or Canvas in Braze to be triggered by SessionM. If additional fields have been configured, such as offer_id or offer title, use Liquid (such as {{api_trigger_properties.${offer_id}}}) to add the personalized fields into your messaging.

API trigger properties.

In the Schedule Delivery tab, note down the campaign or Canvas ID as this will be added to SessionM campaign Advanced Settings.

API triggered campaign.

Finalize your campaign or Canvas details, and select Launch.

Step 3: Create a SessionM promotional or messaging campaign

Next, create your campaign in SessionM.

SessionM Campaign Creation.

Update the advanced settings in the SessionM campaign to include the following JSON payload containing the braze_campaign_id or braze_canvas_id.

1
2
3
4
{
"braze_campaign_id": "{{CAMPAIGN ID}}",
"braze_canvas_id": "{{CANVAS ID}}",
}

SessionM advanced settings.

Create a message trigger on the desired schedule or behavior. Then, select Braze Messaging Variant as the Messaging Variant in the External Message menu to use the template.

SessionM external message.

This template pulls the relevant static and dynamic attributes and call out to the Braze endpoint.

SessionM Braze template.

HOW HELPFUL WAS THIS PAGE?
New Stuff!