...
Guest signs in, then scans a code from a different user
Steps | Expected results (POS) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|
Guest opens the Loyalty code page on the RBI app | | | |
Guest taps on the Kiosk screen to start a new order | Image Modified | | |
Guest scans the loyalty code or inputs 6 digit code in Kiosk | Image Modified | Image Modified | |
Guest opens an reward on the RBI app in a different device, using a different user, and chooses to redeem in restaurant | | | |
Guest (on their second device) either scans the reward’s QR code, or inputs the 6 digit code in the Kiosk | Modal shows in the Kiosk, letting the user know that the last scan was made using a different user account Contents of the second scan are not added to the guest’s basket (so the current basket remains unchanged) The second scan is cancelled/voided Initial order can continue normally
| Image ModifiedThe reward’s loyalty points cost is temporarily subtracted from the guest’s loyalty points balance Loyalty points that will be accrued after the order will not be added to the guest’s loyalty points balance at this stage Reward pre-selection is cleared A few seconds later, the loyalty points are returned to the second user
| Keep track of the current basket contents including rewards Call the Identify endpoint again, and wait for the response The new transaction will come with a different loyaltyId Check the Loyalty ID of this transaction does not match Loyalty ID of previous transaction Void this second transaction Keep the current basket open with previous transaction
|
2.
...
Order in
...
the kiosk and pay at counter
Guest begins an order in the kiosk and chooses option to pay at cash at the counter. The order will be closed by the POS.
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|
Guest opens the Loyalty code page on the RBI app | | | |
Guest taps on the Kiosk screen to start a new order | Image Modified | | |
Guest scans the loyalty code or inputs 6 digit code in Kiosk | Image Modified | Image Modified | |
Guest opens an reward on the RBI app, chooses to redeem in restaurant | | | |
Guest either scans the reward’s QR code or inputs 6 digit code into Kiosk Info |
---|
Note: the pre-selected reward(s) will show in the Kiosk screen after scanning with an option for the user to customize it |
| Image Modified | Image Modified | Keep track of the current basket contents including rewards Call the Identify endpoint again, which will create a new transaction ID and return selected reward(s) Void the previous transaction Wait for Void Confirmation
|
Call the Update endpoint with all of the Kiosk basket contents and a status
of PENDING
|
Guest customizes reward(s) at will and adds to basket | Image Modified Info |
---|
Note: If a reward can’t be redeemed because the reward rules are not met, the Kiosk displays a modal to the guest explaining why the reward can’t be added to cart |
| | Call the Transaction Validate endpoint to verify that the current basket selection is valid Note that the call above may return errors. Please refer to Loyalty API v1 - Error List for details. Call the Update endpoint with all of the Kiosk basket contents and a status of PENDING
|
On the Kiosk UI, navigates to the rewards page Info |
---|
Note: this step is only possible if the market has decided to allow showing rewards on the UI. |
| Image Modified | | |
Offers and Rewards for Kiosk UI |
Guest adds a reward to basket | Image Modified | |
Call the Update endpoint with all of the Kiosk basket contents and a status
of PENDING
| Call the Transaction Validate endpoint to verify that the current basket selection is valid Note that the call above may return errors. Please refer to Loyalty API v1 - Error List for details. Call the Update endpoint with all of the Kiosk basket contents and a status of PENDING
|
Guest remove a reward from basket | | |
Call the Update endpoint with all of the Kiosk basket contents and a status
of PENDING
| Call the Transaction Validate endpoint to verify that the current basket selection is valid Note that the call above may return errors. Please refer to Loyalty API v1 - Error List for details. Call the Update endpoint with all of the Kiosk basket contents and a status of PENDING
|
Guest goes to checkout screen | | | |
Guest chooses to pay at the counter using cash Note |
---|
After guest chooses to pay at counter, transaction might be closed after 15mins |
| | | |
Guest arrives at the counter to pay, guests add 1 more menu item to order and pays for the order | Cashier finds the order of guest Cashier adds 1 more menu item to open order Cashier finalizes the order at POS after receiving cash payment POS prints receipt with points earned & points balance
Info |
---|
Note: assumption that the open order is associated with the guest’s Loyalty identifier. |
| Image Modified | The Kiosk should communicate with the POS to transfer the order over (this step is implementation-dependent and out of scope for this document) No action performed on the Loyalty API Call the Transaction Validate endpoint to verify that the current basket selection is valid Note that the call above may return errors. Please refer to Loyalty API
|
The v1 - Error List for details. After collecting the payment, the POS should call the Transaction Update endpoint with a status of CLAIMED After this call it is not possible to modify the loyalty transaction anymore
|
Info |
---|
Note: In the case guest never goes to cashier to complete payment |
| | | |
3. Stores without Loyalty
It is possible for some stores in a given Franchisee to now support Loyalty (either temporarily, e.g. during Loyalty rollout, or permanently e.g. due to commercial reasons). In this scenario, affected stores will have loyalty disabled in RBI’s RAM system and the behaviour needs to be different for Kiosks as well.
3.1. Redeem offers
In this scenario, guests pre-select offers on the RBI app and continue their journey in the Kiosk by scanning the generated code. In this scenario, it is recommended that Kiosks show a warning advising guests that they will not earn loyalty points with this transaction.
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|
Guest opens an offer on the RBI app | | Image Added | |
Guest taps “Use at restaurant” | | Image Added | |
Guest taps on the Kiosk screen to start a new order | | | |
Guest either scans the offer’s QR code or inputs 6 digit code into Kiosk Info |
---|
Note: if a user pre-selects more offers in the app, all pre-selected offers will show in the Kiosk screen after scanning with an option for the user to customize each offer |
| | Image AddedLoyalty points balance is not updated, since the guest is scanning an offer Offer pre-selection is cleared
| Call the Identify endpoint, which will return the Loyalty User ID, a list of offer(s) pre-selected, loyalty points balance and a transaction ID The Loyalty API will know this store does not have Loyalty enabled
|
Guest customizes offers at will and adds to basket | Info |
---|
Note: If an offer can’t be redeemed because the offer rules are not met, the Kiosk displays a modal to the guest explaining why the offer can’t be added to cart |
| | Call the Transaction Validate endpoint to verify that the current basket selection is valid Note that the call above may return errors. Please refer to Loyalty API v1 - Error List for details. The Validate call will return an error if any Rewards are added to cart
|
Guest opens a second offer on the RBI app, chooses to redeem in restaurant Info |
---|
Note: the flow is exactly the same if the guest pre-selects multiple offers. |
| | | |
Guest either scans the offer’s QR code or inputs 6 digit code into Kiosk Info |
---|
Note: if a user pre-selects more offers in the app, all pre-selected offers will show in the Kiosk screen after scanning with an option for the user to customize each offer |
| Image Added | Image AddedLoyalty points balance is not updated, since the guest is scanning an offer Offer pre-selection is cleared
| Keep track of the current basket contents including offers Void the previous transaction Call the Identify endpoint again, which will create a new transaction ID and selected offers Update the basket with the offers returned
|
Guest customizes offers at will and adds to basket | Image Added Info |
---|
Note: If an offer can’t be redeemed because the offer rules are not met, the Kiosk displays a modal to the guest explaining why the offer can’t be added to cart |
| | |
Guest checks out and pays | | Image Added | Call the Transaction Update endpoint with a status of CLAIMED to complete the order After this call it is not possible to modify the loyalty transaction anymore Once this transaction is CLAIMED no Loyalty points are updated in the user’s balance
|
3.2. Attempt to redeem rewards
In this scenario, guests pre-select rewards on the RBI app and continue their journey in the Kiosk by scanning the generated code. Because the store does not support Loyalty, rewards cannot be added to the guest’s basket.
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|
Guest opens an offer on the RBI app | | | |
Guest taps “Redeem In restaurant” | | | |
Guest taps on the Kiosk screen and scans the reward’s QR code or inputs 6 digit code into Kiosk | User sees pop up in Kiosk letting user Rewards are not supported in this store and they will not gain/burn any loyalty points with this order Nothing changes on order / cart that was gathered in the Kiosk
If both offer and rewards are included in the Loyalty Code screen, the Loyalty API will continue returning both Rewards and Offers. The Kiosk vendor will be responsible to show the error message to users and to remove the Reward from Kiosk cart. | | Call the Identify endpoint, which will return the Loyalty User ID, a list of Reward(s) pre-selected, loyalty points balance and a transaction ID The Kiosk vendor will know this store does not have Loyalty enabled and show error message to let user know they cannot redeem rewards If a transaction is sent with a reward in cart for a store that does not have in-store loyalty, the Loyalty APIs will return an error
|
3.3. Attempt to scan Loyalty code
In this scenario, guests attempt to scan their Loyalty code in the kiosk and are presented with a message informing them that loyalty is not available in this store.
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|
Guest opens Loyalty Code on the RBI app | | - Image Added
| |
Guest taps on the Kiosk screen and scans the Loyalty QR code or inputs 6 digit code into Kiosk | User sees pop up in Kiosk letting user know loyalty is not supported in this store and they will not gain/burn any loyalty points with this order Nothing changes on order / cart that was gathered in the Kiosk
If both offer and rewards are included in the Loyalty Code screen, the Loyalty API will continue returning both Rewards and Offers. The Kiosk vendor will be responsible to show the error message to users and to remove the Reward from Kiosk cart. | | Call the Identify endpoint, which will return the Loyalty User ID, loyalty points balance and a transaction ID The Kiosk vendor will know this store does not have Loyalty enabled and show an error message to let users know that they won’t earn points with this transaction (e.g. e.g. ‘Thanks for scanning your MyBK code! Unfortunately this restaurant does not support loyalty yet so you won’t earn points with this transaction.’).
|
Info |
---|
There are no more scenarios. You can return to Customer Journey Scenarios - Kiosk |
...