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.
| Segment | Filter criteria |
|---|---|
| VIP customers | total_spent (numeric) > 500 |
| Repeat buyers | order_count (numeric) > 1 |
| First-time buyers | order_count = 1 |
| Recent purchasers (30d) | last_order_date within the last 30 days |
| Lapsed customers | last_order_date older than 90 days |
| Newsletter subscribers | email_marketing_consent = subscribed |
| Tagged “VIP” in Shopify | customer_tags contains VIP |
| Paid-search shoppers | utm_source = google and utm_medium = cpc |
| Facebook-first shoppers | initial_utm_source = facebook |
| Members of a Shopify segment | shopify_segment_{id} = true |
Numeric tag filters:
total_spentandorder_countare 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.
| Variable | Source | Notes |
|---|---|---|
{{tag.first_name}} | User tag | Fall back with | default: 'there' for unidentified users. |
{{tag.email}} | User tag | |
{{tag.total_spent}} | User tag | String; use numeric comparators for segments. |
{{tag.last_order_date}} | User tag | ISO 8601 timestamp. |
{{order_id}} | Event property | Display order number on order_received / order_fulfilled / order_delivered / refunds. |
{{cart_total_amount}} | Event property | Available on order and checkout events. |
{{currency}} | Event property | ISO currency code (e.g. USD). |
{{checkout_url}} | Event property | Only on cart_abandoned. Pair with Launch URL. |
{{tracking_number}} | Event property | order_fulfilled only, if the fulfilment has tracking. |
{{product_count}} | Event property | On order and checkout events. |
Testing before you launch
- Send a test push to yourself from the Journey editor before activating it.
- For event-triggered Journeys, use OneSignal’s “Message preview with event” option and paste a sample payload from the Events & Properties reference.
- 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.
- Check that user tags resolve as expected — if
{{tag.first_name}}is blank, the user probably wasn’t identified before the event fired.
Related
- Events & Properties — every event and tag Vendo sends
- How It Works — when and how users get identified
- Web Push Setup — OneSignal dashboard configuration