Personalized promotions in a mobile application

Published January 09, 2025
Modules
Difficulty
Selected Clients
carrefour logo

Personalized promotions play a crucial role in enhancing customer engagement and driving sales. By offering tailored discounts and exclusive deals, businesses can create a sense of value and build stronger relationships with their customers. Leveraging advanced automation and AI ensures that customers receive offers that are most relevant to their preferences, driving higher engagement and conversion rates.

This use case focuses on delivering personalized promotions directly through a mobile application. The AI-powered system assigns six tailored promotions to each customer every seven days, ensuring fresh and relevant offers. Customers can view, activate, and redeem these mobile promotions during their visit in the store, with the system automatically tracking their usage and marking them as redeemed. Additionally, it is possible to print personalised promotions directly on the receipt using Check-out, enhancing the shopping experience in the physical channel and improving customer engagement through multiple touchpoints.

In this use case, we address scenarios where a Synerise user want to import promotions from a CSV file rather than create them using the Synerise portal. However, this does not exclude cases where the user wishes to manually create promotions in the system. For such cases, the Promotion module can be used to add promotions individually.

Prerequisites


Basic requirements

  • Integrate Synerise promotions.
  • Implement promotions in your mobile application using Synerise mobile SDK or API.
  • Import your product feed to a catalog.
  • Apply this method to assign handbill promotions to a Profile.
  • Implement those custom events in your mobile application.:
    • handbill.assign: Assigns a set of personalized promotions to a customer, refreshed every seven days. Apply this method to assign handbill promotions to a Profile.
    • client.activatePromotion: Tracks when a customer activates a specific promotion in the mobile app.
    • client.removePoints: event is generated through the /promotion/redeem method, after the coupon is redeemed.
    • sale.processed: Updates the system with redeemed promotions and finalized basket values. This event is generated in Synerise with details about the products purchased using Synerise promotions.

Integrate with the checkout

Implement transactions in checkout registers using the API.

Tip: We recommend implementation of transactional events so that the hash of the card can become an identifier for the customer when they are paying by card. Thanks to this, a customer who will come to the store and pay with the same card can get personalized offer (even if they are not recognized, for example does not scan the mobile application at checkout), because we will be able to properly collect their transaction history.

For this promotion to work you need to implement the personalized promotion module in stores. Personalization of promotions on check out works for any customer, even for the anonymous ones.

Note: Read more about implementing Check-out promotions here.

Create promotions and assign tags to them for use later as a filter when creating a handbill. You can do it manually, but in case of having more promotions we recommend to prepare them as a CSV file and import them to Synerise using Automation. More about the integration we will discuss later as a 1st step of the process.

Process


In this use case, you will:

  1. Import promotions.
  2. Create a workflow to import the data about promotions to Synerise.
  3. Create a handbill to launch an AI campaign which will choose 6 personalized promotions for each user.

Import promotions


In case of having more promotions we recommend to prepare them as a CSV file and import them to Synerise using Automation. The example file with the list of promotions for specific products can be prepared based on our example, described below.

Check required column names:

  • catalogIndexItems
  • storeItemType
  • storeIds
  • visibilityStatus
  • name
  • redeemQuantityPerActivation
  • discountValue
  • expireAt
  • description
  • catalogItemType
  • priority
  • discountTypediscountType
  • displayTo
  • displayFrom
  • redeemLimitPerClient
  • type
  • headline
  • startAt
  • storeCatalog
  • catalog
  • headerName
  • redeemType
Note: If these are personalized promotions, you can set the type parameter to handbill permanently for this use case.
Read more about those parameters [here.](https://developers.synerise.com/LoyaltyandEngagement/LoyaltyandEngagement.html#operation/CreateOrUpdateAPromotion)
Note: If you wish to generate promotions across different channels, such as on receipts in addition to the app, you can configure this within the campaign using tags. For example: Promotions marked with tag CHECKOUT will display on receipts. Promotions marked with MOBILE will appear in the app. Ensure these tags are already defined in the csv file during the preparation process as tags.0.name. Important: The tag must first be created in Data Management -> Tags.

If custom information for promotions, such as unique store icons, descriptions, or additional details, is required, an appropriately structured CSV file must be prepared in advance. Read more about additional columns and their requirements here.

Important:
  • If you collect promotion data in a different way, and it is organized differently, you can easily transform column names and the format of their values using data transformation in Synerise.
  • Data transformations during the import of promotions may require additional configuration and testing, as this depends on your implementation of the promotions.

Create a workflow


In this part, you will create a workflow which imports a local file to add promotions to Synerise.

  1. Go to Automation icon Automation > Workflows > New workflow.
  2. Enter the name of the workflow.

Define the Scheduled Run trigger node


At this stage, we will configure launching the workflow.

  1. As the trigger node, add Scheduled Run.
  2. In the configuration of the node:
    1. Leave the Run trigger option at default (one time) and choose the Immediately option.
    2. Confirm by clicking Apply.
The configuration of the Scheduled Run node
The configuration of the Scheduled Run node

Add local file with sample data

This node allows you to add a data sample. In our case use the csv file prepared as a part of prerequisites

  1. On the pop-up, click Add example.
  2. Upload the CSV file from the prerequisites as the sample data.
  3. Set Delimiter to the delimiter that you used in your CSV file.
    The delimiter is usually a comma or a semicolon, depending on the application you used to create the file and the regional settings of your system.
  4. Click Generate.
The configuration of the Data input node
The configuration of the Data input node

Add import promotions node and finishing node


In this part of the process, you will import the transformed file with customers to Synerise.

  1. Add the Import Promotions node.
  2. Add the End node.
  3. In the upper right corner, click Save & Run.
The view of the workflow configuration
The workflow configuration

Results: After import, all the promotions from the file will be created in the Promotions module in Synerise.

Create handbill


This part involves generating personalized promotions - “Handbills,” tailored to each user based on the pool of available promotions. Synerise dynamically assigns these promotions, ensuring relevant offers for every customer.

  1. Go to Campaigns menu icon > Personalized promotions > New handbill.

  2. Select the type of promotion - Mobile.

  3. In A/B test settings, click Define.

  4. Click the plus button to create the first variant (at least one variant must exist).

  5. If you want to add more variants, click the plus button again.

  6. If you want to use a control group, select Enable a control group.

  7. If you want to change the distribution of variants, use the slider.

  8. In Advanced options, leave the default option - AI Engine (the AI engine chooses the items to be included in the promotion).

  9. Confirm by clicking Apply.

  10. In the Filters and limits section:

    • Enable the avoid overlapping promotions option. Thanks to that, if an item is already part of an assigned promotion, a new promotion for that item won’t be generated from this campaign.
    • Define the filter using the tags added to the promotions to determine the channel where the promotions appear, in our case we can display 3 promotions with the tag “MOBILE”.
    • the number of items that match a filter,
    • optionally - the order of the items in the promotion (from top to the bottom).
    Filters and Limits configuration
    Filters and Limits configuration
  11. In the Activity section, define the activity of the handbill as Relative and set the time to 7 days.

    Note: You can find more detailed information on all Activity types here.

  12. Optionally, define the AI Engine boosting settings. You can find the instruction on how to do that here.

  13. After configuring all settings, publish the promotion.

Note: If you want to additionally activate promotions displayed on receipts, create the same handbill as described above, but change the type to Check-out and update the tag to CHECKOUT. If you require specific personalized settings based on your business needs, feel free to configure them accordingly. Read more about implementing Check-out promotions here.

Check the use case set up on the Synerise Demo workspace


You can check the configuration directly in Synerise Demo workspace:

If you don’t have access to the Synerise Demo workspace, please leave your contact details in this form, and our representative will contact you shortly.

Read more


😕

We are sorry to hear that

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

😉

Awesome!

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

Close modal icon Placeholder alt for modal to satisfy link checker