About multichannel promotions
A multichannel promotion is a promotion that can be set up to be redeemed in-store or online or both ways. These promotions can be assigned to a contact based on their previous purchases or on any other type of contact data or interaction. You can assign multichannel promotions to segments as well as to single contacts in Engage. For this reason they’re also known as personal offers. In-store the contact is identified at the POS and all their active multichannel promotions are fetched from Engage and are ready to use. Online the customer will also need to identify themselves at some point in the flow, either by logging in, or when they fill in their details at the checkout. Then all available multichannel promotions can be fetched from Engage and shown. How exactly this is done will depend on how the e-com has been set up.Setting up a multichannel promotion in Engage

Learn about setting up multichannel promotions
Value types
When setting up your multichannel promotion you’ll need to select the type from the dropdown. You can use different values for “Can be used in store” and “Can be used online” in the same promotion. The options available are:- Monetary discount
- Discount in percent
- Manual instruction (only for in-store POS)
- External promotion code
Get promotions for contact
This endpoint is used to fetch all available promotions assigned to a contact:The contact’s unique ID sent in the query string. If you have some other contact identifier, use this endpoint to get the
contactId to use in this request.“ECOM”, “POS” or “OTHER”. If left out, all promotions will be returned.
See example response
See example response
Redemption channels
The objectredemptionChannels in the response specifies if a promotion is a percentage, a monetary amount to be withdrawn from the total amount of the transaction, or an external discount code that refers to a price rule in your platform.
Example: POS promotion with percentage discount
Example: POS promotion with percentage discount
Example: E-com promotion with external discount code
Example: E-com promotion with external discount code
Example: POS promotion with monetary discount
Example: POS promotion with monetary discount
Assign a promotion
Promotions can be assigned to contacts either though a file import, manually in the Engage UI, or by using this API endpoint:- 400: InvalidContactId, InvalidPromotionId
- 404: ContactNotFound, PromotionNotFound
Redeem a promotion
When getting a contact’s promotion data, you’ll get back something like this:- promotionId - This is the main ID of the promotion (the “template” this promotion was created from). Several users can have the same value for this, since it just refers to the main promotion. This CAN’T be used to redeem a promotion for a specific contact.
- id - This identifies a specific “instance” of the promotion that was created from the “template” that was identified by
promotionId. Theidvalue is unique to that contact and is the one used when redeeming this promotion for them. - externalId - This value exists when the promotion has been created over the API. If the promotion was created manually in the Engage UI, this is null. It is not important when redeeming the promotion.
How to redeem
A promotion is redeemed for a contact using the promotion’s unique ID and the redemption channel, which is either:- “POS”
- “ECOM”
Redemption response codes
If the request has been successful, you’ll get a HTTP 200 OK response. Otherwise you’ll get one of these:- 400: NotAValidRedemptionChannel, InvalidPromotionIdNoData
- 404: PromotionNotFound, PromotionNotAssociatedWithContact
- 409: PromotionNotValidForRedemptionChannel, PromotionAlreadyRedeemed, PromotionAlreadyRedeemed
- 504: GatewayTimeout
Create a promotion
Creation of a multichannel promotion can be done in three ways:- In the Engage UI
- Over the Engage API
- By an XML file import
- By giving a start date and a validity time
- By giving a start date and an end date
Creating promotion with start date and validity time
Creating promotion with start date and validity time
Here is what such a request looks like:Here is a successful response, containing the promotion’s ID:
Creating promotion with start date and end date
Creating promotion with start date and end date
Here is what such a request looks like:Here is a successful response, containing the promotion’s ID:The maximum value for end date is “9999-12-30”.
- 400: BadRequest
- 500: Error
Update a promotion
You can update (alter) a multichannel promotions over the Engage API. You can update the entire promotion or only its validity. Each method uses a different API endpoint:Updating the entire promotion
Updating the entire promotion
To update the entire multichannel promotion, used this endpoint:Send a payload in the same format as when you created the promotion, including your updates:
Updating the promotion's validity
Updating the promotion's validity
To update just the duration of an existing multichannel promotion, send a PUT to this endpoint:With a payload formatted like this:
Delete a promotion
You can delete a promotion using its Engage ID or its external ID (assuming an external ID was used when creating the promotion).Delete a promotion using its Engage ID
Delete a promotion using its Engage ID
To delete a multichannel promotion using the ID, use this endpoint:The
id value here is the Engage ID (“31bc4f89-6e71-4086-8627-af8f01073331” or similar).Delete a promotion using its external ID
Delete a promotion using its external ID
To delete a multichannel promotion using the external ID, use this endpoint with
externalId as the query parameter: