Events
Each event can be turned on or off in Integrations > Omnisend.
Store credit mode. If your loyalty program runs on store credit instead of points, Points Awarded, Points Pending and Points Expiry Soon are replaced by store credit events. See Store credit mode events below.
Points Awarded
Fired when a customer earns points through purchases, actions, or other earning rules.
Contact: Customer's email
Property | Type | Description |
| number | Number of points earned |
| string | Name of the earning rule (or "Manual") |
| string | Status of the earning (e.g. |
| string (optional) | Shopify order number, if points were earned from a purchase |
| string (optional) | Name of the multiplier bonus campaign that boosted this order |
| number (optional) | The campaign multiplier, e.g. |
| number (optional) | The extra points the campaign added. |
The three Bonus properties are only included when a multiplier bonus campaign applied to the order. Tiered bonus campaigns send their own Bonus Points Awarded event instead.
Points Pending
Fired when a customer earns points that are not yet in their balance because the earning rule has a waiting period (e.g. purchase points held until the refund window closes). When the points are later approved, a separate Points Awarded event will fire.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Customer's email
Property | Type | Description |
| number | Number of points that will be awarded once approved |
| string | Name of the earning rule (or "Manual") |
| string | Always |
| string (optional) | Shopify order number, if points were earned from a purchase |
Bonus Points Awarded
Flat bonus points from a tiered bonus campaign.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Customer's email
Property | Type | Description |
| number | Number of bonus points awarded |
| string | Name of the bonus campaign |
| number | The order amount that qualified for the bonus |
| number | The spend threshold that was met |
| string |
|
| string (optional) | Shopify order number, if the bonus came from a purchase |
Reward Redeemed
Fired when a customer redeems their points for a reward or discount.
Contact: Customer's email
Property | Type | Description |
| string | Name of the reward redeemed |
| number | Number of points spent (0 if null) |
| string | Type of discount (e.g. |
| number | The customer's points balance after the redemption |
| string (optional) | The discount code issued for the reward, if one was created |
VIP Tier Changed
Fired when a customer moves up or down a VIP tier. Only fires when VIP tiers are enabled on your loyalty program.
Contact: Customer's email
Property | Type | Description |
| string | Name of the tier the customer moved to |
| string (optional) | Name of the previous tier, if applicable |
Referral Invite Sent
Fired when an advocate sends a referral email invite to a friend.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Advocate's email
Property | Type | Description |
| string | Email address of the invited friend |
| string | Name of the referral campaign |
| string | Name of the advocate (or "A friend" if not provided) |
| string | Email subject line used for the invite |
| string | Custom message written by the advocate |
| string | The referral link sent to the friend |
| string | Name of the Shopify store |
| string | Domain of the Shopify store |
| string | Always |
Referral Claimed
Fired when a friend claims their referral discount code.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Friend's email
Property | Type | Description |
| string | The discount code generated for the friend |
| string | Type of discount ( |
| number | Discount value (0 if null) |
| string | Name of the referral campaign |
| string | The merchant-defined reward name as set in the campaign reward settings |
| string (optional) | Email of the advocate who referred the friend, if known |
| string (optional) | Name of the advocate, if known |
| string | Name of the Shopify store |
| string | Domain of the Shopify store |
Referral Reward Earned
Fired when an advocate earns their reward after their referred friend completes a purchase.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Advocate's email
Property | Type | Description |
| string | Email of the friend whose purchase triggered the reward |
| string | The advocate's reward discount code |
| string | Type of discount ( |
| number | Discount value (0 if null) |
| string | The merchant-defined reward name as set in the campaign reward settings |
| string | Name of the referral campaign |
| string | Name of the Shopify store |
| string | Domain of the Shopify store |
Points Expiry Soon
Fired when a customer has loyalty points expiring within the next 7 days. This event is triggered once per customer per 7-day window. Points from several earning rules expiring on different days are combined into a single event, so customers never get duplicate reminders.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Customer's email
Property | Type | Description |
| number | Total points expiring within the next 7 days (aggregated across all earning rules) |
| number | Customer's current point balance at the time the event fires |
| number | Days until the earliest expiring points (e.g. |
| string | Customer's first name (or "there" if not set) |
Gift Reminder
Each reminder includes a unique discount code, created on the first reminder and reused on follow-ups.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Customer's email
Property | Type | Description |
| string | Name of the gift recipient (e.g. "Mom") |
| string | How they're related (e.g. "Mother", "Friend") |
| string |
|
| string | Date in MM/DD format (e.g. "03/15") |
| number | Month as a number (1-12) |
| number | Day as a number (1-31) |
| number | How many days until the occasion (matches the reminder interval) |
| number | Which reminder this is (1, 2, or 3) based on the configured order |
| string | Unique discount code for this recipient |
| string | Customer's first name (or "there" if not set) |
| string | The store's public domain |
Birthday
Fired when a customer earns birthday points. Includes the points earned and updated balance so merchants can build birthday automations with reward information.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Customer's email
Property | Type | Description |
| string | Customer's first name (or "Valued Customer" if not set) |
| string | Name of the Shopify store |
| number | Number of birthday points awarded today |
| number | Customer's updated total point balance after the award |
Wishlist Reminder
A reminder to a customer about items still on their wishlist. Omnisend supports arrays and nested objects, so you can reference the full Items list in your automation.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire. Wishlist alert provider on the shop must also be set to Omnisend.
Contact: Customer's email
Property | Type | Description |
| string | Customer's first name (or "there" if not set) |
| string | Name of the Shopify store |
| string | The store's public domain |
| number | Number of items in this reminder |
| array | Array of item objects (shape below) |
Items element shape
Field | Type | Description |
| string | Shopify product ID |
| string | null | Display name of the product |
| number | null | Current price |
| number | null | Current stock quantity |
| string | null | Product brand |
| string | null | Product category |
| string | null | Shopify variant ID |
| string | null | Variant title (e.g. "Oat / Medium") |
| string | null | Variant SKU |
| string | null | Public product URL |
| string | null | Product image URL |
| string[] | Product tags as an array |
| string | Product tags as a comma-separated string |
| string | ISO timestamp when the item was added to the wishlist |
Wishlist Back in Stock
Same shape as Wishlist Reminder. Omnisend supports arrays and nested objects, so you can reference the full Items list in your automation.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire. Wishlist alert provider on the shop must also be set to Omnisend.
Contact: Customer's email
Property | Type | Description |
| string | Customer's first name (or "there" if not set) |
| string | Name of the Shopify store |
| string | The store's public domain |
| number | Number of items now back in stock |
| array | Array of item objects (same shape as Wishlist Reminder) |
Wishlist Price Drop
Fired when items on a customer's wishlist drop in price. Omnisend supports arrays and nested objects, so you can reference the full Items list in your automation.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire. Wishlist alert provider on the shop must also be set to Omnisend.
Contact: Customer's email
Property | Type | Description |
| string | Customer's first name (or "there" if not set) |
| string | Name of the Shopify store |
| string | The store's public domain |
| number | Number of items in this event (the items shown in this notification) |
| number | Total wishlisted items currently on sale (broader count for CTA copy) |
| number | Total Items On Sale minus Items Count. The "X others" number for subject copy |
| array | Array of item objects (shape below) |
Items element shape
Same fields as the Wishlist Reminder items, plus four price-drop-specific fields:
Field | Type | Description |
| number | Price before the drop |
| number | Price after the drop |
| number | Percentage drop (e.g. |
| number | null | Shopify compareAtPrice, if set |
Mage Welcome
Fired once when a customer creates an account, or a guest becomes a registered customer.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Customer's email
Property | Type | Description |
| number | Customer's current point balance |
Cashback Credited
Store-credit cashback awarded.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Customer's email
Property | Type | Description |
| number | Cashback value awarded |
| string | Cashback value formatted for display (e.g. "$5.50") |
| string | Currency code for the cashback amount |
| string | Name of the cashback offer |
| string | Shopify order number the cashback relates to |
| string | Always |
| string (optional) | ISO timestamp when the cashback expires, if applicable |
Photo Challenge Approved
Fired when you approve a photo challenge submission. Photo challenges send this event instead of Points Awarded.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Customer's email
Property | Type | Description |
| number | Number of points awarded for the challenge |
| string | Name of the photo challenge earning rule |
| string | Always |
| string | ISO timestamp when the customer submitted the photo |
| string | ISO timestamp when you approved it |
Photo Challenge Rejected
Fired when you reject a photo challenge submission. No points are involved.
This event is OFF by default. Merchants must enable it in Integrations > Omnisend before it will fire.
Contact: Customer's email
Property | Type | Description |
| string | Name of the photo challenge earning rule |
| string | Always |
| string | The reason you gave when rejecting the submission |
| string | ISO timestamp when the customer submitted the photo |
| string | ISO timestamp when you rejected it |
Store credit mode events
If your loyalty program runs on store credit instead of points, three events are replaced by store credit versions. They use the same on/off settings as the events they replace. Amounts come as a formatted string (e.g. $5.00) for messages and a plain number (e.g. 5) for filters and splits.
Store Credit Awarded (replaces Points Awarded)
Property | Type | Description |
| string | Store credit earned, formatted in your store currency |
| number | The same amount as a plain number |
| string | Name of the earning rule (or "Manual") |
| string | Status of the earning (e.g. |
| string (optional) | Shopify order number, if the credit was earned from a purchase |
| string (optional) | Name of the multiplier bonus campaign that boosted this order |
| number (optional) | The campaign multiplier |
| string (optional) | The extra credit the campaign added, formatted |
| number (optional) | The same amount as a plain number |
Store Credit Pending (replaces Points Pending)
Property | Type | Description |
| string | Store credit that will be added once approved, formatted |
| number | The same amount as a plain number |
| string | Name of the earning rule |
| string | Always |
| string (optional) | Shopify order number, if the credit was earned from a purchase |
Store Credit Expiry Soon (replaces Points Expiry Soon)
Property | Type | Description |
| string | Store credit expiring within the next 7 days, formatted |
| number | The same amount as a plain number |
| string | Customer's current store credit balance, formatted |
| number | The same amount as a plain number |
| number | Days until the earliest expiring credit |
| string | Customer's first name (or "there" if not set) |
Extra properties on other events
The other events keep their names and gain these store credit properties. Their points-named numbers (for example Points Spent) then hold the amount in cents, so use the store credit properties in your messages.
Property | Type | Description |
| string | Reward Redeemed: store credit spent, formatted |
| string | Reward Redeemed and Birthday: balance after the event, formatted |
| string | Photo Challenge Approved: store credit awarded, formatted |
| number | Photo Challenge Approved: the same amount as a plain number |
| string | Bonus Points Awarded: bonus store credit, formatted |
| number | Bonus Points Awarded: the same amount as a plain number |
| string | Birthday: birthday store credit, formatted |
| string | Mage Welcome: starting balance, formatted |
| number | Mage Welcome: the same amount as a plain number |
Contact Properties
In addition to events, Mage syncs the following properties to each Omnisend contact. Use them in segments, conditional splits and personalization in any workflow or campaign.
When they update. Mage updates a customer's properties whenever their points, tier or rewards change. A customer with no loyalty activity since you connected Omnisend will not have them yet.
Personalization tags. Omnisend stores these names without spaces, for example magePointsBalance for Mage Points Balance. Pick them from Personalization tag > Custom properties, or type the tag yourself, e.g. [[contact.custom_properties.magePointsBalance]].
Points mode
Property | Example Value | Description |
|
| Customer's current spendable points |
|
| Cash value of the customer's current points balance. Only synced when you have an active flexible reward. |
|
| Total points ever earned |
|
| Total points spent on rewards |
|
| Current VIP tier (e.g. Bronze, Silver, Gold) |
|
| The next VIP tier the customer has not reached yet. Empty when the customer is already in the highest tier. |
|
| How much more the customer needs in order to reach that next tier. Empty when the customer is already in the highest tier. If your tiers are spend based, the value is rounded to the nearest whole unit of your currency, e.g. 380 = $380. |
|
| Only synced when Advanced VIP Tier Criteria is set. The same countdown for your second tier requirement. |
|
| Only synced when you have a third tier requirement. The same countdown for that requirement. |
|
| Growth plan and above. Points still needed to unlock the cheapest reward the customer cannot yet afford. Empty when the customer can already redeem every reward. |
|
| Growth plan and above. Name of that next reward. Empty when the customer can already redeem every reward. |
|
| Growth plan and above. Points in the customer's next batch due to expire. Empty when nothing is due to expire. |
|
| Growth plan and above. When that batch expires |
|
| Customer's date of birth, if provided |
|
| When the customer joined the loyalty program |
|
| When Mage last updated this contact |
Store credit mode
If your loyalty program runs on store credit instead of points, the balance properties are replaced by the store credit set below. The VIP tier and date properties are the same in both modes.
Property | Example Value | Description |
|
| Customer's current store credit balance, formatted in your store currency |
|
| The same balance as a plain number, for filters and calculations |
|
| Total store credit ever earned |
|
| Total store credit spent |
|
| Current VIP tier (e.g. Bronze, Silver, Gold) |
|
| The next VIP tier the customer has not reached yet. Empty when the customer is already in the highest tier. |
|
| How much more the customer needs in order to reach that next tier. Empty when the customer is already in the highest tier. If your tiers are spend based, the value is rounded to the nearest whole unit of your currency, e.g. 380 = $380. |
|
| Only synced when Advanced VIP Tier Criteria is set. The same countdown for your second tier requirement. |
|
| Only synced when you have a third tier requirement. The same countdown for that requirement. |
|
| Growth plan and above. Store credit in the customer's next batch due to expire, formatted. Empty when nothing is due to expire. |
|
| Growth plan and above. The same amount as a plain number |
|
| Growth plan and above. When that batch expires |
|
| Customer's date of birth, if provided |
|
| When the customer joined the loyalty program |
|
| When Mage last updated this contact |
FAQ
Why don't some contacts have Mage properties yet?
Mage sends a customer's properties the next time their points, tier or rewards change. Customers with no loyalty activity since you connected Omnisend will not have them yet.
Why can't I find a Mage event in the automation trigger list?
Omnisend only lists a custom event after it has fired at least once. Turn the event on in Mage, then use Send Test Event on the Omnisend settings page to send it once.
What unit is "Mage Amount To Next Vip Tier" measured in?
Whatever your VIP tiers are based on: points, amount spent, or number of orders. A value of 380 means 380 more points if your tiers are points based, or 380 more in your store currency if they are spend based. If your program uses more than one tier requirement, the amount reflects your primary requirement.
Why are the next tier properties empty for some customers?
Either VIP tiers are not enabled on your loyalty program, or the customer is already in your highest tier. You can use that second case to target your top tier members with a segment where Mage Next Vip Tier Name has no value.
