Skip to main content
Allocate customers a highly relevant and targeted set of offers from a large pool of offers.

Solution Overview

The Personal Offer allows the creation of a long-running pool of offers and allocation of coupons in these offers for customers who would find them relevant based on their shopping history. The Personal Offer allocation process consists of two big parts.
1

Create a long-running offer pool

Create a long-running pool of offers that the retailer can provide consistently good prices with some quantity limits.
2

Allocate coupons regularly

Each week (or regular intervals), allocate coupons in these offers to customers who would find the offers relevant, normally based on ML/AI algorithms looking at their shopping history and other profile data.
Lobyco can do the full 1:1 Personal Offer solution: do the data science based on business rules and customer purchases, and do the coupon allocation. Alternatively, retailers can do the coupon allocation by themselves if they have a Personal Offers partner that can handle the allocation algorithm.

1. Personal Offers allocated by Lobyco

When the Personal Offers are allocated by Lobyco, then the retailer needs to do only the creation and management of the Offer Pool.

Import of Offers

Creation and update of the offers pool is done using the Promotion POST /v3/bulk/offers endpoint.
  • These can be any number of offers, and they can be long-running activities (e.g., 3/6/12 months).
  • If the offer exists, it will be updated. Otherwise, it’s created.
The API documentation explains the usage of the fields and provides examples, but here are some fields to take into account for Personal Offers.
  • offerType: should be personalOffer
  • startDate and endDate: for personal offers, this is the interval when the offer can be allocated. Normally, it should be long running (e.g., 3 months). The allocation algorithm creates weekly (or specified interval) coupons within this interval.
  • totalCoupons: total amount of possible coupons in the offer, limiting the number of users that can get this offer. When it is null, an unlimited number of coupons can be assigned. But of Personal Offers, this should be limited so it’s taken into account by the allocation algorithm
  • storeIds: List of Store Ids, separated by “ArraySplitter” where the offer is available, and used also in the allocation algorithm. Mutually exclusive with ChainIds.
  • chainIds: collection of Chain Ids, separated by “ArraySplitter” where offer is available, and used also in the allocation algorithm. Mutually exclusive with StoreIds.

Creation of the Offer Pool

After Offers are imported, a pool for the given period should be created using the Promotion POST /v2/groups endpoint.
  • Offer Pool can contain any number of Offers.
  • The Pool should be short-running, for any given period (e.g. 1 week)
  • One Offer can be a part of multiple Offer Pools.
  • If a Pool with a specific id already exists, it will be updated.
From the Lobyco Admin Portal, the marketers will be able start the allocation every week (or as needed). They will be able to select the Pool of offer created above and start the allocation of the offers from the pool. Example of offer pools that can be selected in the Admin Portal, showing the Name, number of offers, and Start/End dates. Afterwards, the Lobyco systems will do the allocation of coupons to customers, based on the pre-defined business rules.

Update allocated offers

If it’s needed to update an offer that has been allocated to customers, then the APIs from the creation step can be used to just update the needed offers. Alternatively, the fields in an offer can be changed at any time in the Lobyco Admin Portal by marketeers. This means that changes to the offer’s data - like UPCs/EANs, terms & conditions, image or the like - will be applied to the already assigned offers as well.

Remove allocated offers

The best approach to remove allocated offers is to set "published": false on the offer. That will disable the offers from being shown to the users. If the Lobyco Coupon service is used, then the already activated coupons will be disabled and no longer usable.
Retailers that don’t use the Lobyco Coupon service and have their own coupon system need to manually disable the already allocated coupons in their coupon systems.

Update offer for the next allocation cycle

If it’s required to update the price or other details starting from the next allocation cycle for an offer that already has active coupons, then it’s recommended to create a new, similar offer and use that in the allocation process for the allocation cycle. If you update an offer that already has allocated and active coupons, the price or other updates will also be updated for the existing coupons. For example, there’s a need to allocate Coca-Cola with a new price (3insteadof3 instead of 2) starting next week.
1

Create a new offer

Create a new Coca-Cola offer with the new price $3 with long-running dates.
2

Add the offer to the next allocation cycle

Introduce the new offer when creating the offer pool for next allocation cycle.

2. Personal Offers allocated by 3rd Party

The process consists of two parts: creation of the offer pool and assignment of coupons to customers.

2.1. Create a pool of Personal Offers

These can be any number of products, and it can be a long-running campaign (e.g., 3/6/12 months). Create offers using the Promotion POST /v3/bulk/offers endpoint.

2.2. Assign Coupons to customers

The coupons can have a shorter validity period than the parent Personal Offer, but need to be inside the offer period. The coupons also support price override. Therefore, the same product could have different prices for different users by keeping only one offer per product and having different prices at the coupon level. If no coupon price is defined, then the parent offer price is used. Assign coupons within the created offers in bulk uploads.
1

Upload coupons in bulk

Use the Promotion endpoint POST /v3/personaloffers/bulk, specifying the JobId header.
  • Multiple requests can be sent using the same JobId.
  • Using the same JobId makes all calls to be considered as part of a single bulk import.
2

Complete the bulk import

Confirm that bulk import is completed and coupons can be allocated to the customers by using the Promotion endpoint POST /v3/personaloffers/finish-bulk, using the JobId from step (1)
Make the finish-bulk request (2) only once when finishing the bulk import job.Making it after each bulk call will create a new job for each request. This can severely impact performance, and the Mobile App endpoint returns a limit-reached error if more than 2000 bulk coupon jobs are active.
When assigning coupons with API POST /v3/personaloffers/bulk, the following fields of the offer pool offer can be overridden:
  • Coupon data visible from (visibleFrom)
  • Coupon end date (pickUpEndDate)
  • Price override (rule1Value)
  • Store locations for app display (storeId). ⚠️Be careful: the override only changes the store that is returned to the app. The actual redemption will still be possible in any of the stores from parent offer.
Any other field in an offer can be changed at any time in the Lobyco Admin Portal. This means that if you change the offer pool’s description, UPCs/EANs, terms & conditions, image, or the like, it will also affect the already assigned offers.
Last modified on August 13, 2026