Versions Compared

Key

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

Table of contents

Table of Contents
Info

Note: in addition to properties described in this page, events below also include common properties documented here: Attributes and properties

Users

Event Name

Description

Properties

Property Description

Loyalty User Created

When a Loyalty user is created. In markets where loyalty is enabled, this happens at the same time that a new user signs up.

initialPointsBalance

Points added to the account when creation (could be subject to campaigns that add points when account created)

Loyalty User Updated

Triggered every time that a user’s loyalty points are updated.

newPointsBalance

Number of points in the user’s loyalty account, after a transaction has been made.

immediateExpiryTime(User Attribute)

The date that the user’s points is set to expired, YYYY-MM-DD

immediatePointsExpiring(User Attribute)

Number of points are set to expire when the date is due

Guest Loyalty User Created

This event will trigger when a "Guest" user is created in-store using a specific identifier type of LOYALTY_12_DIGIT_SWIPE_CARD.

createdAt

Time of creation of event

identifier

The unique identifier which can be:

  • A 12-digit physical card code

  • A 10-digit phone number

guestId

The UID for the Guest Loyalty user

creationStoreId

The store ID of where the guest user was created

identifierType

Identifier Type being used (i.e. LOYALTY_12_DIGIT_SWIPE_CARD)

Secondary Identifier Associated

This event will trigger when a secondary identifier is associated to a loyalty user account. This can include guest loyalty users linking to a loyalty account.

createdAt

Time of creation of event

identifier

The unique identifier which can be:

  • A 12-digit physical card code

  • A 10-digit phone number

identifierType

Identifier Type being used (i.e. LOYALTY_12_DIGIT_SWIPE_CARD)

guestUserCreatedDate

The date that the guest user was created 

loyaltyId

UID for Loyalty User

Secondary Identifier Unlinked

When a Secondary Identifier is unlinked from a loyalty user account.

identifierType

Identifier Type being used (i.e. LOYALTY_12_DIGIT_SWIPE_CARD)

createdAt

When was the transaction created

identifier

The unique identifier which can be:

  • A 12-digit physical card code

  • A 10-digit phone number

Transactions

Note: some events are called out as shorthands. There are similar to other, broader events, but sent separately to make it easier to run quick and targeted Amplitude queries without the need for complex filters (e.g. to run a quick analysis on how many offers were redeemed in-store last month, use the Offer Redeemed In-Store event without needing to filter for anything else). The Loyalty Transaction Claimed event is the umbrella event that captures all Claimed Loyalty Transactions, so this can be used to filter by sanityId or any other reward/offer attribute if needed be.

Event Name

Description

Properties

Property Description

Loyalty User Created

When a Loyalty user is created. In markets where loyalty is enabled, this happens at the same time that a new user signs up.

initialPointsBalance

Points added to the account when creation (could be subject to campaigns that add points when account created)

Loyalty User Updated

Triggered every time that a user’s loyalty points are updated.

newPointsBalance

Number of points in the user’s loyalty account, after a transaction has been made.

Loyalty Transaction Created

Triggered when any type of a loyalty transaction is created, including orders and point expiration. For orders, this event is triggered when an order is initiated and the transaction is in a Pending state. At this stage, the transaction is not completed yet. It will only be marked as completed once the ordering flow completes successfully (see Loyalty Transaction Claimed below).

For example, this event would be fired when a customer logins with their Loyalty OTP code in the Kiosk successfully (even if the customer has not completed the purchase in the Kiosk yet).

bonusPointsEarned

Additional points earned via promotion.

brand

Brand, for example “BK”.

channel

Can have the following values:

  • RESTAURANT: orders made in-restaurant

  • WEB: orders made on the web app

  • APP: orders made on the iOS or Android apps

  • INITIAL_POINT_BALANCE: we have certain markets that want brand new users to have a balance (i.e. sign up and get 100 pts). The INITIAL_POINT_BALANCE channel tracks those

  • POINTS_EXPIRATION: when points expire

  • CAMPAIGN: campaign is for transactions done via Braze campaigns that brands have setup

  • SUPPORT: when loyalty points are awarded to the user via the Support tool

  • REMEDIATION: REMEDIATION is for scripts that we've had to run to fix user balances

  • UNSUBSCRIPTION: When the user unsubscribes from the loyalty program, this channel is used to deduct the user’s points balance before deleting it from the db.

createdAt

Date and time when the transaction was created

offers

Offers redeemed on this transaction, if any

offersSanityIds

Sanity ID's for each offer redeemed in this transaction, if any

Partner

The partner that requested the loyalty points assignment

pointsEarned

Base points earned

pointsUsed

Points used to redeem

posType

The type of POS from where this transaction was created. For example, NCR, SYCOM. TABLET corresponds specifically to the RBI tablet in use in some markets.

posSystem

Specific POS vendor name, for example: ncr, Acrelec, Xenial Encounter.

rbiOrderId

The associated RBI Order Id

fulfillmentType

The fulfillment channel for the transaction. Can have one of the following values:

  • POS

  • TAKEOUT

  • DRIVE_THRU

  • EAT_IN

  • DELIVERY

  • CURBSIDE

  • POINT_ASSIGNMENT

restaurantId

Restaurant ID related to a purchase

rewards

The rewards redeemed in this transaction

rewardsSanityIds

The Sanity ids for each reward in this transaction

shortId

Autogenerated code for easy lookup via support tool

Store Has Loyalty

MDM loyalty assignment

  • Feature flag: Differentiating Between Loyalty and Non-Loyalty Stores for In-Store Orders

storeId

MDM assigned store number

subTotal

The total for the order

systemWidePromotions

The promotions redeemed with this transaction

totalPoints

User's total loyalty points post transaction

transactionStatus

The current status of the transaction:

  • PENDING: this will. be the status for all loyalty transactions created during the ordering process

  • CLAIMED: for non-ordering operations e.g. points expiry

  • UNCLAIMED

  • VOID

Loyalty Transaction Claimed

When an order completes successfully, loyalty transactions that were previously in a Pending state change to Claimed and this event is triggered.

Note

Note: Online transaction Claimed scenario is not covered by this event.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

Loyalty Cart Data

Cart data of the order.

  • Required properties: price, productId and quantity.

  • Optional properties: couponId, incentivePlu, lineId, name, parentReferenceId, plu, productType, rootReferenceId and tax.

In-Store Loyalty Transaction Claimed

Shorthand for Loyalty Transaction Claimed when channel is RESTAURANT.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

payAtCounter

Note

Note: Only when the transaction is created and claimed in different POS/Kiosk vendor

The posSystem different vendors from when transaction was created to when it was finalized, e.g. Tillster-Toshiba

Loyalty Cart Data

Cart data of the order.

  • Required properties: price, productId and quantity.

  • Optional properties: couponId, incentivePlu, lineId, name, parentReferenceId, plu, productType, rootReferenceId and tax.

Online Loyalty Transaction Claimed

Shorthand for Loyalty Transaction Claimed when channel is APP or WEB.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

Loyalty Cart Data

Cart data of the order.

  • Required properties: price, productId and quantity.

  • Optional properties: couponId, incentivePlu, lineId, name, parentReferenceId, plu, productType, rootReferenceId and tax.

Loyalty Points Expiring

When the user points are about to expire, an event indicating the amount of points and the future expiration date is fired. Triggered on defined days away: 1, 3, 7, 30, 60.

Note

Note: This event is only for points Expiration By Inactivity, not for Expiration By Issue Date.

daysAway

Days away from expiration of points (e.g. 14)

pointsAtRisk

Amount of points that will expire by the moment the event is triggered (e.g. 250)

pointsExpiryDate

Date of the expiration of points (e.g. 10/5/2022)

Loyalty Points Expired

Triggered when user points have expired.

channel

See Loyalty Transaction Created / channel

pointsEarned

Base points earned

pointsUsed

Points used to redeem

shortId

Autogenerated code for easy lookup via support tool

id

Unique Identifier for points expiration event

subTotal

The total for the order

brand

Brand from which the points have expired (e.g. BK)

transactionStatus

See Loyalty Transaction Created / transactionStatus

pointsDeducted

Amounts getting expired for not being used

createdAt

Date and time when the event was triggered

Loyalty Transaction Voided

When an order is voided.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

payAtCounter

Note

Note: Only when the transaction is created and voided in different POS/Kiosk vendor

The posSystem different vendors from when transaction was created to when it was finalized, e.g. Tillster-Toshiba

Loyalty Transaction Deleted

When a transaction is deleted this event is fired indicating the total points the user has after the rollback. Only Transactions that are in Pending which were created through the OTP process can be deleted.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

Max Transaction Limit Reached

Triggered when the maximum transactions limit is reached for a given user. This is an optional configuration setting that sets a "cap" of how many daily transactions a given user can earn points towards.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

Offers

Event Name

Description

Properties

Property Description

Offer Redeemed Confirmed

Triggered when an offer is redeemed.

this event is fired. It happens at the time of creating the transaction. When a Loyalty transaction with channel is created, this event is fired with the transaction information.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

payAtCounter

Note

Note: Only when the transaction is created and claimed in different POS/Kiosk vendor

The posSystem different vendors from when transaction was created to when it was finalized, e.g. Tillster-Toshiba

Offer Redeemed In-store

Shorthand for Offer Redeemed Confirmed where channel is RESTAURANT.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

payAtCounter

Note

Note: Only when the transaction is created and claimed in different POS/Kiosk vendor

The posSystem different vendors from when transaction was created to when it was finalized, e.g. Tillster-Toshiba

Offer Redeemed Online

Shorthand for Offer Redeemed Confirmed where channel is WEB or APP.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

Event Name

Description

Properties

Property Description

Offer Selected

User clicked on an offer from the offers list and saw the offer description.

(warning) Replaces the deprecated Offer click event.

name

Offer name, e.g. “£4.99 CHICKEN or VEGAN ROYAL”

sanityId

Sanity ID of the offer

status

  • Available: These are offers that are available for users to use in this moment

  • Locked: These are offer that shows with Locked Tag and user cannot redeem it yet.

  • Coming Soon: These are upcoming offers that can’t be used but users can choose to be notified when it becomes available.

Offer Added to Order

User added an offer to their order cart.

  • When redemptionMode is In-Store, this event is triggered when the user clicks on the “Use at restaurant“ button.

(warning) Replaces the deprecated Restaurant Offer selected event.

Same as Offer Selected

Same as Offer Selected

redemptionMode

Can be either In-Store or Online.

Offer Favorite Added

User clicked on the heart to favourite an offer.

Same as Offer Selected

Same as Offer Selected

storeId

ID of the currently selected store, if any.

Offer Favorite Removed

User clicked on the heart to un-favourite an offer.

Same as Offer Selected

Same as Offer Favorite Added

Event Name

Description

Properties

Property Description

External Offer Selected

User clicked on an offer from the offers list and saw the offer description.

name

Offer name, e.g. “£4.99 CHICKEN or VEGAN ROYAL”

sanityId

Sanity ID of the offer

External Offer Added to Order

When redemptionMode is In-Store, this event is triggered when the user clicks on the “Use my Discount“ button. This event is triggered before the modal appears, letting the user know they will be redirected to the external partner’s website.

name

Offer name, e.g. “£4.99 CHICKEN or VEGAN ROYAL”

sanityId

Sanity ID of the offer

External Offer Redeemed

This event is only triggered after the user in the confirmation modal clicks on the button that redirects the user to the external offer’s partner website.

name

Offer name, e.g. “£4.99 CHICKEN or VEGAN ROYAL”

sanityId

Sanity ID of the offer

createdAt

Date and time when the External Offer was redeemed

Event Name

Description

Properties

Property Description

Offer Assignment

Triggered when the Offer Assignment endpoint receives a request from a partner.

Duration

The duration in ms of the offer assignment process from the time the request is received until it is finished.

engineId

The Loyalty Engine ID of the configurable offer from the sanity page.

Partner

The partner that requested the offer assignment.

Reference

An optional property where the partner can send the reason or event that generated the request for this offer assignment.

Status

Successful or Error.

traceId

The ID of the offer assignment process.

ErrorDescription

The error that happened. (Only for the Error status)

Rewards

Event Name

Description

Properties

Property Description

Reward Selected

User clicked on the reward from reward list and saw the reward description.

name

Reward name, e.g. “Bacon Double XL Cheese Meal“

sanityId

Sanity ID of the offer

Status

Locked , Unlocked

Category

200, 400 , 600

Reward Added to Order

User added a reward to their order cart.

Same as Reward Selected

Same as Reward Selected

Reward Redeemed

This is an event configured in Amplitude, combining Reward Redeemed In-store and Reward Redeemed Online.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

Reward Redeemed In Store

Triggered when a reward is redeemed during a purchase where channel is RESTAURANT.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

payAtCounter

Note

Note: Only when the transaction is created and claimed in different POS/Kiosk vendor

The posSystem different vendors from when transaction was created to when it was finalized, e.g. Tillster-Toshiba

Reward Redeemed Online

Triggered when a reward is redeemed during a purchase where channel is WEB or APP.

Same as Loyalty Transaction Created

Same as Loyalty Transaction Created

Quests / Challenges

Quest events are related to the Challenges feature documented here: Loyalty Challenges UI.

Event Name

Description

Properties

Property Description

Quest Activated

When a Quest/Challenge is activated by an user

totalStepsCount

Total # of steps in the Quest

activatedOn

Quest has been activated

incentiveId

refers to the CONFIG Offer or Reward ID if the Quest is type OFFER or REWARD respectively.

configId

UID for the personalized quest that is created for each specific user that activates a quest

stepsCompletedCount

Total # of steps completed

incentiveType

Type of Incentive (Reward or Offer)

loyaltyId

Loyalty ID associated with the User

name

Name associated with the Quest

createdAt

When was the transaction created

questId

ID associated with the Quest

Quest Step Completed

When a step as part of a Quest/Challenge is completed by an user

activatedOn

Quest has been activated

loyaltyId

Loyalty ID associated with the User

totalStepsCount

Total # of steps in the Quest

incentiveType

Type of Incentive (Reward or Offer)

stepsCompletedCount

Total # of steps completed

name

Name associated with the Quest

questId

ID associated with the Quest

createdAt

When was the transaction created

Quest Completed

When a Quest/Challenge is completed by an user

*For Invitation Code on Signup, this event is triggered by New user (user that signed up with Invitation Code that was shared from existing app user)

benefitId

refers to the the ID generated when the quest is completed. This can be the ID of: a personalized Offer or Reward if the quest is of type  OFFER or REWARD a transaction generated to grant points, if the quest is of type BONUS_POINTS

loyaltyId

Loyalty ID associated with the User

incentiveType

Type of Incentive (Reward or Offer)

stepsCompletedCount

Total # of steps completed

completedAt

When was the quest completed

name

Name associated with the Quest

totalStepsCount

Total # of steps in the Quest

questId

ID associated with the Quest

createdAt

When was the transaction created

Buddy Benefited from Quest Completion

When a Quest/Challenge is completed by an user and the benefit is also unlocked for Buddy users

*For Invitation Code on Signup, this event is triggered by Existing user (user from the app that shared his/her Invitation Code with a friend)

existingUserLoyaltyId

Loyalty ID associated with the Quest Buddy User (did not complete Quest steps)

name

Object with information on existing user data

newUserLoyaltyId

Loyalty ID associated with main user that completed Quest Steps

questId

ID associated with the Quest

email

email of Quest Buddy user

rbiCognitoId

User ID of Quest Buddy user

Loyalty Tiers

Tip

The data about user’s Loyalty Tier will be saved under User Properties as Tier (e.g. if user is in Loyalty Tier 1, then user property Tier will be set to 1)

Event Name

Description

Properties

Property Description

Loyalty Tier Updated

Triggered after a transaction when a user moves from a Loyalty Tier to another Loyalty Tier (e.g. user moves from Tier 1 to Tier 2 or user is downgraded from Tier 2 to Tier 1). When user signs up, we will not trigger this event from user having no tier to Tier 1 (this we can measure with the Sign Up Complete event).

Info

Note: The rules required for a user to enter Tier 2 and rules required for user to continue being a part of Tier 2 are set under Earning Calculation Folder in Sanity.

loyaltyTierChange

This property describes the Loyalty Tier changes the user has gone through. The two possible values for this property are:

  • Tier1-Tier2 - this means the user went from Loyalty Tier 1 (King Loyalty User) to Loyalty Tier 2 (Superking Loyalty user)

  • Tier2-Tier1 - this means the user was demoted from Loyalty Tier 2 (Superking Loyalty User) to Loyalty Tier 1 (King Loyalty user)

updatedTime

Time when user updated their tiers

pointBalance

Loyalty Point balance that the user has at this point

rbiCognitoId

User ID of user that updated loyalty tiers

Loading Events

Event Name

Description

Properties

Property Description

Loyalty Load

Triggered after the page loads.

My_Code_page_load_time

This property describes the amount of time in milliseconds that the My Code page took to load.

My_Code_page_QR_Code_load_time

This property describes the amount of time in milliseconds that the QR Code on the My Code page took to load and be visible.

Rewards_page_load_time

This property describes the amount of time in milliseconds that the Rewards page took to load.

Offers_page_load_time

This property describes the amount of time in milliseconds that the Offers page took to load.

Offer_Redemption_page_load_time

This property describes the amount of time in milliseconds that the Offer Redemption modal page for static code took to load.

Offer_Redemption_page_QR_Code_load_time

This property describes the amount of time in milliseconds that the Offer Redemption modal QR Code took to load. This will only be sent if QR Code is enabled.

Offer_Redemption_page_Short_Code_load_time

This property describes the amount of time in milliseconds that the Offer Redemption modal offer short code took to load.

QR and Short code Error

Triggered when the QR and Short code cannot be generated.

Message

This property refers to a string in Lokalise (qrCodeLoyaltyCreationError), informing that there is an error when creating the QR and Short code.

rootCause

This property refers to the root cause why the QR Code cannot be generated

isNetworkError

This property refers to whether the error is generated by a network error

Points

Event Name

Description

Properties

Property Description

Loyalty Points Assignment

Triggered when the Loyalty Points Assignment endpoint receives a request from a partner.

Duration

The duration in ms of the loyalty points assignment process from the time the request is received until it is finished.

Partner

The partner that requested the loyalty points assignment.

pointsDeducted

How many points were deducted from the user.

pointsEarned

How many points the user earned.

Reference

An optional property where the partner can send the reason or event that generated the request for this loyalty points assignment.

Status

Successful or Error.

TransactionId

The id of the transaction created for the points assignment. (Only for the Successful status)

ErrorDescription

The error that happened. (Only for the Error status)

Event

Fires when

Main attributes

Payload details

Action Sheet View

When a Action tab it`s displayed to the user

actionSheetHeader record the component/object name (i.e. “Apply Promo Code”)

currentScreen records the current screen where the Action tab it`s displayed (i.e. “/rewards/offers“)

Action Sheet Submission

When a Action form it`s submitted

response: records the response "Failed" or “successful“

failureReason reason why the response was failed main reasons it`s "INVALID_CODE" or “EXPIRED_CODE“

submittedData records the data sent in the Action form