Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Contents

Table of Contents

Purpose

This document aims to explain in detail how BK ES will migrate their Loyalty system from SessionM to RBI. Prior understanding of the RBI Loyalty API is required.

Assumptions

Info

List of assumptions coming from the original RBIberia plans.

  • SessionM is a third party Loyalty engine (like Salesforce is for CRM - Session M is for Loyalty)

  • The BK ES apps (native) are provided by Airtouch, using BE integrations with Homeria for guests (including authentication) and delivery orders (menu, restaurant, prices), and with Airtouch for collection orders

  • Both the Airtouch and Homeria back end services integrate with SessionM for loyalty

  • User data and authentication of users is entirely managed by Homeria

  • WinRest and Tillster call SessionM directly for Loyalty. There is no integration with Airtouch or Homeria

  • Kiosks do not show the guest’s Loyalty Tier

  • Rewards are configured in SessionM (Rewards Store)

  • Offers/Coupons are just PLU’s with a set price, and they are not available on delivery so they are only configured in Airtouch

  • Website is Homeria (both FE and BE)

  • It is possible to authenticate SessionM transactions using an email address (there is an endpoint to retrieve the SessionM ID using an email address)

  • The Airtouch app does not allow scanning offers to add them to the basket on the Kiosk or POS. Instead, there is only a static loyalty code to authenticate.

...

  • To add offers while ordering on a kiosk, guests need to be logged into the Airtouch app, see the offer code and input it in the kiosk

Decisions

Info

List of decisions taken during the planing process in coordination between RBI and RBIberia.

Points expiry

Note

Under discussion

Loyalty Tiers

Note

Under discussion

Cancellations and refunds

  • There are no gaps with cancellations and refunds initiated by the POS, since they will use both the RBI and SessionM API’s

  • For cancellations and refunds currently handled in SessionM, during the transition period support staff will continue to use SessionM and, in addition, will repeat the operation on the RBI Admin Tool

  • This will guarantee that cancellations and refunds result in the same loyalty points balance in both RBI and SessionM

Overall Plan

This is the overall plan agreed with RBIberia for the loyalty system migration:

...

Phase 0 (pre & cleanup)

During this phase, both user and loyalty data is kept synchronized between SessionM and RBI.

Plan

...

Expected to run for weeks

...

Guests will earn but not burn

...

All clients apps (Airtouch, Homeria, Winrest, Tillster) will continue to record loyalty transactions on Session M (no integration to RBI loyalty yet)

...

Guest and loyalty data (including email addresses, loyalty points balance, loyalty tier and loyalty transactions) will be migrated from SessionM to RBI, as a one time data dump and load before Phase 1 starts

...

The above will be accomplished by extracting data into CSV files which will be placed in an RBI S3 bucket, and ingested with a script. CSV files will need to be obtained from Homeria (user data) and SessionM (loyalty data including points balance, tier and loyalty transactions).

...

At the end of the data migration above, RBI will provide a list of RBI Cognito ID’s and RBI Loyalty ID’s for all users, to be imported by Homeria

...

The RBI app is not live (all guests will use the Airtouch app)

...

There will be no users created via the RBI apps (only via the Airtouch app or Homeria website)

...

Contents

Table of Contents

Purpose

This document aims to explain in detail how BK ES will migrate their Loyalty system from SessionM to RBI. Prior understanding of the RBI Loyalty API is required.

Assumptions

Info

List of assumptions coming from the original RBIberia plans.

  • SessionM is a third party Loyalty engine (like Salesforce is for CRM - Session M is for Loyalty)

  • The BK ES apps (native) are provided by Airtouch, using BE integrations with Homeria for guests (including authentication) and delivery orders (menu, restaurant, prices), and with Airtouch for collection orders

  • Both the Airtouch and Homeria back end services integrate with SessionM for loyalty

  • User data and authentication of users is entirely managed by Homeria

  • WinRest and Tillster call SessionM directly for Loyalty. There is no integration with Airtouch or Homeria

  • Kiosks do not show the guest’s Loyalty Tier

  • Rewards are configured in SessionM (Rewards Store)

  • Offers/Coupons are just PLU’s with a set price, and they are not available on delivery so they are only configured in Airtouch

  • Website is Homeria (both FE and BE)

  • It is possible to authenticate SessionM transactions using an email address (there is an endpoint to retrieve the SessionM ID using an email address)

  • The Airtouch app does not allow scanning offers to add them to the basket on the Kiosk or POS. Instead, there is only a static loyalty code to authenticate.

...

  • To add offers while ordering on a kiosk, guests need to be logged into the Airtouch app, see the offer code and input it in the kiosk

Decisions

Info

List of decisions taken during the planing process in coordination between RBI and RBIberia.

Points expiry

Note

Under discussion

Loyalty Tiers

Note

Under discussion

Cancellations and refunds

  • There are no gaps with cancellations and refunds initiated by the POS, since they will use both the RBI and SessionM API’s

  • For cancellations and refunds currently handled in SessionM, during the transition period support staff will continue to use SessionM and, in addition, will repeat the operation on the RBI Admin Tool

  • This will guarantee that cancellations and refunds result in the same loyalty points balance in both RBI and SessionM

Overall Plan

This is the overall plan agreed with RBIberia for the loyalty system migration:

...

Phase 0 (pre & cleanup)

During this phase, both user and loyalty data is kept synchronized between SessionM and RBI.

Plan

  • Expected to run for weeks

  • Guests will earn but not burn. Change of plans in March: guests will continue to burn, because RBIberia does not want to risk a drop in sales by preventing burn.

  • All clients apps (Airtouch, Homeria, Winrest, Tillster) will continue to record loyalty transactions on Session M (no integration to RBI loyalty yet)

  • Change of plans in March: all client apps will also send earn transactions to RBI (burn transactions will not be sent). The purpose is to test the RBI system’s performance and ensure that we record loyalty transactions accurately. During this phase, we will compare transactions between RBI and SessionM (although the loyalty points balance is not expected to match).

  • Guest and loyalty data (including email addresses, loyalty points balance, loyalty tier and loyalty transactions) will be migrated from SessionM to RBI, as a one time data dump and load before Phase 1 starts

    • ACTION REQUIRED: review the point above. We need to delete loyalty transactions done up to this point as well

  • The above will be accomplished by extracting data into CSV files which will be placed in an RBI S3 bucket, and ingested with a script. CSV files will need to be obtained from Homeria (user data) and SessionM (loyalty data including points balance, tier and loyalty transactions).

  • At the end of the data migration above, RBI will provide a list of RBI Cognito ID’s and RBI Loyalty ID’s for all users, to be imported by Homeria

  • The RBI app is not live (all guests will use the Airtouch app)

  • There will be no users created via the RBI apps (only via the Airtouch app or Homeria website)

  • No need for rollback

Scenarios

Mobile order, click & collect

  • Guest opens the Airtouch app

  • Guest fills their basket and completes the order

  • As part of the order process, the app calls the Airtouch BE

  • Airtouch BE updates SessionM

  • Airtouch BE updates RBI Loyalty

    • Call Identify by sending the email address

    • Call Transaction Update (CLAIMED) with an empty basket

Mobile order, delivery

  • Guest opens the Airtouch app

  • Guest fills their basket and completes the order

  • As part of the order process, the app calls the Homeria BE

  • Homeria BE updates SessionM

  • Airtouch BE updates RBI Loyalty

    • Call Identify by sending the email address

    • Call Transaction Update (CLAIMED) with an empty basket

In-store order on a Tillster kiosk

  • Guest opens the Airtouch app or Homeria website and asks to show the Loyalty ID / SessionM ID

  • Airtouch app / Homeria should already have the static SessionM ID in the session

  • Guest scans the SessionM ID on the Tillster kiosk and authenticates (this returns the email address)

  • Guest fills up their basket and completes the order (this retrieves the basket price calculation)

  • Tillster creates a loyalty transaction in SessionM

  • Tillster creates a loyalty transaction in RBI

    • Call Identify by sending the email address

    • Call Transaction Update (CLAIMED) with an empty basket

In-store order on WinRest POS

  • Guest opens the Airtouch app or Homeria website and asks to show the Loyalty ID / SessionM ID

  • Airtouch app / Homeria should already have the static SessionM ID in the session

  • Guest scans the SessionM ID on the scanner and authenticates (this returns the email address)

  • Guest/operator completes the order (this retrieves the basket price calculation)

  • WinRest creates a loyalty transaction in SessionM

  • WinRest creates a loyalty transaction in RBI

    • Call Identify by sending the email address

    • Call Transaction Update (CLAIMED) with an empty basket

Changes needed

RBI

  • S3 data load script to be modified to capture loyalty data from SessionM also (which will result in creating a loyalty ID for each user)

  • Data extract from RBI (currently only RBI Cognito ID's) to include RBI Loyalty ID

SessionM

  • Disable rewards

  • Extract of loyalty data (loyalty points balance, tier and loyalty transactions)

Homeria

  • Extract of user data (SessionM ID required to link with the above)

Airtouch

  • Remove screens that will not be used (discussed separately)

Tillster

  • No changes required

WinRest

  • No changes requiredCall RBI Loyalty API (Identify and Transaction Update)

WinRest

  • Call RBI Loyalty API (Identify and Transaction Update)

Phase 1 (big bang)

Plan

  • All client apps will use primarily RBI Loyalty, and SessionM as a backup in case a rollback is needed. Both RBI and SessionM should have the same loyalty transactions and points balance to start with

  • This requires Airtouch, Homeria (because of the website and app/delivery), Tillster and WinRest to modify their software to introduce RBI Loyalty in addition to SessionM

  • Airtouch app will use RBI loyalty codes for in-store identification, instead of SessionM codes

  • Guests will continue to earn but not burn

  • No rewards will be shown (reward configuration in Sanity will be done on phase 2)

  • Registration and authentication on the Airtouch app or Homeria website will continue to use Homeria

  • New users created on the app or website will be synchronized from Homeria to RBI using an existing endpoint (same that we used for BK PT)

  • The endpoint above will be modified to respond with the RBI Loyalty ID, which will then be stored in Homeria to be used when calling the RBI Loyalty API. The RBI Loyalty ID will then be made available to the Airtouch app

Scenarios

Mobile order, click & collect

  • Guest opens the Airtouch app

  • App calls Get User Details from RBI, using the RBI Loyalty ID as input. This endpoint will retrieve loyalty points balance and loyalty tier

  • Guest fills their basket and completes the order

  • As part of the order process, the app calls the Airtouch BE

  • Airtouch BE updates RBI Loyalty:

    • Call Create Transaction using the RBI Loyalty ID

    • Call Transaction Update with an empty basked and set the transaction to CLAIMED

  • Airtouch BE updates SessionM:

    • (optional) Call SessionM to retrieve the SessionM ID using the email address as input

    • Replicate the transaction above in SessionM

Mobile order, delivery

  • Guest opens the Airtouch app

  • App calls Get User Details from RBI, using the RBI Loyalty ID as input. This endpoint will retrieve loyalty points balance and loyalty tier

  • Guest fills their basket and completes the order

  • As part of the order process, the app calls the Homeria BE

  • Homeria BE updates RBI Loyalty:

    • Call Create Transaction using the RBI Loyalty ID

    • Call Transaction Update with an empty basked and set the transaction to CLAIMED

  • Homeria BE updates SessionM:

    • Retrieve the SessionM ID (this step is not needed because the Homeria BE stores the guest’s SessionM ID)

    • Replicate the transaction above in SessionM

...

  • Guest opens the Homeria website

  • Website calls Get User Details from RBI, using the RBI Loyalty ID as input. This endpoint will retrieve loyalty points balance and loyalty tier

  • Guest fills their basket and completes the order

  • As part of the order process, the website calls the Homeria BE

  • Homeria BE updates RBI Loyalty:

    • Call Create Transaction using the RBI Loyalty ID

    • Call Transaction Update with an empty basked and set the transaction to CLAIMED

  • Homeria BE updates SessionM:

    • Retrieve the SessionM ID (this step is not needed because the Homeria BE stores the guest’s SessionM ID)

    • Replicate the transaction above in SessionM

In-store order on a Tillster kiosk

  • Guest opens the Airtouch app or Homeria website and asks to show the Loyalty ID

  • Airtouch app / Homeris Homeria website calls the RBI Get Loyalty OTP endpoint

  • Guest scans the OTP on the Tillster kiosk

  • Tillster calls the RBI Identify endpoint and uses the OTP to authenticate the guest

  • Tillster calls the RBI Get User endpoint in the background to retrieve the email address in the session (to use later during the SessionM transaction)

  • If guest wants to use offers, they would input their code directly in the kiosk. These offers are not configured in RBI

  • Guest completes the order

  • Tillster updates RBI Loyalty (this should be similar to what happens today on PLK ES):

    • Call Transaction Validate

    • Call Transaction Update (CLAIMED) with an empty basket

  • Tillster updates SessionM:

    • (optional) Call SessionM to retrieve the SessionM ID using the email address as input

    • Replicate the transaction above in SessionM

...