Events
Postscript is an SMS platform. These events only trigger automations for customers who are SMS subscribers, matched by their Shopify Customer ID. If a customer has not opted in to SMS, the event still fires but no message is sent.
Points Awarded
Fired when a customer earns points through purchases, actions, or other earning rules.
Subscriber: Matched by Shopify Customer ID (fallback: 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 |
A note on property keys. Every event property key uses hyphens instead of spaces (for example Reward-Name), because Postscript SMS merge tags cannot reference keys that contain spaces. Reference any property in a template with its key, such as {{ Reward-Name }}.
Points Pending
Fired when points are recorded in a pending state. The points are awarded later, once the refund or approval window has passed.
This event is OFF by default. Merchants must enable it in Settings > Integrations > Postscript before it will fire.
Subscriber: Matched by Shopify Customer ID (fallback: email)
Property | Type | Description |
| number | Points that will be awarded once approved |
| string | Name of the earning rule (or "Manual") |
| string | Status of the earning ( |
| string (optional) | Shopify order number, if points were earned from a purchase |
Points Pending mirrors Points Awarded and uses the same keys, referenced with merge tags such as {{ Points-Awarded }}.
Bonus Points Awarded
Fired when a customer earns flat bonus points from a tiered bonus campaign. This is a separate award from the standard points earned on the order.
This event is OFF by default. Merchants must enable it in Settings > Integrations > Postscript before it will fire.
Subscriber: Matched by Shopify Customer ID (fallback: email)
Property | Type | Description |
| number | Number of bonus points awarded |
| string | Name of the bonus campaign |
| number | Amount the customer spent that qualified for the bonus |
| number | Spend threshold the customer reached to earn the bonus |
| string | Status of the earning (e.g. |
| string (optional) | Shopify order number |
Reference a property in an SMS template with its key, for example {{ Bonus-Points }}.
Reward Redeemed
Fired when a customer redeems their points for a reward or discount.
Subscriber: Matched by Shopify Customer ID (fallback: email)
Property | Type | Description |
| string | Name of the reward redeemed |
| number | Number of points spent (0 if null) |
| string | Type of discount (e.g. |
VIP Tier Changed
Fired when a customer moves up or down VIP tiers based on their lifetime points.
Subscriber: Matched by Shopify Customer ID (fallback: 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 Settings > Integrations > Postscript before it will fire.
Subscriber: The advocate, matched by Shopify Customer ID (fallback: email)
Property | Type | Description |
| string | Email address the invite was sent to |
| string | Name of the referral campaign |
| string | Name of the advocate who sent the invite |
| string | The advocate's shareable referral link |
| string | Store name |
| string | Store domain |
| string | Always |
The email subject and personal message are intentionally omitted, because long free text is not useful as an SMS merge tag. Reference a property with its key, for example {{ Referral-URL }}.
Referral Claimed
Fired when a friend claims their referral discount code.
This event is OFF by default. Merchants must enable it in Settings > Integrations > Postscript before it will fire.
Subscriber: The friend, matched by Shopify Customer ID (fallback: email)
Property | Type | Description |
| string | Discount code issued to the friend |
| string | Type of discount (e.g. |
| number | Discount value (0 if not set) |
| string | Name of the referral campaign |
| string | Name of the reward |
| string (optional) | Advocate's email, if known |
| string (optional) | Advocate's name, if known |
| string | Store name |
| string | Store domain |
Reference a property with its key, for example {{ Discount-Code }}.
Referral Reward Earned
Fired when an advocate earns their reward after their friend completes a qualifying purchase.
This event is OFF by default. Merchants must enable it in Settings > Integrations > Postscript before it will fire.
Subscriber: The advocate, matched by Shopify Customer ID (fallback: email)
Property | Type | Description |
| string | Email of the friend whose purchase triggered the reward |
| string | Reward code issued to the advocate |
| string | Type of discount (e.g. |
| number | Discount value (0 if not set) |
| string | Name of the reward |
| string | Name of the referral campaign |
| string | Store name |
| string | Store domain |
Reference a property with its key, for example {{ Discount-Code }}.
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 > Postscript before it will fire.
Subscriber: Matched by Shopify Customer ID (fallback: 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 automation setup
In Postscript, go to Automations > Create Automation
Set the trigger to the Points_Expiry_Soon event
Add a Send SMS action with your expiry reminder message
Use the event properties above to personalize the message
Example SMS
Hey {{ Customer-Name }}, you have {{ Points-Expiring }} points expiring in {{ Days-Until-Expiry }} days! Shop now to use them before they're gone.
Gift Reminder
Fired by the daily gift reminders cron for each upcoming occasion a customer has saved.
This event is OFF by default. Merchants must enable it in Settings > Integrations > Postscript before it will fire.
Subscriber: Matched by Shopify Customer ID (fallback: email)
Property | Type | Description |
| string | Name of the gift recipient |
| string | Relationship to the recipient (e.g. Partner, Friend) |
| string | Type of occasion (e.g. Birthday, Anniversary) |
| string | Occasion date in |
| number | Days remaining until the occasion |
| number | Which reminder in the sequence this is (e.g. |
| string | Customer's first name |
| string | Store domain |
| string (optional) | Discount code created for this reminder, if any |
Reference a property with its key, for example {{ Recipient-Name }}.
Birthday
Fired by the daily birthday cron when a customer earns their birthday points.
This event is OFF by default. Merchants must enable it in Settings > Integrations > Postscript before it will fire.
Subscriber: Matched by Shopify Customer ID (fallback: email)
Property | Type | Description |
| string | Customer's first name |
| string | Store name |
| number | Birthday points awarded |
| number | Customer's point balance after the award |
Reference a property with its key, for example {{ Points-Earned }}.
Cashback Credited
Store-credit cashback awarded.
This event is OFF by default. Merchants must enable it in Settings > Integrations > Postscript before it will fire.
Subscriber: Matched by Shopify Customer ID (fallback: email)
Property | Type | Description |
| number | Cashback value in the store's currency |
| string | Formatted cashback amount (e.g. |
| string | ISO currency code (e.g. |
| string | Name of the cashback offer |
| string | Shopify order number |
| string | Always |
| string (optional) | ISO timestamp when the cashback expires, if set |
Reference a property with its key, for example {{ Cashback-Amount-Formatted }}.
Cashback Code Issued
Cashback issued as a single-use discount code, including a reissue after a partial refund (a new code with a reduced amount).
This event is OFF by default. Merchants must enable it in Settings > Integrations > Postscript before it will fire.
Subscriber: Matched by Shopify Customer ID (fallback: email)
Property | Type | Description |
| number | Cashback value in the store's currency |
| string | Formatted cashback amount (e.g. |
| string | ISO currency code (e.g. |
| string | Name of the cashback offer |
| string | Shopify order number |
| string | Always |
| string | Single-use cashback discount code |
| string (optional) | ISO timestamp when the cashback expires, if set |
Reference a property with its key, for example {{ Discount-Code }}.
Subscriber Properties
In addition to events, Mage syncs the following properties to each Postscript subscriber. These can be used in segments and SMS personalization.
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 |
|
| Cash value of the current points balance, based on your flexible reward's conversion rate. Only synced when an active flexible reward exists. |
