Loyalty Program in Two Verticals

This implementation example features a new customer who engages with a reward store in a series of actions that grow the balance of their point account, which allows them to buy an offer that is then redeemed as part of a larger purchase transaction. Featured prominently in this discussion are sample mobile app screens for two different verticals, QSR (Quick Service Restaurant) and Airline.

Customer Experience

First, the customer signs up for a loyalty program. Then, over time, they make a few purchases. With their point balance in mind, the customer accesses a reward store and reviews what offers are available to them. These might include monetary discounts, gift cards, and specific items available for a specified number of points. The customer purchases an offer, which is added to their wallet and can then be redeemed in the next transaction.

You can review how a sequence of mobile app screens might look for a loyalty program in two verticals: QSR and Airline.

In the QSR (Quick Service Restaurant) example below, the customer's experience transpires in a series of screens that interact with a reward store called "Fancy Fries." Once registered for the Fancy Fries loyalty program and in possession of 145 points accumulated from making purchases, the customer, Amanda, can review the reward store's offers that she has access to in a rewards exchange screen, as shown in steps 3 and 4:

It appears that the top two offers are of special interest to Amanda: one for the curly fries, which requires 80 points; and, one for a selection of dips that requires 100 points. These two offers are visible in her "My rewards" screen, shown in step 5, when actual points are spent for the offers; once purchased, the offers are added to Amanda's wallet. Finally, step 7 demonstrates how everything comes together: Amanda makes a larger purchase for a pulled pork loaded fries, and, in the same transaction, redeems only the offer that provides her with an order of curly fries. Total cost for Amanda is only $15 thanks to some smart purchasing decisions.

In the Airline example below, the customer's experience transpires in a series of screens that interact with a reward store called "AVIA Travel." Once registered for the Avia loyalty program and in possession of points accumulated from making purchases, the customer, Amanda, can review the reward store's offers that she has access to in a rewards exchange screen, as shown in steps 3 and 4:

It appears that three offers are of special interest to Amanda: one for the an $100 AVIA gift card, which requires 20,500 points; one for a $500 Amazon gift card that requires 63,000 points; and, one for a $250 Best Buy gift card for 31,500 points.

Amanda decides to purchase the Avia travel discount, valued at $100. This reward is visible in her "Rewards store" screen, shown in step 5. Amanda can now click the Buy button and spend the 20,500 points necessary to purchase the reward, which is then added to the wallet in step 6. Finally, step 7 demonstrates how a new purchase is made with the benefit of an applied discount: Amanda makes a larger purchase for a round trip ticket between JFK and BOS, and, in the same transaction, redeems the reward that reduces her cost by $100.

APIs Enabling Customer Experience

While the sequences in the tabs above center primarily on the customer's focus, each step along the way is enabled by a corresponding API that requires a specific endpoint. The endpoints that implement the mobile app screens above are available in several SessionM APIs.

Step Action Supporting API Routes Related Use Case
1 Signs up. /priv/v1/apps/:api_key/users Create, Modify, and Forget Customer Profile
2 Gains points. /api/2.0/send_transaction Buy and Redeem Reward Store Offer in Purchase Transaction
Qualify Customer for Loyalty Tier Based on Purchase
Qualify Customer for Loyalty Tier Based on Action
Use Promo Code to Acquire Offer and Apply to Transaction
Award Outcome for Transaction Based on Product SKU
3 Accesses reward store. /api/2.0/offers/rewardstores/get_user_reward_stores Buy and Redeem Reward Store Offer in Purchase Transaction
4 Reviews available offers. /api/2.0/offers/rewardstores/get_reward_store_offers Buy and Redeem Reward Store Offer in Purchase Transaction
5 Purchases rewards store offer. /api/2.0/offers/rewardstores/purchase_offer Buy and Redeem Reward Store Offer in Purchase Transaction
Integrate Offer with External System
6 Adds offer to wallet. /api/2.0/offers/get_user_offers Buy and Redeem Reward Store Offer in Purchase Transaction
7 Redeems offer in next transaction. /api/2.0/offers/redemption/redeem Buy and Redeem Reward Store Offer in Purchase Transaction

Example Screens

Consider two screens typical of a mobile app implemented with the platform: The "Rewards exchange" for a QSR and the "My rewards" page for an airline. The purpose of each page is to provide the customer with a look at their data, particularly their point balance. But the pages also allow them to engage with a game that's been integrated with the app, as well as execute specific actions such as claiming a promo code and redeeming an offer.

Each screen built with the SMP presents opportunities to the customer who is navigating a mobile app. Pages can offer customers a few different categories of interaction with the platform's data, including data to display, games to play and actions to take. The following table describes the endpoint and the response object fields related to each component of the mobile app that's been implemented:

Callout Description Supporting API Routes Response Object and Field
1 Display available point balance. /api/2.0/offers/get_user_offers

/api/2.0/lookup

payload.available_points
payload.total points
user.points

2 Cataboom gamification integration.
(Optional integration add-on.)
Contact your SessionM representative for Cataboom integration details. Not applicable.
3 Claim promo code. /priv/v1/apps/:api_key/users/:user_id/promotions/claims
/priv/v1/apps/:api_key/external/users/:external_id/promotions/claims
claim.rewards{}
4 Redeem issued offer. /api/2.0/offers/redemption/redeem

/api/2.0/redeem

payload.is_valid
payload.message
discount.reference_id
discount.status