Skip to Content
DestinationsOneSignalPush Notification Examples

Push Notification Examples

Ready-to-run OneSignal campaigns that use the events and user tags Vendo sends from Shopify. Each recipe references the trigger event or tag — see the Events & Properties reference for the full payload.

Personalization syntax: Inside a OneSignal Journey, reference event properties with double braces (e.g. {{order_id}} for a Journey triggered by an event) and user tags with {{tag.first_name}}. Always set a sensible default for tags that may be missing.

Recovery campaigns

Abandoned checkout recovery

Bring shoppers back to a checkout they started but didn’t complete. Vendo’s pipeline sends cart_abandoned once Shopify marks the checkout as abandoned (roughly one hour after the last activity). The payload includes the recoverable Shopify checkout URL.

Trigger: cart_abandoned (Journey) Timing: send immediately on event, then optionally 24h and 72h follow-ups.

Title: You left something behind, {{tag.first_name | default: 'there'}} Body: {{product_count}} item(s) worth {{currency}} {{cart_total_amount}} are still in your cart. Launch URL: {{checkout_url}}

Browse abandonment

Nudge identified shoppers who viewed a product but didn’t add it to cart. Requires the shopper to be identified (push subscriber, logged-in customer, or newsletter signup) so OneSignal can target them.

Trigger: product_viewed (Journey) + wait step + exit condition on product_added_to_cart.

Title: Still thinking it over? Body: Take another look at {{product_title}} — {{currency}} {{product_price}}. Launch URL: {{url}}

Post-add-to-cart nudge

For shoppers who add to cart but don’t start checkout within a short window.

Trigger: product_added_to_cart (Journey) + wait 30 min + exit on checkout_started.

Title: Ready to check out? Body: Your {{product_title}} is waiting. Complete the order before it sells out.

Transactional updates

Order confirmation

Confirm the purchase within seconds of it landing in Shopify.

Trigger: order_received

Title: Thanks for your order, {{tag.first_name | default: 'customer'}}! Body: Order #{{order_id}} totalling {{currency}} {{cart_total_amount}} is confirmed. We'll let you know when it ships.

Shipped

Tracking-number-aware shipped notification.

Trigger: order_fulfilled

Title: Your order is on the way Body: Order #{{order_id}} just shipped. Tracking: {{tracking_number}}.

Delivered

A friendly delivery confirmation — useful for driving review requests or repeat-purchase flows afterwards.

Trigger: order_delivered

Title: Your order has arrived Body: Order #{{order_id}} was delivered today. Hope you love it — tap to leave a review.

Refund issued

Keep customers informed when money is returned to their card.

Trigger: order_refunded or order_partially_refunded

Title: Your refund is on its way Body: We've refunded {{currency}} {{refund_amount}} for order #{{order_id}}. It may take 5–10 business days to appear.

Lifecycle & re-engagement

Welcome the new subscriber

Fires the moment someone opts in to web push — subscribers come through OneSignal’s own subscription event (no Vendo event required), but you can enrich the message with any tags Vendo has already synced for that user.

Trigger: OneSignal built-in “Subscribed to Push” event.

Title: Welcome to {{tag.first_name | default: 'the club'}} 🎉 Body: Thanks for subscribing. Tap to browse what's new.

First-order thank-you

Target the customer’s first purchase specifically (not every order).

Trigger: order_received with Journey filter tag.order_count = "1".

Title: Welcome to the family, {{tag.first_name | default: 'there'}}! Body: Your first order is confirmed — use code WELCOME10 for 10% off next time.

Win-back lapsed customers

Re-engage customers whose last purchase was more than 90 days ago.

Trigger: scheduled Journey with segment filter tag.last_order_date older than 90 days.

Title: We've missed you, {{tag.first_name | default: 'there'}} Body: Here's 15% off to welcome you back. Tap to shop what's new.

Segmentation recipes

OneSignal segments let you target users by the tags Vendo syncs. Build these once, then reuse them as Journey filters or broadcast audiences.

SegmentFilter criteria
VIP customerstotal_spent (numeric) > 500
Repeat buyersorder_count (numeric) > 1
First-time buyersorder_count = 1
Recent purchasers (30d)last_order_date within the last 30 days
Lapsed customerslast_order_date older than 90 days
Newsletter subscribersemail_marketing_consent = subscribed
Tagged “VIP” in Shopifycustomer_tags contains VIP
Paid-search shoppersutm_source = google and utm_medium = cpc
Facebook-first shoppersinitial_utm_source = facebook
Members of a Shopify segmentshopify_segment_{id} = true

Numeric tag filters: total_spent and order_count are strings in OneSignal, but OneSignal parses them as numbers when you pick the “Numeric” comparison operator. Always use the numeric comparator for amounts and counts.

Personalization cheat sheet

Variables you can drop into any OneSignal message. User-tag values work across all channels; event-property values only resolve inside a Journey triggered by that event.

VariableSourceNotes
{{tag.first_name}}User tagFall back with | default: 'there' for unidentified users.
{{tag.email}}User tag
{{tag.total_spent}}User tagString; use numeric comparators for segments.
{{tag.last_order_date}}User tagISO 8601 timestamp.
{{order_id}}Event propertyDisplay order number on order_received / order_fulfilled / order_delivered / refunds.
{{cart_total_amount}}Event propertyAvailable on order and checkout events.
{{currency}}Event propertyISO currency code (e.g. USD).
{{checkout_url}}Event propertyOnly on cart_abandoned. Pair with Launch URL.
{{tracking_number}}Event propertyorder_fulfilled only, if the fulfilment has tracking.
{{product_count}}Event propertyOn order and checkout events.

Testing before you launch

  1. Send a test push to yourself from the Journey editor before activating it.
  2. For event-triggered Journeys, use OneSignal’s “Message preview with event” option and paste a sample payload from the Events & Properties reference.
  3. Trigger a real event end-to-end (e.g. place a test order, abandon a checkout) and confirm the Journey fires in OneSignal’s Delivery tab.
  4. Check that user tags resolve as expected — if {{tag.first_name}} is blank, the user probably wasn’t identified before the event fired.
Last updated on