Coupon Management

Create Coupons

Coupons can only be created under an offer. To create a coupon,

  1. Select the Incentive tab, and then click Create OfferRefer to the Create Offer flow.

  2. Click Coupon details under Create an Offer.

  3. To set how to distribute and manage coupon codes for an offer, follow these steps,

    1. In "How would you issue these coupons to customers," choose a coupon delivery method, select "Through Capillary" for the coupon to be sent to customers from Capillary, or select "Through a Third Party" if you prefer the coupon to be sent through an external service.
      Note: For third-party coupon issuance, you cannot control the issue & reminder settings also restrict who can redeem the coupon.
    2. In How to create the coupon codes you can Select coupon generation method from the following.
    • Automatically create unique codes: A unique offer code will be auto-generated based on the configuration. Click Edit to change the configuration (number of digits and/ or the alphanumeric characters). You can also select the unique audience for the added coupon code. Enable Issue to specific customers only and Click View/ Add, to view or upload the specific customers' list to restrict the coupons to the list of customers you want to for Select a CSV file, and then click Proceed to upload.
    • In Generate common code(s): select Give a common code to all coupons Enter a code, that is common, for the entire audience. You can also select the unique audience for the added coupon code. Use the toggle button to enable the Issue to specific customers-only button. Click View/ Add, to view or upload the specific customers' list. Select a CSV file, and then click Proceed to upload.
    • Upload existing coupon codes: Upload the existing coupon codes. To upload the coupon code, click View/ Add, select an upload option, browse a CSV file, and then click Proceed to upload. You can use this option to upload existing coupon codes, tag them to a customer and view them on Member Care. This is useful when migrating customers who already have coupon codes from a third party.
      Note: You can upload only coupons or coupons with customer details.
    1. In "When would a coupon expire," you can set the expiry date.
      1. Select "Along with the offer" for the coupon to expire when the campaign ends. This is applicable only if the Offer expires on a Fixed date.
      2. Select "Days from issual" for the coupon to expire after a certain number of days from the issue date or the campaign end date, whichever comes first.
        • For example, If a coupon is issued on 12th November 0 days from issual Expires on 12th Nov EOD and 1 day from issual Expires on 13th Nov EOD .
      3. You can also choose "Month ends from issual" for the coupon to expire after a specified number of months from the issue date or the campaign end date which is earlier.
        • For example, if a coupon is issued on 12th November then 0 months from issual Expires on 30th Nov and 1 month from issual Expires on 31st Dec.

📘

You can create an offer that includes various options for generating coupons and redeeming those coupons.

Configuring the Issual & Reminder Details

You can manage how coupons are issued and tracked and also restrict customers based on past issuals, max issuals per customer etc...To set this up, follow these steps:

  1. Enable “Restrict based on past coupon issuals” so that you can prevent customers from receiving coupons they've already used in the past 6 months and Select the offer from the past 6 months from the drop-down. The selected coupons will not be sent to the customers who have received these coupons in the past 6 months.
  1. Enable “maximum issuals per customer” to set the maximum number of coupons to be issued to each customer and the minimum gap (number of days) between two consecutive coupon issues and Enter the maximum number of coupons a customer can receive. If you do not want to set a limit, choose “No Limit."
    • Select If a customer matches the criteria again.
    • Select Send existing valid coupon to send the same coupon again.
    • Select Do not send any coupon to ignore sending any coupon.
  1. Enable “limit total issuals from the offer?” and enter the number of limits that you can restrict the maximum coupon to be issued in an offer and configure notifications and then Enable “send notification for issual limit” and enter the number of remaining coupons that should trigger the notification.

    • You can notify brand POCs when the coupon issual limit is about to reach a certain threshold value. The notification is sent to the brand POCs through email.
  2. Enable “sms content for resending the coupon” to resend coupons via SMS if a customer missed them. Use predefined Tags wherever necessary. If the message has Unicode characters, check Allow Unicode characters.

    • Example: If a customer missed a coupon and requested an executive to resend it. The executive can resend the coupon if this option is enabled.
  3. Enable “Send expiry reminders” to create multiple coupon expiry reminders and send them to customers through SMS/Email. Then Set the number of days before which message is to be sent, the message channel and the specific time. Similarly, you can add multiple reminders using the +Reminder option.

Configuring the Redemption settings

To configure various rules for how and when coupons can be redeemed which includes when redemption can start, allowing anyone to redeem it, redemption limit etc. follow these steps To set this :

  1. Enable “ Allow anyone to redeem it” so that You can allow redemption of a coupon by a non-recipient.
  1. In Redemption can start You can set when a coupon becomes available for redemption by setting the start time.
    1. Select right after coupon issual for the coupon redemption to start just after received.
    2. select days after issual then Enter the number of days after issuance the coupon can start being redeemed and days before expiration the coupon is valid for redemption. If a coupon is issued today and you say Redemption can start 1 day after issue then the coupon can be redeemed from tomorrow (irrespective of the time of issue. Only date is considered).
    3. Select from a specific date Set a specific date or day from which the coupon redemption can start. For example, redeem after 30 days of issual from a specific 22/10/2018 - Coupons are allowed to redeem only after 22/10/2018 and after 30 days of receiving it.
  1. Enable “Allow a coupon to be redeemed more than once” to allow a customer to redeem the coupon more than once then Enable “Limit the maximum times a customer can redeem a coupon” to set the maximum number of times the coupon can be redeemed by a customer. In Limit to, enter the maximum number of times the coupon can be redeemed by a customer.
  1. In “Stores allowing redemption” You can restrict an offer to be redeemed at specific stores by selecting the stores or uploading a list of stores. Select tills/stores/concepts/ zones From the “Restrict stores allowing redemptions“section. By default, an offer is available for redemption at any store.
  • Choose Upload CSV file to upload a file containing the IDs of your preferred zones/stores/concepts.
  • Choose Select Values to select your preferred zones/stores/concepts from the list directly. Till -> fetches the series for the till IDs, Store -> fetches for that individual store, Zone -> fetches the series mapped to zone, Concept -> fetches for the series mapped to concept.
  1. In Bill Amount that can redeem the coupon You can restrict the minimum and maximum bill amount criteria for offer eligibility that Enable “Minimum bill amount” enter the minimum amount and Enable “Maximum bill amount” and enter the maximum amount. The coupon can be redeemed only if your bill amount is under the limitation.
  1. In Days & time when the coupon can be redeemed You can set a specific day, date, and time slot for the coupon to be redeemed by selecting the following:
  • Days of the week - To allow redemption on selected days of the week- Sunday to Saturday.
  • Days of the month - To allow redemption on selected days of a month - 1st - 31st.
  • Hours of the day - To allow redemption in the preferred hours of the day.
  1. In Require gap between the redemption of a customer You can set a minimum gap (number of days) between two consecutive redemptions. For that Enable “Require gap between redemptions of a customer” and Enter minimum days between redemption.
    Note: This option is not applicable if the coupon is restricted to redeemed only once.
  2. In Limit total redemption in the offer You can limit the maximum number of coupon redemption in an offer and set the maximum allowed coupon redemption number. Enable “Limit total redemptions in the offer” and Enter the number of maximum allowed customers.
  3. In Restrict to new customer you can restrict coupon redemptions to new or first-time customers based on their registration date or a number of transactions Click “Restrict to new customer”, Enable “Date of registration” and enter the start and end date then Enable “Number of transactions” and enter the value.

Revoke Coupon

When a cashier redeems a coupon in case of an internet outage, you can expire such coupons instead of doing a manual cleanup at the backend.
To expire active coupons, follow these steps:

  1. Navigate to Engage+ and Select Incentives.
  2. Click the three dots next to the offer you want to revoke.
  3. Click Revoke Coupons.
  1. Select your desired revoking option.

    • All unredeemed coupons (Issued and unissued): To expire all coupons that are either not redeemed or issued.
    • Only unissued coupons: To expire only coupons that are not issued.
    • For specific customers: To expire all active coupons of particular customers. Create a CSV file with identifiers of customers whose coupons you want to expire, and upload the file using Upload Customer.
  2. Check I understand that revoking coupons will make them unredeemable. Expired coupons cannot be redeemed or reversed.

  3. Click Revoke.

A message is shown that the customer data is successfully uploaded. All the coupons issued to the selected customer are revoked and ready for use.

Notes: You cannot revoke redeemed coupons. If a customer has multiple active coupons from the same series, then all active coupons are revoked.

Transfer of Coupon

You can revoke the coupon and then assign the same coupon code to the intended customer through coupon upload, as transferring a coupon from one customer to another customer is not supported.

Personalization of coupon at scale

Personalization of coupon at scale (audience of 20M+) : This is a limited release and is enabled as an add-on. This is not a part of any standard package. Please reach out to your CSM to enable the personalization of the coupon feature.

To create this follow the steps:

  1. Navigate to the Engage + module and click on Incentives.
  2. Click on* Create Offer*.
  1. Enter the basic details of the coupon series like offer name, offer expiry, discount value for each coupon(fixed/percentage), products applicable etc.

  2. While selecting how to generate coupon codes for the series :

    • Select Through capillary.
    • Click on Generate common codes(s) -> Generate randomized common code(s).
  3. Enter the sample common code, it could be numeric or alphanumeric.

  • Here, in this case, TEST12345 is just a sample code to generate the randomized codes from this reference.
  • The system will take the length of the sample code provided and if it is numeric or alphanumeric and then generate the random codes based on this input.
  • The resulting codes will be of the same length and will have 50% of the code as fixed for all the codes, i.e. in this case, let’s say TEST will be fixed and the remaining 5 digits will be randomly generated.
  • The fixed part will be unique in the backend for an org.
    Note: Min 5 characters should be there in the sample code and Max. of 10 characters is supported.
  1. Once the offer is created, the sample code provided at the time of creation can’t be changed and in the UI, in edit flow, it won’t be the same code which was provided at the time of offer creation.
  • This option is only available when offers are created from the incentives section but can be claimed in any module.
  • This type of series can only be created via UI and not via coupon APIs.
  • The feature of uploading customers won’t be available for this type of coupon series.
  • This option is not available for offers created via campaign flow or loyalty flow.
  • Time to issue 30M coupons via campaigns flows 3 hours.
  • With this feature, we can issue a maximum of 60 million unique coupons when 10-digit alphanumeric characters are used to create a coupon series.
    Note: The system allows for coupons to have multiple currencies and it is important to note that the coupon value will be converted to the store default currency at the time of transaction.

Issuing Coupon by Uploading the list of Customers

To issue coupons to a list of customers uploaded during offer creation, click on Upload customers.

To validate why the coupons were not issued or why the issuance failed, click on Download Issues.

Validations for Issuing Coupons Through Capillary

It explains the necessary checks to ensure successful coupon issuance. It covers the different methods for uploading
coupon codes and the validation rules to prevent errors, such as duplicate coupon codes, issuance limits, and customer
eligibility.

We have three options to upload the coupon codes through Capillary:

  • Upload existing coupon codes (with customers)
  • Automatically create unique codes and issue to specific customers only
  • Give a common code and issue to specific customers only

These are the error responses you may encounter when discrepancies occur:

  • Invalid External ID: User does not exist with provided external id
  • Invalid Mobile: User does not exist with provided mobile
  • Invalid Email: User does not exist with provided email
  • Invalid User ID: User ID is not valid or is inactive
Error response in the case of Invalid External ID

Error response in the case of Invalid External ID

Error response in the case of Invalid Mobile

Error response in the case of Invalid Mobile

Error response in the case of Invalid Email

Error response in the case of Invalid Email

Error response in the case when user ID is invalid or inactive

Error response in the case when user ID is invalid or inactive

Validations for Duplicate Users in a File while Issuing Coupon

Validation for duplicate users ensures that coupons are issued according to predefined rules, such as maximum issuance limits, coupon series type and time gaps between issuances.

Case 1: Uploading duplicate customer with Maximum Coupon Issual Limit

You are uploading four duplicate customer with maximum coupon issual limit per customer as three

  • Coupon Series Type : DiscCode
  • Maximum coupon issual limit per customers = 3 (Three customers can be issued to a particular coupon)
  • Minimum gap between two issual = No gap
  • Maximum issual limit for series = No limit

These are the error responses you may encounter when discrepancies occur:

  • Uploading a file with four entries for the same User ID will result in an error because the maximum coupon issuance limit per customer is three, and the fourth entry will fail as the issuance limit has been exceeded for the duplicate user.
  • Uploading the same file will result in an error, and customers will not receive the coupon because the limit of three coupons per customer has been exhausted.
  • Uploading the same file again, even with only one entry, will result in an error because the customer has already reached the issuance limit.

Case 2: Uploading duplicate customer with minimum gap between two Issual

You are uploading four customers when minimum gap between two issuals is one day

  • Coupon Series Type : DiscCode
  • Maximum issual limit per customer = 3
  • Minimum gap between two issuals = 1 day
  • Maximum issual limit for series = No limit

This is the error response you may encounter when discrepancies occur:

  • Uploading a file with four entries for the same User ID and a minimum gap of one day between two issuances will result in an error because the minimum gap requirement of one day has not been met.

Case 3: Uploading duplicate customer with maximum issual limit for coupon series

You are uploading four customers, but the maximum issuance limit for the coupon series is two.

  • Coupon Series Type : DiscCode
  • Maximum issual limit per customer = No limit
  • Minimum gap between two issual = No gap
  • Maximum issual limit for series = 2

This is the error response you may encounter when discrepancies occur:

  • Uploading a file with four entries for the same User ID will result in an error because the maximum issuance limit for the coupon series is two.

Case 4: Uploading duplicate customer to issue a Generic Coupon

You are uploading four customers with same customer identifier to issue a Generic Coupon

  • Coupon Series Type : Generic
  • Maximum issual limit per customer = No limit
  • Minimum gap between two issual = No gap
  • Maximum issual limit for series = No limit

This is the error response you may encounter when discrepancies occur:

  • Uploading a file with four entries for the same User ID will result in an error because only one generic coupon code can be issued to a customer.
  • Uploading the same file again will result in an error stating that Generic coupon code has already been issued to this customer.

Track the reversal status of a coupon

This feature allows brands to easily indicate which coupons have been reversed and reinstated in the mobile app's user interface.

  • This will help customers to easily identify the coupon that was reversed, thus reducing confusion and the number of queries made to support.
  • Additionally, this feature will also improve the customer's experience by providing them with transparency and visibility into the status of their coupons.
  • Brands can also use this feature to track and analyse the performance of their coupon campaigns and make data-driven decisions to optimise their rewards strategy.

Impacted APIs :
Get Customer Coupons
Get Coupon details

In both the API response, isReversed and last_status_change_on values would be returning from the coupon_redemptions table based on the active and last_status_change_on columns.

Coupon APIs

  • If you specify a zone in the API call, it will only return offers tagged to that zone, not to individual stores within it. For example, if a brand has stores A, B, and C in zone 1, using "zone 1" will only show offers for that zone, not for stores A, B, or C. To get offers for those specific stores, you need to include their store IDs in the API call.
  • The provided orgEntityIds won't be validated, meaning if an invalid ID is entered (not a proper store, zone, or concept ID), no error will be shown; instead, you simply won't receive any results for that ID.
  • You can only filter by one orgEntityType at a time in a single request.

Manage Store and Zone-Level Redemption Settings

This helps brands select & upload store names while creating a coupon series to restrict the coupon redemption to those stores. However, brands generally run scope restrictions based on store name.

To add store IDs for coupon series via Thrift,

SaveCouponConfigRequest:  
          CouponConfiguration:  
                      redemptionOrgEntityDetails:  
                                <orgEntityId
                                redemptionOrgEntityType>,  
                                <orgEntityId
                                redemptionOrgEntityType>,

API based implementation details,

  1. redemptionOrgEntityDetails is a list of redemptionOrgEntityType and orgEntityId.
  2. Add redemptionOrgEntityType as STORE, ZONE or CONCEPT.
  3. Add orgEntityId as a store, zone or concept id.
  4. This is to be added in thrift SaveCouponConfigRequest to make a thrift call for saveCouponConfiguration.

To filter store IDs for coupon series via Thrift:

  1. Add orgEntityType as STORE, ZONE or CONCEPT.
  2. Add orgEntityIds with a list of store, zone or concept IDs.
  3. This is to be added in thrift GetAllCouponConfigsRequest to make a thrift call for getAllCouponConfigurations.

📘

Note:

Refer coupon v1.1 APIs to issue coupon,Resend coupon,Redeem coupon etc..

Refer Coupon v2 APIs to create coupon series, update coupon series etc...

Refer Coupon Upload v1 APIs to upload coupon, upload redeem coupon etc...