Versions Compared

Key

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

...

Lucidchart
pageCount4
autoUpdatefalse
alignleft
typerich
autoSize1
macroId1af68736-83d3-4fd5-8892-e924d3382cd0
instanceId920ae5b1-83d6-3e36-b794-1710780f64f3
pages1
width700
documentTokenv2_36780044c64e30f0813c4367457fe8ee73b3898af2b733e912c3e19c4e3bcbe0-a=133831322&c=920ae5b1-83d6-3e36-b794-1710780f64f3&d=d7a4e6b0-3bf8-4861-bd9d-47059000a698&p=4429447543
documentIdd7a4e6b0-3bf8-4861-bd9d-47059000a698
updated1704904205077
height500
Lucidchart
pageCount5
autoUpdatetrue
typerich
alignleft
autoSize1
macroId99365006-8b9a-4740-bcf2-f45d35c397d0
pages1
instanceId920ae5b1-83d6-3e36-b794-1710780f64f3
width700
documentId3f78436c-b5c3-44ff-840e-c468e134dd0a
documentTokenv2_9f1ba0f9615adb98998dda1deeaac75e1f00c01c698b5afc1de0d2680af2cee6-a=133831322&c=920ae5b1-83d6-3e36-b794-1710780f64f3&d=3f78436c-b5c3-44ff-840e-c468e134dd0a&p=4460904486
updated1706259482233
height500

  • Homeria will provide a CSV with all the user data from their system and all the user loyalty data from SessionM (eg. SessionM ID, Homeria User ID, points, balance, tier, and transactions).

  • RBI will host these files in a private S3 bucket and create the necessary database records via a script run in a provisioned EC2 instance with the appropriate role.

    • RBI will not create duplicated users for those already created by the synchronization process.

    • RBI will update the Loyalty Points balance, tiers, and other Loyalty data for the users already created.

    • (Optional) I suggest Homeria disables Loyalty Earning, Burning, and Tier and Points expiration while this process takes place.

      • Check Phase 1 - Option A & B.

        Status
        colourYellow
        titleIssue

  • RBI will provide a CSV back with the correlation between the Homeria User, RBI User ID, and the RBI Loyalty ID to be imported by Homeria.

...

  1. The guest opens the Airtouch Mobile App.

  2. The app calls the GET User Details from the RBI Loyalty Platform, using the RBI Loyalty ID. This endpoint retrieves the RBI Loyalty data for the user (name, email, point balance, tier, etc) for display purposes.

  3. The guest places an order.

  4. Airtouch, as part of the ordering process, starts a process on their BE.

  5. Airtouch BE creates a new RBI Loyalty Transaction

  6. Airtouch BE creates a new Transaction in SessionM:

    1. How they do this is up to Airtouch, but they should already have all the user and order data.

    2. The transaction must be an equivalent of the already created order in the RBI Loyalty Platform.

...

  1. The guest opens the Airtouch Mobile App.

  2. The app calls the GET User Details from the RBI Loyalty Platform, using the RBI Loyalty ID. This endpoint retrieves the RBI Loyalty data for the user (name, email, point balance, tier, etc) for display purposes.

  3. The guest places an order.

  4. Airtouch, as part of the ordering process, starts a process on Homeria’s BE.

  5. Homeria’s BE creates a new RBI Loyalty Transaction

  6. Homeria’s BE creates a new Transaction in SessionM:

    1. How they do this is up to Homeria, but they should already have all the user and order data.

    2. The transaction must be an equivalent of the already created order in the RBI Loyalty Platform.

...

  1. The guest opens the Homeria website.

  2. The app calls the GET User Details from the RBI Loyalty Platform, using the RBI Loyalty ID. This endpoint retrieves the RBI Loyalty data for the user (name, email, point balance, tier, etc) for display purposes.

  3. The guest places an order.

  4. Homeria, as part of the ordering process, starts a process on their BE.

  5. Homeria’s BE creates a new RBI Loyalty Transaction

  6. Homeria’s BE creates a new Transaction in SessionM:

    1. How they do this is up to Homeria, but they should already have all the user and order data.

    2. The transaction must be an equivalent of the already created order in the RBI Loyalty Platform.

...

  1. The code has to be automatically refreshed.

  2. The FE has to poll the Get OTP endpoint every around 10 seconds to detect if the code has already been used, the status is claimed.

    1. The endpoint details and example payload can be found in https://rbictg.atlassian.net/wiki/spaces/~834441867IBC/pages/44467161194460904510/BK+ES+Loyalty+Transaction+-+API+Endpoints+Doc#%5BWEB%2FAPP%5D-Get-OTP

  3. If the code has already been used, display a modal acknowledging the successful transfer to the guest, and immediately generate a new one.

  4. If the code request fails, the FE has to display some sort of feedback to the user prompting them to try to get a new OTP code again.

  5. All the edge cases, process feedback to the user, and polling have to be implemented and handled by Airtouch and Homeria.

  6. The OTP code will be displayed both in a QR and plain text format.

...

  1. Guest inputs the OST provided by the app:

    1. Scanning the QR Code.

    2. Manually introducing the plain text OTP code.

  2. Tillster calls the RBI POST Identify endpoint and uses the OST to identify the guest.

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

    2. posType: Tillster

    3. The endpoint details and example payload can be found in https://rbictg.atlassian.net/wiki/spaces/~834441867IBC/pages/44467161194460904510/BK+ES+Loyalty+Transaction+-+GraphQLAPI+Endpoints+Doc#%5BIn-Store%5D-Identify-RBI-Loyalty-User

  3. Tillster calls the GET User Details from the RBI Loyalty Platform, using the RBI Loyalty User Id. This endpoint retrieves the RBI Loyalty data for the user (name, email, point balance, tier, etc).

    1. We need the email address to use later during the creation of the SessionM transaction.

    2. The endpoint details and example payload can be found in https://rbictg.atlassian.net/wiki/spaces/~834441867IBC/pages/44467161194460904510/BK+ES+Loyalty+Transaction+-+GraphQLAPI+Endpoints+Doc#Get-RBI-Loyalty-User

  4. The guest places an order.

  5. As part of the ordering process, the In-Store flow for Kiosk integrating with RBI is initiated:

    1. The guest finishes their order and proceeds to checkout.

    2. Tillster calls the POST Validate RBI endpoint.

      Status
      colourRed
      titleunnecessary

    3. Tillster calls the PUT UPDATE RBI endpoint.

      1. OPTION A: All the items for the order with each item’s price.

      2. OPTION B: A single mock item with the total price of the order.

    4. The Transaction will have the status of CLAIMED.

    5. The Transaction channel will have the value of restaurant.

    6. Any other information about the order is optional, but it’s recommended to include the most we can for any potential debugging purposes (eg: Payment method, payment amount, etc).

  6. Tillster creates a new Transaction in SessionM:

    1. How they do this is up to Tillster, but they should already have all the user and order data.

    2. The transaction must be an equivalent of the already created order in the RBI Loyalty Platform.

...

  1. Guest inputs the OST provided by the app:

    1. Guest scans the OTP on the WinRest QR reader

  2. Winrest calls the RBI POST Identify endpoint and uses the OST to identify the guest.

    1. If the guest wants to use Offers, they would ask the cashier to add the offer code to their order. These offers are not configured in RBI.

    2. posType: Winrest

    3. The endpoint details and example payload can be found in https://rbictg.atlassian.net/wiki/spaces/~834441867IBC/pages/44467161194460904510/BK+ES+Loyalty+Transaction+-+GraphQLAPI+Endpoints+Doc#%5BIn-Store%5D-Identify-RBI-Loyalty-User

  3. Winrest calls the GET User Details from the RBI Loyalty Platform, using the RBI Loyalty ID. This endpoint retrieves the RBI Loyalty data for the user (name, email, point balance, tier, etc).

    1. We need the email address to use later during the creation of the SessionM transaction.

    2. The endpoint details and example payload can be found in https://rbictg.atlassian.net/wiki/spaces/~834441867IBC/pages/44467161194460904510/BK+ES+Loyalty+Transaction+-+GraphQLAPI+Endpoints+Doc#Get-RBI-Loyalty-User

  4. The guest places an order.

  5. As part of the ordering process, the In-Store flow for Kiosk integrating with RBI is initiated:

    1. The guest finishes their order and proceeds to checkout.

    2. Winrest calls the POST Validate RBI endpoint.

      Status
      colourRed
      titleunnecessary

    3. Winrest calls the PUT UPDATE RBI endpoint.

      1. OPTION A: All the items for the order with each item’s price.

      2. OPTION B: A single mock item with the total price of the order.

    4. The Transaction will have the status of CLAIMED.

    5. The Transaction channel will have the value of restaurant.

    6. Any other information about the order is optional, but it’s recommended to include the most we can for any potential debugging purposes (eg: Payment method, payment amount, etc).

  6. Tillster creates a new Transaction in SessionM:

    1. How they do this is up to Tillster, but they should already have all the user and order data.

    2. The transaction must be an equivalent of the already created order in the RBI Loyalty Platform.

...