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.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.
offerType: should bepersonalOfferstartDateandendDate: 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 isnull, 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 algorithmstoreIds: 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.

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 (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 theJobId header.- Multiple requests can be sent using the same
JobId. - Using the same
JobIdmakes 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 theJobId from step (1)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.