The Omnisend integration keeps your contact records in sync with loyalty data through custom properties (always-on profile data) and custom events (fired when specific actions happen). Both can be used in Omnisend automation workflows to send targeted, personalised emails based on loyalty activity.
Custom Properties
Custom properties are stored on the Omnisend contact record and updated automatically when the corresponding data changes. Omnisend creates custom properties automatically the first time a value is sent, so no manual setup is required.
| Property | Type | When Updated | Description |
|---|---|---|---|
loyaltyPointsBalance | Integer | Every points transaction | The customer’s current points balance. |
loyaltyPointsLastUpdated | ISO 8601 datetime | Every points transaction | Timestamp of the most recent points change. |
loyaltyBirthday | Date (YYYY-MM-DD) | When customer saves their birthday | The customer’s birthday. Use as the trigger date for an Omnisend date-based automation. |
Custom Events
Custom events are sent to the Omnisend Events API and can be used as triggers in automation workflows.
Points Updated
Fired on every points transaction: earning, spending, expiring, and manual adjustments.
| Field | Type | Description |
|---|---|---|
delta | Integer | Points change. Positive for earned, negative for spent or expired. |
balance_after | Integer | Points balance after the transaction. |
reason_title | String | Human-readable reason for the change. See the full list below. |
source | String | Machine-readable source type. |
awarded_at | ISO 8601 datetime | Timestamp of the transaction. |
All possible reason_title values:
| reason_title | When it fires |
|---|---|
| Order purchase | Customer earns points for placing an order. |
| Order discount | Customer redeems points for a discount on an order. |
| Order cancelled | Points are reversed when an order is cancelled. |
| Order refunded | Points are reversed when an order is refunded. |
| Product review | Customer earns points for leaving a product review. |
| Friend referral | Customer earns points for referring a friend. |
| Manual adjustment | An admin manually adds or removes points. |
| Registration bonus | Customer earns points for creating an account. |
| Birthday bonus | Points awarded on the customer’s birthday. |
| Imported points | Points added via CSV import. |
| Points expired | Points removed due to inactivity expiry. |
Rank Achieved
Fired when a customer reaches a new rank tier.
| Field | Type | Description |
|---|---|---|
rank_id | Integer | ID of the new rank. |
rank_name | String | Display name of the new rank. |
rank_milestone | Integer | Points threshold for the new rank. |
previous_rank_name | String | Name of the previous rank. Not present on first rank. |
achieved_at | ISO 8601 datetime | Timestamp when the rank was achieved. |
coupon_code | String | The coupon code issued as a rank reward. Only present when a coupon is configured for this rank. |
coupon_codes | Array | All coupon codes issued when the rank has multiple rewards configured. Only present when more than one coupon is issued. |
Using Events in Omnisend Automations
In Omnisend, go to Automation and create a new workflow. Choose Custom event as the trigger and enter the event name (Points Updated or Rank Achieved). You can add conditional splits based on event fields to route customers into different branches. For example, filter on reason_title = Order purchase to send a points earned notification after every purchase, or reason_title = Points expired to send a re-engagement campaign when points expire.
For birthday emails, use a date-based trigger on the loyaltyBirthday custom property instead of relying on the event stream. This ensures the email fires annually on the stored birthday date.