Offers - Configuration Guide

Contents

Overview

Typically, offers are one of these two types:

  • Systemwide offers are offers that are available to all guests, although these can be restricted to guests who have an account and are signed in;

  • Personalized (or Config) offers are configured as “config” and assigned to specific guests, and therefore used to implement personalization. These offers are only available for signed in guests.

There are other types of offers (covered in Offers - Configuration Guide), but they are less common. This guide explains how to create systemwide and config offers, and you can refer to the reference guide above for details about other types of offers.

Before creating the offer in Sanity it is important you connect with your POS (Point of Sale) vendor to create, price and make the offer available with a PLU (Price Look-Up). Save this PLU and be ready to configure it in Sanity when creating the offer.

Always create an offer in the Staging environment in Sanity first (https://staging.menu.{brand}.{country}.rbi.tools/desk/). This will allow you to make changes and test the offer with no impact to the live guest app. To test that offers are working as expected, you can use the guest app Staging environment (https://staging-{brand}-web.{country}.rbi.tools/). Offers published in the Sanity Staging environment are only visible in the guest app Staging environment.

After testing, you can migrate the offer to higher environments (QA and Production). When you migrate offers to the Production environment, these will become available to guests.

Sanity Migrations allow you to independently migrate content from Staging to different environments. You can therefore implement offer changes in Staging environment, test them, and afterwards push those changes to QA and Production. All this is accomplished with some clicks in the User Interface of Sanity.

Configuration steps

Step 1: Create an Offer document

  1. Navigate to Order-Level Content > Loyalty & Offers > Incentives > Offers > Systemwide Offers

To create a Config Offer, click on the Config Offers folder instead (Order-Level Content > Loyalty & Offers > Incentives > Offers > Config Offers).

image-20240805-134916.png

2. Click on the pencil icon to create a new offer

For Config offers this step will look like this:

Step 2: Content Section

We’ve broken up content fields and offer mechanic fields to make it easier to create and update offers. The key distinction between the two is that ‘mechanics’ fields have a direct impact on the functionality of the offer, and ‘content’ fields only are purely visual and only impact the UI of an offer in the guest app / website.

Loyalty Engine ID

This is populated automatically. No update needed here.

image-20240515-090855.png

Name Required

It is a requirement for all translations to be filled in for the name field

This is the name of the offer that will be displayed in the guest app / website.

In the below example it refers to “LARGE CHICKEN/VEGAN ROYALE MEAL - APP902”.

Internal Name Required

The name that will be displayed in Sanity - it will help you quickly to identify, search, and organize your offers.

image-20240805-135532.png

 

Description Required

It is a requirement for all translations to be filled in for the description field

This is the description of the offer that will be displayed in the guest app / website.

In the below example it refers to “£5.99 large Chicken Royale® meal (945 Kcal) or Vegan Royale meal (946 Kcal). Use app code APP902 if using a kiosk.”

More Info

This is the offer's disclaimer that will be displayed in the guest app / website. If you add links to this text, you MUST set them to open in a new tab.

Step 3: Image

Image Required

This is the image that appears on the left of the card in the offer list view. It is also the primary image when the guest is on the specific offer link.

Best Practices Tip:

Remember choosing a picture without a background will look better, remove noise, and turn the guest’s focus to the actual purchase

From the above example:

image-20240805-141314.png

Image Description Required

This will be the text for the alt attribute on the image. Image description is required due to accessibility legal requirements.

The alt attribute is the HTML attribute used in HTML and XHTML documents to specify alternative text (alt text) that is to be rendered when the element to which it is applied cannot be rendered.

It is also important for SEO purposes, as this description is what allows search engines (like Google) to connect this image to a search. By adding the Plant-based Whopper description, there is a chance guests will find this image in Google Images, which can lead to traffic in the platform

Background

This is where you can input a background to your image if applicable. This field is optional.

Step 4: Rules

Rules

This is the section where you can define what the rule configurations should be for a guest to be able to view and redeem the offer.

For a more detailed breakdown of each rule refer to: Loyalty - Rulesets

 

Show this offer as Upcoming

This toggle makes the offer become an Upcoming Offer. To read more about this feature refer here: Upcoming Offers

image-20241212-145916.png

 

Redemption Methods Required

The different ways the offer can be redeemed in the platform:

  • Restaurant Only: Offer can only be redeemable in Restaurant at Kiosk or POS

  • Mobile Only: Offer can only be redeemable in online ordering in the guest app / website

  • Mobile and Restaurant: Offer can be redeemable in both online and in-restaurant orders

image-20240515-093701.png

 

Test Only

If this toggle is turned on the offer will only be available in lower environments (Dev, Staging and QA). Even if the offer is accidentally pushed to Production, it will not show up for guests in the app/website.

image-20240805-151139.png

Step 4: Benefits

Benefit Required

This is where you define the benefit the guest receives if they are able to redeem the offer. There can only be one benefit per offer.

The benefit linked to the offer can be an item, combo, picker, or discount from the menu or not. The toggle isOfferBenefit no longer needs to be enabled when creating a new offer.

If the offer is a discount offer (e.g. 50% off the total cart price), link an offer discount here.

Swap and Offer Activation benefits have been deprecated and should not be used.

Does this offer have an Upsell Option?

In this section FZ can configure upsell offers. Any offer added here will be prompted as an upsell when the user clicks Add to Mobile order or Redeem In Restaurant buttons in an offer.

If an offer is added as an Upsell offer, it will not show in the offer list in the guest app. To add an offer to the offer list in the guest app, please add it to the Live Offers list in Sanity: [DEPRECATED] Live Offers

image-20241212-144155.png

How it looks in the guest app:

All strings shown below can be translated.

Guest clicks on offer

Guest clicks “use in restaurant” button

Guest chooses to upsell the offer

Step 5: PLUs Mapping

Static Code

Here you can input the static code of the offer for in-restaurant redemptions. This code will never change.

For markets that have an in-restaurant loyalty integration, redemption occurs by adding the offer to the guests' in restaurant basket and that generates a unique 6 digit loyalty code.

For markets without an in-restaurant loyalty integration or when guests are signed out, this static short code is what a guest sees in the guest app and shows a team member in the restaurant to redeem the offer. Given this is a static code, we also show a timer to let guests know how long they can have this offer open before it is considered redeemed.

In Sanity:

image-20240805-144154.png

In the guest app, the static code will only be available for 15 minutes:

image-20240805-144035.png

Then static short code shows to guest:

image-20240805-144104.png

Vendor Configs Required

In this section, input the PLU (Price Look-Up) that your POS vendor provided and you saved in the beginning on this process.

A unique PLU for the offer. The PLU Type needs to be set to Constantplu and numbered value of the PLU needs to be inputted below Constant PLU.

It is important to ensure that a value is configured for each POS vendor even if it’s just marking it as “empty” or “ignore”.

NCR Offer Price

This field is only relevant for markets that have NCR as POS vendor.

  • This is a static price that will be the same no matter what, ie: $1 coke

    • Value is in cents, ie: $1 == 100

image-20240805-144614.png

Step 6: Publish

Publish your offer when complete. After publishing, you should see the Loyalty Engine ID field populate.

Step 7: Set the position of offer

Systemwide offers

Navigate to Order-Level Content > Loyalty & Offers > Live Offers Configuration > Live Offers > Sorted Systemwide Offers and add your offer. Then, drag it to the position you want it to show in the offer’s list and click on “Publish”. For more information on Live Offers section refer to: Live Offers

Once published, you will see the systemwide offer populate on the Offers List page (navigate to offer’s list: /rewards/offers) in the guest app.

image-20240805-152000.png
In Sanity
image-20240805-152032.png
In the guest app

Config offers

Operators can control the order that personalized (config) offers will show in the guest app in the same location under Order-Level Content > Loyalty > Live Offers Configuration > Live Offers > Live Config Offers.

When a personalized (or config) offer is assigned to a guest, they show on the top of the guest’s offer list. If multiple config offers are assigned to a guest, they will still show on top of all other systemwide offers (national offers), but they will follow the order set in Sanity in the Live Config Offers section.

image-20240805-151659.png

Step 8: Test the Offer

Go to the Staging environment in the guest app (https://staging-{brand}-web.{country}.rbi.tools/rewards/offers) and test:

  • Redeeming the offer(s) online. Check for content, pricing and success of order. Read here for more information on the online ordering flow: Offers - Online Ordering Flow

  • Redeeming the offer(s) in restaurant. To test ordering the offer in-restaurant, connect with your POS and Kiosk vendor(s) to setup a lab environment for you to test. Read here for more information on the in restaurant ordering flow: Offers - In Restaurant Ordering Flow

BK UK Staging Environment Example

Note: The URL for the systemwide offer will be constructed using the Loyalty Engine ID

Example URL: {baseurl}/rewards/offers/{loyalty engine ID of systemwide offer}

Note: The URL used to directly access the personalized offer is built using the unique personalized offer ID. This means that for every guest, the path to get to the personalized offer using the URL will be different.

Example URL: {base URL}/rewards/offers/{personalized offer ID}

Step 9: Migrate to Production

After thoroughly testing your offer is working in Staging environment, follow this guide to migrate the offer from Staging environment to QA and Production environments: Menu - Content Migration.

Further reading

This document is meant to explain how to configure an offer, but does not detail all the different options that can be used for offers. Please refer to the Offers - Reference Guide.

Related content