Attentive Events
Each event can be toggled on/off per-shop in Settings > Integrations > Attentive.
Points Awarded
Fired when points are actually awarded to the customer's balance — either immediately (for instant-approval rules like signup, social follow, birthday) or later when the approval cron runs (for rules with a waiting period like purchases, once the refund window has passed).
This event is not fired for pending points; use the Points Pending event for that.
User: Customer's email
Property | Type | Description |
| number | Number of points earned |
| string | Name of the earning rule (or "Manual") |
| string | Always |
| string (optional) | Shopify order number, if points were earned from a purchase |
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 approval cron later awards these points, a separate Points Awarded event will fire.
Use this event to build "points on the way" journeys that let customers know a reward is coming.
This event is OFF by default. Merchants must enable it in Settings > Integrations > Attentive before it will fire.
User: 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 |
Reward Redeemed
Fired when a customer redeems their points for a reward or discount.
User: 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 | Customer's points balance after redemption |
VIP Tier Changed
Fired when a customer moves up or down VIP tiers based on their lifetime points. Only fires if VIP tiers are enabled on the shop.
User: 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.
User: 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.
User: 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.
User: 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 — multiple earning rules expiring on different days are aggregated into a single event to prevent duplicate notifications.
This event is OFF by default. Merchants must enable it in Settings > Integrations > Attentive before it will fire.
User: 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) |
Suggested journey setup
In Attentive, go to Journeys > Create Journey
Set the trigger to Custom Event > Points Expiry Soon
Add an SMS or Email action with your expiry reminder template
Use the event properties as merge tags in your message:
{{ event.Points Expiring }}— the number of points about to expire{{ event.Current Points }}— the customer's total balance{{ event.Days Until Expiry }}— urgency indicator for the body{{ event.Customer Name }}— personalization
Example SMS
{{ event.Customer Name }}, your {{ event.Points Expiring }} points expire in {{ event.Days Until Expiry }} days. Use them before they're gone!
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 Settings > Integrations > Attentive before it will fire.
User: 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 |
Suggested journey setup
In Attentive, go to Journeys > Create Journey
Set the trigger to Custom Event > Gift Reminder
Design your message using the event properties above:
{{ event.Recipient Name }}— who the gift is for{{ event.Relationship }}— how they're related{{ event.Occasion Type }}— what the occasion is{{ event.Days Until Occasion }}— urgency indicator{{ event.Discount Code }}— the unique discount code to include{{ event.Customer Name }}— personalization
Optionally use Conditional Splits on
Reminder Numberto vary messaging:Reminder 1 (30 days): gentle heads-up
Reminder 2 (14 days): friendly nudge
Reminder 3 (7 days): urgency-driven
Example SMS
{{ event.Customer Name }}, {{ event.Recipient Name }}'s {{ event.Occasion Type }} is in {{ event.Days Until Occasion }} days. Use code {{ event.Discount Code }} to shop early.
Birthday
Fired when a customer earns birthday points. Includes the points earned and updated balance so merchants can build birthday journeys with reward information.
This event is OFF by default. Merchants must enable it in Settings > Integrations > Attentive before it will fire.
User: 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 |
Suggested journey setup
In Attentive, go to Journeys > Create Journey
Set the trigger to Custom Event > Birthday
Design your message using the event properties above:
{{ event.Customer Name }}— personalization{{ event.Points Earned }}— highlight the birthday reward{{ event.Current Points }}— encourage redemption
Optionally add a Time Delay (e.g. 3 days) then a follow-up message encouraging them to spend their birthday points
Example SMS
Happy Birthday {{ event.Customer Name }}! You just earned {{ event.Points Earned }} points to spend.
Wishlist Reminder
This event is email-first. The full Items array is sent so email journeys can iterate over it and render a product carousel. SMS journeys cannot iterate over arrays — for SMS, personalize on the scalar fields (Customer Name, Shop Name, Items Count).
This event is OFF by default. Merchants must enable it in Settings > Integrations > Attentive before it will fire. Wishlist alert provider on the shop must also be set to Attentive.
User: 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). Email-only. |
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 (auto-shortened by Attentive) |
| 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
This event is email-first. Same shape and constraints as Wishlist Reminder.
This event is OFF by default. Merchants must enable it in Settings > Integrations > Attentive before it will fire. Wishlist alert provider on the shop must also be set to Attentive.
User: 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). Email-only. |
Wishlist Price Drop
This event is OFF by default. Merchants must enable it in Settings > Integrations > Attentive before it will fire. Wishlist alert provider on the shop must also be set to Attentive.
User: 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 |
|
| array | Array of item objects (shape below). Email-only. |
| string | Name of the lead item. SMS-friendly. |
| string | URL of the lead item. SMS-friendly. Auto-shortened by Attentive. |
| string | Image URL of the lead item. |
| number | Current price of the lead item. |
| number | Price before the drop. |
| number | Price after the drop. SMS-friendly. |
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 |
Suggested SMS setup
In Attentive, go to Journeys > Create Journey
Set the trigger to Custom Event > Wishlist Price Drop
Add an SMS action using the flattened fields:
{{ event.First Product Name }}— what dropped{{ event.First Product Old Price }}and{{ event.First Product New Price }}— "was/now" copy{{ event.First Product URL }}— auto-shortened link{{ event.Additional Items Count }}— for "and X other wishlisted items on sale"
Example SMS
{{ event.First Product Name }} is now {{ event.First Product New Price }} (was {{ event.First Product Old Price }}). Shop yours: {{ event.First Product URL }}
Customer Properties
In addition to events, Mage syncs the following properties to each Attentive subscriber. These can be used in segments, conditional splits, and message personalization across any journey or campaign.
Property | Example Value | Description |
|
| Customer's current spendable points |
|
| Total points ever earned |
|
| Total points spent on rewards |
|
| Current VIP tier (e.g. Bronze, Silver, Gold) |
|
| Customer's date of birth, if provided |
|
| When the customer joined the loyalty program |
|
| When Mage last pushed an update to Attentive |
