OneSignal Events and Properties
Reference the client-side and server-side Shopify events, customer tags, and property values Vendo can send to OneSignal.
Last reviewed July 13, 2026
Detailed reference of all events and properties Vendo can send to OneSignal. All property values are stored as strings since OneSignal does not support numeric types natively.
Events
| Event | Description | Source |
|---|---|---|
page_viewed | Customer visits a page across storefront, checkout, or order status | web |
product_viewed | Customer views a product details page | web |
collection_viewed | Customer views a product collection page | web |
search_submitted | Customer performs a storefront search | web |
product_added_to_cart | Product is added to cart | web |
product_removed_from_cart | Product is removed from cart | web |
cart_viewed | Customer views the cart page | web |
checkout_started | Customer starts checkout | web |
checkout_contact_info_submitted | Contact info step submitted | web |
checkout_address_info_submitted | Address info step submitted | web |
checkout_shipping_info_submitted | Shipping method selected | web |
payment_info_submitted | Payment details submitted | web |
checkout_completed | Checkout completed successfully | web |
alert_displayed | Checkout alert or warning displayed | web |
ui_extension_errored | Checkout UI extension runtime error | web |
all_custom_events | Custom Shopify customer events | web |
order_received | Triggered when a new order is created | server-side |
order_fulfilled | Triggered when an order is fulfilled | server-side |
order_delivered | Triggered when an order is delivered | server-side |
order_refunded | Triggered when an order is fully refunded | server-side |
order_partially_refunded | Triggered when an order is partially refunded | server-side |
cart_abandoned | Triggered when a checkout is abandoned | server-side |
Note: Client-side events are only sent after a user is identified (via push subscription, newsletter signup, login, or checkout). Anonymous visitors are not tracked in OneSignal.
OneSignal User Tags
All tag values are stored as strings. Client-side tags are set at checkout_completed (via the web pixel’s people.set / people.set_once compatibility layer, which PATCHes the OneSignal user’s properties.tags). Server-side tags are written by the Vendo pipeline from BigQuery customer records.
Identity & profile
| Tag | Type | Description | Source |
|---|---|---|---|
email | String | Customer email | web, server-side |
first_name | String | Customer first name | web, server-side |
last_name | String | Customer last name | web, server-side |
phone | String | Customer phone number | web |
shopify_customer_id | String | Shopify customer ID | web |
verified_email | String | Whether the customer’s email is verified (true/false) | server-side |
tax_exempt | String | Whether the customer is tax-exempt (true/false) | server-side |
customer_tags | String | Comma-separated Shopify customer tags | server-side |
customer_created_at | String | ISO timestamp when the Shopify customer was created | server-side |
first_seen | String | ISO timestamp of the first identification event | web |
Marketing consent
| Tag | Type | Description | Source |
|---|---|---|---|
marketing_state | String | Overall marketing consent state | server-side |
email_marketing_consent | String | Email marketing consent state | server-side |
Commerce stats
| Tag | Type | Description | Source |
|---|---|---|---|
total_spent | String | Lifetime spend | server-side |
order_count | String | Total orders | server-side |
first_order_date | String | ISO timestamp of the customer’s first order | server-side |
last_order_date | String | ISO timestamp of the customer’s most recent order | server-side |
Last-touch attribution
Captured at checkout_completed and overwritten on each checkout.
| Tag | Type | Description | Source |
|---|---|---|---|
utm_source | String | Last UTM source | web |
utm_medium | String | Last UTM medium | web |
utm_campaign | String | Last UTM campaign | web |
utm_content | String | Last UTM content | web |
utm_term | String | Last UTM term | web |
gclid | String | Google Ads click ID | web |
msclkid | String | Microsoft Ads click ID | web |
fbclid | String | Meta (Facebook/Instagram) click ID | web |
ttclid | String | TikTok click ID | web |
twclid | String | X (Twitter) click ID | web |
sccid | String | Snapchat click ID | web |
dclid | String | Google DoubleClick display click ID | web |
ko_click_id | String | Kakao click ID | web |
li_fat_id | String | LinkedIn first-party ad-tracking ID | web |
wbraid | String | Google Ads web-to-app click ID | web |
First-touch attribution (set once)
Written only if the tag is not already present on the OneSignal user.
| Tag | Type | Description | Source |
|---|---|---|---|
initial_utm_source | String | First-touch UTM source | web |
initial_utm_medium | String | First-touch UTM medium | web |
initial_utm_campaign | String | First-touch UTM campaign | web |
initial_utm_content | String | First-touch UTM content | web |
initial_utm_term | String | First-touch UTM term | web |
Segment membership
| Tag | Type | Description | Source |
|---|---|---|---|
shopify_segment_{segment_id} | String | Membership flag ("true") for each synced Shopify segment. One tag per segment. The {segment_id} is the numeric ID from Shopify’s segment GID. | server-side |
Segment sync is manual and tags only identified users. The sync runs when you click Sync on the Segments tab in the Vendo Shopify app — it is not yet on an automatic schedule. Only OneSignal users who already exist with a matching
external_id(email) get tagged; anonymous push subscribers and customers who haven’t been identified to OneSignal are skipped. Re-run the sync after large customer-acquisition windows so new subscribers pick up their segment tags.