Prerequisites
📌 This article covers AIQ Loyalty Discounts, managed under Marketing > Discounts. For AIQ Ecommerce Offers, see Overview: Offers.
Required Permissions
Discounts can be accessed by staff members with:
Marketing
Marketing + Analyst
Operator
Owner
Other Requirements:
Starter Loyalty + Marketing subscription
A connected POS and/or Ecommerce integration (recommended)
Defined audiences and locations (for targeting)
Loyalty points enabled (for point-based discounts)
⚠️ Regulated industries: Always confirm discounts are legal in the state(s) where they will be used before making them available to shoppers.
Discounts can be redeemed:
In-store by checkout staff
By shoppers through their AIQ Wallet
At ecommerce checkout (when supported by integration)
Discounts are typically configured as:
Static $ off
Static % off
Partner platform rewards
Tier-based rewards
Unique coupon codes
How to Create a Discount
Navigate to: Marketing → Discounts → Create Discount (+ button)
Step 1: Basic Info
Discount Information:
Internal Discount Name: Internal only. Not visible to shoppers.
Tags: Create or Assign Tags for easier organization and implementation
Discount Type
Normal: Requires points to redeem.
Example: 400 points = $40 off
Tier Reward: Lives statically in the wallet and represents a loyalty milestone.
Example: 400 points = Tier 4 member = 4% off all purchases
Available To
Stores: Select eligible retail store locations.
Audiences: Select eligible audiences.
Excluded audiences: Exclude any audiences
🚨 Warning: If no audiences are selected under Available to: Audiences in the discount builder, the discount will not be available to any shopper. Please ensure that an audience is selected to ensure discount accessibility.
Use for flows only
Toggle this on if you want to limit this discount to the flow.
These discounts cannot be accessed outside of Flows
A persona can only receive this discount when they reach the step in the Flow
Prize Wheel (Requires Native App)
Toggle ON to include the discount in the Spin-to-Win prize wheel.
See Prize Wheel for more information.
Timing
Start Date/Time: When the discount becomes available.
End Date/Time: When the discount expires globally.
Relative Expiration: Expires X days/hours after being added to a wallet.
Expiration Method: Choose whether the countdown begins when the discount becomes available OR after the shopper first views the discount
💡 Important: If you choose "after the shopper first views the discount", the timer will not start until the shopper opens their wallet. A shopper who never opens their wallet could hold the discount indefinitely — or until a hard end date is reached. This applies whether the discount was audience-based or pushed via a campaign macro. If the discount was sent as a macro, audience membership changes will not remove it. See the "A shopper received a discount via a campaign macro but no longer qualifies for the audience" FAQ below for removal options.
Time Period: Set the expiration window in days or hour
Example: Birthday discount expires 7 days after it is available.
ℹ️ Timezone: Scheduled launch and end times are evaluated in the retailer's venue timezone, not the timezone of the person configuring the discount. For example, a 9:00 AM start time for a store in ET means the discount goes live at 9:00 AM ET regardless of where you are located.
Step 2: Design
This controls how the discount appears in the AIQ Wallet.
Discount Details
External Discount Name: Name shown to shoppers.
What are you discounting: Shown in wallet and redemption screen.
Subtext: Add additional text for the shopper to see here. Leave blank to hide subtext field from Discount.
Images
Small Logo
Defaults to Small Logo from Branding Settings
Recommended size: 400 x 400px
Max file size: 2MB
Discount Photo (optional)
Recommended size: 400 x 400px
Max file size: 2MB
Additional Display Settings
Fine print: Shown below the discount as a disclaimer
Redemption confirmation popup: Shown within a confirmation popup when the redeem button is clicked
Optional double-confirmation toggle: Double confirm with the shopper before redeeming the discount
Step 3: Redemption
Notice: This section relies on 3rd parties to effectively implement and honor your settings. AIQ makes these settings available via our REST API and supporting documentation located in our API End Point Documentation. Please verify supported functionality with your 3rd party before releasing discounts into the wild.
Redemption Settings
Points Required to redeem
Set the number of points required.
Leave blank for non-points discounts.
Number of redemptions per persona
Custom: Set any number you want in the "Redemptions" field per persona
Unlimited: Unlimited use per persona
Cooldown Between Redemptions (optional)
Set required hours/days between uses.
Hide redeem in store button (optional)
Hides shopper-facing redeem button, so your staff can redeem through AIQ.
Redemption Method
This allows you to set up the static dollar ($) dicount or a static percentage (%) discount for your discount. This is the discount amount that will be passed to the supported POS and Ecommerce Integrations. Checkout our Integration Grid to see what redemption methods are supported for your particular integration.
Static $ or % Off
Choose one:
Static Dollar Amount
Static Percentage
Note: You can't combine static $ and static %.
Dollars to take off cart / Percentage to Take Off Cart:
Spend Requirement
The minimum or maximum amount a shopper must spend to be eligible to redeem the discount.
⚠️ This is not enforced by all integrations, please see our Integration Grid to see if your integration supports it.
Can this discount stack with others?
Allow Stacking: Yes, can combine with other discounts
Prevent Stacking: No, cannot combine with other discounts
⚠️ This is not enforced by all integrations, please see our Integration Grid to see if your integration supports it.
Trigger a Partner Platform Reward
Allows triggering external rewards through integrations.
Can be used with the static $ or % off filter
Coupon Codes
Same Coupon Code for Everyone
Example: SAVE20
Good for simplicity and unlimited usage.
Unique Coupon Codes (Requires Marketing Pro)
Unique, single-use codes from:
Coupon codes can be entered into AIQ from a third party provider (e.g. your POS) or generated in AIQ.
Codes are limited to a single use, and a maximum number of codes can be generated giving you more control over discount code usage.
Codes are not assigned to a unique shopper ID, instead they are redeemed from the bank of codes, and will appear in the persona's wallet after use.
Unique codes can also be used to share discounts and rewards for shoppers who do not already have personas or access to your store wallet.
Benefits:
Improved control
Fraud reduction
Controlled volume
Single-use enforcement
AIQ-Generated Codes
Using coupon codes generated in AIQ cannot be redeemed natively in another tool and will require the checkout staff or shopper to redeem through the AIQ wallet.
Helpful hints on generating and saving unique codes in Discount Builder:
When building a new discount using AIQ generated codes, it is best practice to determine the audience size first, so you know how many codes to generate.
You must save the discount before codes can be generated.
If all codes are used and you would like to add more you can edit the discount to generate additional codes.
Codes can be customized with a code prefix to help with discount identification.
Best practice: Determine audience size before generating codes.
For more information on embedding unique discount codes to campaigns, see our Legacy: Campaign Builder article and select "Discount macros" from the table of contents.
Third-Party Generated Codes
Using coupon codes generated from a supported tool can allow for native redemption through the POS or ecommerce checkout. However, these unique code discounts can also be redeemed from the shopper's wallet as well by shopper or budtender.
Example: Barcode discounts generated from the POS and mirrored in AIQ's discount builder can allow checkout staff to scan a barcode and apply a discount in the POS.
Helpful hints on using third-party generated codes in Discount Builder:
You must save the discount before codes can pasted into discount.
If all codes are used and you would like to add more you can edit the discount to paste in additional codes.
Adding a code prefix from AIQ will not be appended or displayed when the code is redeemed at the POS or eCommerce checkout, ensuring the native tool recognizes and processes the code correctly.
POS Discount ID & Barcode
POS Discount ID
Mirror existing POS discount inside AIQ.
Enter the POS discount ID for syncing.
Barcode
Mirror POS barcode discounts.
Enter barcode value and format.
Static + Triggered Combination
To enable ecommerce redemption:
Configure Static $ or % off
Select "Trigger a Partner Platform Reward"
Choose "Use with existing" when prompted
⚠️ Static $ cannot be combined with Static %.
If updated in POS, update static portion in AIQ to match.
4. Review & Save
Review all configurations carefully.
Click "Create Discount" to activate your discount.
FAQs
Can a discount expire X days after issuance?
Yes. Use Relative Expiration.
When does the relative expiration clock start for birthday or audience-based discounts?
The clock starts at the moment the discount first qualifies for the shopper — not when they exit the birthday or audience window. The anchor timestamp is saved at first qualification and is never reset or extended, even if the shopper's audience membership lapses (for example, after their birthday month ends). A shopper who re-enters the audience later will have their expiration measured from the original first-qualification date, not from when they re-qualified.
Can a discount be used more than once?
Yes, enable in Redemption Settings.
What happens if a shopper qualifies through a campaign macro but not the discount audience?
They will still receive the discount in their wallet.
A shopper received a discount via a campaign macro but no longer qualifies for the audience. Will it stay in their wallet?
Yes — campaign macros override audience eligibility rules. Once a discount is pushed to a Persona's wallet through a campaign macro, it stays there permanently, even if they later fall out of the discount audience.
To remove it, you have two options:
Archive the discount — removes it from all shopper wallets immediately. Use this if you want to end the discount entirely.
Duplicate the discount with an end date — create a copy with a fixed expiration, point future campaigns at the duplicate, and let the original expire. This preserves the discount for shoppers who already redeemed while stopping new pushes.
If a reusable discount expires unused, can it re-issue?
No. Expired discounts do not re-issue under the same Discount ID.
How do I make a discount reset on the 1st of each month (rather than a rolling window)?
The built-in "Reusable after N days" setting uses a rolling window, not a calendar-month reset. A 30-day reusable discount resets 30 days from each individual redemption date — it does not automatically reset on the 1st of every month for all shoppers simultaneously.
To achieve a true calendar-month reset, use this pattern:
Create a Reusable discount with no automatic rolling reuse window (or a short window to handle edge cases).
Drive delivery via a monthly recurring campaign or Flow that launches on the 1st of each month. This controls when shoppers receive the discount — not the discount's internal reuse logic.
Gate delivery with an audience of shoppers who have not redeemed this discount in the current calendar month. This prevents re-delivery to shoppers who already used it.
📌 A monthly campaign alone does not enforce a per-shopper redemption cap. The audience gate in step 3 is what prevents a shopper from receiving the discount a second time in the same month if they already redeemed it.
How do I prevent online redemption?
Go to:
Settings → Mobile App → App Features → Features
Toggle OFF: "Show Redeem buttons on the discount card"
What's the difference between Tiered Discounts and Custom Discounts?
Tiered Discounts
Always visible in the shopper's wallet
Typically require points to redeem
Show how many more points are needed if the shopper is short
Create clear redemption goals for shoppers
Custom Discounts
Only appear when a shopper meets specific criteria
Based on audience rules
Example: A Birthday Discount only appears on the shopper's birthday if the Is their birthday audience is used
How can I completely remove a discount so it no longer appears in shoppers’ wallets?
You have two options to remove a discount:
Archive the discount: This immediately removes the discount from all shopper wallets.
Set an expiration date: This allows the discount to remain active until a specified time, after which it automatically becomes inactive and disappears from wallets.
Which option should I use—archiving or setting an expiration date?
Use archiving if you want to remove the discount right away.
Use an expiration date if you want the discount to stay available for a set period before automatically disappearing.
If I archive a discount does it remove / deactivate it from all shopper wallets?
Yes. See above.
How do I push discounts to my POS or Ecommerce platform?
This depends on your provider. See POS/Ecommerce integration documentation for setup instructions.
Does a shopper need to open my campaign to receive a discount?
No. As soon as a Persona qualifies for a discount audience, the discount is added to their wallet — regardless of whether they open a campaign.
What happens if I send a discount macro to someone outside the discount audience?
If a Persona receives a campaign with a discount macro, they become eligible for that discount — even if they did not meet the original discount audience criteria. The discount will appear in their wallet.
Where did my discount groups go?
Discount groups have been deprecated and any existing groups have been migrated to Tags.
How do I target a discount to shoppers who completed a specific survey?
Use the Answered Survey trait in the Audience Builder to create an audience of survey completers. Then, under the Available To section in the Discount Builder, select that audience. Once saved, any shopper who completes the survey will automatically be added to the audience and become eligible for the discount.
Will shoppers be notified when a discount is added to their wallet?
No. Shoppers are not automatically notified when a discount is added to their wallet. To inform them, create a separate SMS or email campaign targeting the same audience. Add the discount macro to your campaign landing page so the discount displays to recipients.
How do I control the order discounts appear in a shopper’s wallet?
Discount ordering in the shopper wallet is separate from what staff see on the Persona’s Discounts tab. The two views use different logic:
Shopper wallet — Discounts are sorted by display priority. Higher-priority discounts appear closer to the top. When two discounts share the same priority, the one requiring more points to redeem appears first. To adjust:
Navigate to Marketing → Discounts.
Use the reorder controls to set each discount’s display priority.
📌 Discounts synced from a POS integration default to the lowest display priority and will appear at the bottom of the shopper wallet unless a priority is manually assigned.
Dashboard Persona view (Customers → Personas → Discounts tab) — Discounts are always listed newest first by start date. This cannot be changed from that view; the only way to affect the order is to change when a discount starts.
Can shoppers enter a promo code to redeem a loyalty discount at the POS?
Not through AIQ Loyalty — AIQ Ecommerce promo codes (Menu > Offers) work at online checkout only and are separate from Loyalty discounts.
For in-store code-based redemption, use the Coupon Codes feature in the Discount Builder (Marketing > Discounts):
AIQ-generated codes — redeemed by the shopper or staff through the AIQ wallet at checkout.
Third-party generated codes (from your POS) — can be natively scanned or entered at POS checkout, depending on your POS integration's support.
📌 Not all POS integrations support native coupon code redemption. Check the Integration Grid to confirm what your POS supports before building coupon code discounts.
How long does it take for a discount to be removed from a shopper's wallet after they no longer qualify?
Removal happens after the next overnight audience recalculation — typically within ~24 hours. After recalculation, there may be a brief additional delay before the wallet visually reflects the change.
To speed it up: Re-saving the audience (even without real changes) flags it for a same-day forced recalculation during business hours. If the discount is still in the wallet after 24 hours following a re-save, contact AIQ Support.
Need Help?
If you need assistance interpreting analytics reports or building strategic audiences, reach out to AIQ Support via the chat widget in your AIQ Dashboard.



