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 September 15, 2026
Detailed reference of all events and properties Vendo can send to OneSignal. Vendo sends tag values and single event property values as strings. It sends lists, such as products, as structured data.
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
The values are the first-touch values that Vendo stored in the browser. Vendo writes these tags again at each checkout.
| 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 tags only identified users. You set up segment sync on the OneSignal Audiences tab of the Vendo Shopify app. Vendo updates enabled audiences every 15 minutes. Vendo tags only OneSignal users that already exist with a matching
external_id(your Customer Identification value). It skips anonymous push subscribers and customers who are not identified to OneSignal yet. Run the sync again after large customer-acquisition windows, so that new subscribers get their segment tags.