Overview of promotions
Promotions are a key tool for e-commerce marketers to engage customers, drive sales, and incentivize actions through promo codes. The promotions feature simplifies creating and allocating promo codes, enabling seamless integration into your campaigns.
Blueshift manages promo code distribution and redemption. However, validation will remain the responsibility of your e-commerce system.
To effectively use promotions in your campaigns, follow these steps:
- Prepare a CSV of promo codes
- Create promotion code bucket
- Use promo codes in your templates
- Assign promo codes for your campaigns
- Track promo code distribution
- Monitor alerts for promo bucket statuses
- Promo codes in the customer profile
- Add more promo codes to existing buckets
Important considerations
- Template integration: Ensure the promo code syntax is correctly added to your campaign templates.
- Campaign association: Always link the promotion bucket to the trigger in your campaign.
- Promo code availability: Segment-backed campaigns will stop running if the promo bucket runs out of codes or the promotion bucket expires.
- Testing promo codes: Promo codes can only be tested in live campaigns. For test sends, a dummy code is generated for preview purposes, but it does not actually allocate a promo code.
Prepare a CSV of promo codes
Create a CSV file with the required promo codes and structure it as shown in the example below. Ensure the header row matches the required format.
Ensure the codes are unique to prevent overlap or reuse.
Click here to download a sample CSV file.
Create promotion code bucket
- Navigate to Promotions in the left-hand menu under Data.
- Click the +PROMOTION button on the top right corner of the screen.
Fill in the following fields:
- Promotion name: Provide a meaningful name for the promo bucket.
-
End date:
- Specify the end date for the promo bucket, or leave it as None.
- Campaigns using codes from buckets with an End Date will pause automatically after 11:59:59 PM on the specified date.
- If a promotion bucket is set to expire, a notification email will be sent within 72 hours before the expiration.
- The email is sent to the campaign owners and the promotion creator.
- Additional recipients specified in the notification field will also receive the email if notifications are enabled.
- For buckets with expiry dates shorter than 72 hours, the reminder will still be sent before the bucket expires.
-
Type:
- Choose between multi-use and single-use promo codes:
- Multi-use (selected by default): Multi-use promo codes assign a maximum of one sticky code per user from the promotion bucket. The allocated code will be the same even if the promotion bucket is used across multiple campaigns.
- Single-use: Single-use promo codes ensure each user receives a unique code every time a campaign trigger allocates one. Each code is designed to be used only once.
- Discount value: Enter the discount value (e.g., 20) for the promotion.
-
Discount format: Choose one of the following:
- Percent off: Discount is a percentage (e.g., 20% off).
- Amount off: Discount is a fixed amount (e.g., $20 off).
- Choose between multi-use and single-use promo codes:
Allocation behavior
The promo code allocation behavior does not account for the triggers and campaigns it is associated with. The only factors are whether the user has previously been assigned a promo code and whether the promotion is multi-use or single-use.
Multi-use
Whenever a request is made to allocate a multi-use promo code to a user, it checks whether the user has already been allocated one. If the user has, it returns the same promo code the was previously allocated. Otherwise, it allocates a promo code for the user. This same promo code will be returned if you attempt to allocate another one for the same user in the future, which is what makes them sticky.
Single-use
For single-use promo codes, a new, unique code is assigned to the same user each time. It doesn't matter whether the allocation is happening within the same trigger, across different triggers, or across different campaigns. Every request to allocate one to the user will return a new promo code.
You can associate multiple promotion buckets with a single trigger, but each trigger can allocate at most one promo code to the user. The purpose of having multiple promotion buckets for a trigger is to allow campaign execution to use other buckets if one is out of promo codes.
Campaign execution does not allocate a promo code from each associated promotion bucket!
To better understand how multi-use and single-use promo codes behave, let's consider the following examples:
Promo code allocation example: multi-use vs. single-use
To better understand how multi-use and single-use promo codes behave, let's consider the following example:
Jane Doe creates a promotion called "Festive Offers" with three coupon codes: AB, CD, and EF. She associates this promotion with the "Festive Season" campaign, which sends an email notification to customers when they view a product on the website.
Case 1: Multi-use promo codes
If "Festive Offers" is set as multi-use:
- A customer, Alice, qualifies for the campaign by viewing a product and is assigned the coupon code "AB."
- If Alice views a product again and requalifies for the campaign, she will continue to receive the same coupon code "AB."
Case 2: Single-use promo codes
If "Festive Offers" is set as single-use:
- Customer Bob qualifies for the campaign by viewing a product and is assigned the coupon code "AB."
- If Bob receives another message from the campaign, he will be assigned a new coupon code, "CD," when a different trigger sends a message, even if he has not exited or requalified.
- If Bob requalifies for the campaign at a later date, he will be assigned a new coupon code, "EF".
-
Enable notification: By default, this checkbox is unselected. Select this option to enable notifications related to promotion activity and expiration reminders.
- When enabled:
- Enter the notification threshold in the Notify when field. You can choose between:
- Percent of total coupons: Receive notifications when the percentage of remaining coupons falls below the specified value (e.g., 10%).
- Number of coupons: Receive notifications when the total number of remaining coupons falls below the specified value (e.g., 50 codes).
- Add additional recipients in the Notify emails field, separated by commas. These recipients will receive notifications along with the campaign owner and promotion creator.
- Enter the notification threshold in the Notify when field. You can choose between:
- When enabled:
Notification highlights
- Expiration reminders are sent to the promotion creator and campaign owners even if the Enable notification checkbox is not selected.
- If the checkbox is selected and additional recipients are specified, they will also receive the expiration reminder email.
- For promotions with an expiration date shorter than 72 hours, the expiration email will still be sent before the bucket expires.
- Upload CSV: Upload the CSV file created earlier.
-
Preview uploaded codes: Once you upload the CSV file, the system will automatically show a preview of the first 10 rows under the Sample Data section. This helps you confirm the structure and values of the uploaded file before submitting the promotion.
- The preview may render incorrectly if the file contains structural issues (e.g., extra columns).
- You can click Fetch Again to refresh the preview if you reupload a different file.
- Click Submit to save the promotion bucket.
Use promo codes in your templates
Promo codes can be dynamically added to your email, push, or SMS templates to personalize content for each customer. Follow these steps to use promo codes effectively:
-
Basic syntax:
Use the generic syntax {{ user.promo_code }} to dynamically populate the promo code in your template. When the message is sent, this placeholder is replaced with the promo code assigned to the customer from the associated promotion bucket. -
Advanced syntax (optional):
Alternatively, you can use the following syntax to reference a specific promotion bucket:
{{ user.promotions.'promotion_id' }}
Replace 'promotion_id' with the UUID of the promotion bucket.
-
Important consideration:
- The advanced syntax works only if the promotion_id in the campaign matches the promotion_id in the template.
- The message will be sent without any promo code if there's a mismatch.
Recommendation
To avoid errors and ensure seamless integration, we recommend using the generic syntax {{ user.promo_code }} instead of specifying a promotion_id in your templates.
Assign promo codes for your campaigns
During setup, you'll need to assign a promotion bucket to the trigger to ensure your messages include the correct promo codes. This is done in the Send Settings on the Messaging tab for each applicable trigger.
Trigger-based code assignment
For single-use promo codes, a new code is issued at each trigger within the same campaign, even if the user has not exited and requalified. To maintain the same code across touchpoints, consider using multi-use promo codes.
- Multi-use promo codes: Customers receive the same sticky code for all triggers across campaigns using the same promotion bucket.
- Single-use promo codes: Customers will receive a new code at each trigger within a campaign, even if they do not requalify.
Sticky promo code assignment across campaigns
If multiple campaigns use the same multi-use promotion bucket, each user gets one sticky promo code. This code stays the same for that user across all campaigns using that promotion bucket.
Important: Promo codes are assigned based only on the user and the promotion bucket. The logic does not consider which campaign or trigger the bucket is used in. As a result, some codes may remain unused even if all campaigns are delivered.
Promo code delivery & assignment rules
- If a promotion bucket is not assigned to the trigger, the campaign message will not include a promo code, and the placeholder will remain blank.
-
Promo code allocation behavior:
- For multi-use promo codes, allocation is sticky. Customers receive the same code across triggers in all campaigns that use the same promotion bucket.
- For single-use promo codes, allocation is not "sticky." Customers will receive a new code each time they requalify for the campaign, even if the trigger and promotion bucket remain the same.
Track promo code distribution
View the details of each promo bucket under Promotions. The table includes:
- Total codes: The total number of codes uploaded.
- Available codes: The number of codes remaining.
You can view campaigns that use this promotion bucket in the Usage tab of the promotion editor.
Upload history
The History tab shows all CSV files uploaded to this promotion bucket and their processing status.
- File name — uploaded CSV
- Status — success or failure
- No. of codes — total codes in the file
- Processed — codes successfully added
- Errored — codes that failed validation
- Uploaded at and Last updated — timing of the upload and processing
Use search and status filters to quickly find specific uploads.
Monitor alerts for promo bucket statuses
Alerts will be sent if the Enable notification checkbox is selected for the promotion bucket. These notifications include:
- A 72-hour reminder before the promo bucket expires.
- Campaigns that will pause due to expired promo buckets.
Here is an example:
Promo codes in the customer profile
The Promotions section on the customer profile provides visibility into the promo codes assigned to a specific customer. This section displays:
- The name of the promotion bucket from which the coupons were dispensed.
- The promo codes sent to the customer to date are displayed, showing up to 10 per promotion, with the most recent codes listed first.
Add more promo codes to existing buckets
To add more promo codes, open the promotion bucket and stay on the Properties tab in the promotion editor.
- Scroll to the Upload .csv section.
- Upload a new CSV file with additional promo codes.
- Make sure the file format matches the original upload.
- New codes are appended to the bucket and do not replace existing codes.
Promo code allocation behavior
- Multi-use promo codes - Adding new codes ensures availability for new customers or scenarios where additional codes are needed. Existing customers will continue to use the same codes already allocated to them.
- Single-use promo codes - The campaign cannot allocate new codes unless there are enough available in the bucket, since a new one is issued at each trigger. Therefore, adding new codes ensures that the campaign can issue unique codes to each customer who requalifies.
- Avoid duplicate codes in the new file to prevent allocation errors.
Frequently asked questions
1. Will a user receive the same promo code for multiple touchpoints in a given campaign?
The promo code sent to a user at different touchpoints in a campaign journey depends on the following criteria. If any of the below differ, a different code will be sent:
- User
- Campaign
- Promotion bucket
Additionally, here is an important note about the promo code behavior:
- Multi-use promo codes: Allocation is sticky. The user receives the same promo code for every touchpoint across multiple campaigns using the same promotion bucket.
- Single-use promo codes: Allocation is not "sticky." The user will receive a new promo code at each trigger within the same campaign, even if the user has not exited and requalified.
2. Can I include multiple promotions in a single trigger?
Yes, but the user will only be allocated at most one code from one of the promotions. If a promotion bucket runs out of codes, the system will try the next promotion bucket in the sequence.
For example, if the trigger includes Bucket A and Bucket B:
- The system will first attempt to allocate a code from Bucket A.
- If Bucket A runs out of codes, it will then allocate a code from Bucket B.
This behavior applies regardless of whether you use {{user.promo_code}} or {{user.promotions. 'promotion_id'}} in your templates. However, for multiple promotions, we recommend using {{user.promo_code}} to avoid potential mismatches.
3. Why did a user receive a different single-use promo code at each trigger within the same campaign?
Single-use promo codes are not "sticky." A new code is issued at each trigger within the campaign, even if the user has not exited or requalified. This ensures that each message delivers a unique code.
If you want the same code to be used across all touchpoints, use a multi-use promotion bucket instead.
Comments
0 comments