Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.spotzee.com/llms.txt

Use this file to discover all available pages before exploring further.

Shopify data starts paying off the moment you build segments and journeys against it. The integration exposes 19 event types you can trigger journeys from, automatically calculates RFM segments and lifetime-value metrics on every customer, and makes Shopify properties available as Liquid variables in your templates.

The 19 Shopify events

Every Shopify event Spotzee fires can be the entry trigger on a journey. Six categories.

Customer events

EventFires when
shopify_customer_createdA new customer is created in Shopify
shopify_customer_updatedAn existing customer’s details change
shopify_customer_deletedA customer is deleted from Shopify

Order events

EventFires when
shopify_order_placedA new order is created
shopify_order_updatedAn order’s details change
shopify_order_paidPayment is received for an order
shopify_order_fulfilledAll items in an order are fulfilled
shopify_order_partially_fulfilledSome (not all) items are fulfilled
shopify_order_cancelledAn order is cancelled
shopify_order_refundedAn order is refunded
shopify_ordered_productFires once per line item in a new order. Useful for product-specific automations

Checkout events

EventFires when
shopify_checkout_startedA customer begins the checkout process
shopify_checkout_abandonedA checkout is left incomplete after 60 minutes of inactivity
EventFires when
shopify_email_consent_updatedA customer’s email marketing consent changes
shopify_sms_consent_updatedA customer’s SMS marketing consent changes

Fulfilment and shipping events

EventFires when
shopify_fulfillment_createdA new fulfilment record is created for an order
shopify_fulfillment_updatedAn existing fulfilment’s details change (tracking added, for example)
shopify_shipment_statusShipping status updates (in transit, delivered, etc.)

Product events

EventFires when
shopify_product_updatedA product’s details change in your catalogue

Build an abandoned cart recovery journey

The shopify_checkout_abandoned event is the foundation for cart recovery. Spotzee fires it 60 minutes after a checkout was started but not completed.
1

Create a journey

Open Journeys and create a new journey.
2

Set the entry trigger

Pick Event as the entrance mode and select shopify_checkout_abandoned as the event.
3

Add a wait step

Don’t email immediately. Add a delay step of 1-4 hours. Give the customer time to come back on their own.
4

Send the recovery email

Add an action step pointing at an email template. Include a reminder, a link back to their cart, and product details from the checkout payload.
5

Add a follow-up if you want one

Add another wait (24 hours) and a second action with a discount or free-shipping offer.
A common shape:
Entry: shopify_checkout_abandoned
  -> delay 2 hours
  -> action: "You left something behind"
  -> delay 24 hours
  -> action: "Still thinking? Here's 10% off"
Track conversion by watching for a shopify_order_placed event after the recovery emails fire.

Build post-purchase journeys

Order events power the full post-purchase lifecycle.

Order confirmation + cross-sell

Entry: shopify_order_placed
  -> action: "Thanks for your order #{{order_number}}"
  -> delay 3 days
  -> action: "You might also like..."
The shopify_order_placed event payload includes line items, totals, currency, and shipping address. All of it is available as Liquid variables in the email template.

Fulfilment notification

Entry: shopify_order_fulfilled
  -> action: "Your order has been shipped!"
For multi-shipment orders, shopify_order_partially_fulfilled fires when some items ship before the rest.

Delivery follow-up

Entry: shopify_shipment_status (filtered to delivered)
  -> delay 5 days
  -> action: "How's your purchase? Leave a review"
The shopify_shipment_status event fires whenever shipping status changes. Branch on the status field to send different messages for in_transit vs delivered.

Refund retention

Entry: shopify_order_refunded
  -> delay 1 day
  -> action: "We're sorry it didn't work out. Here's 15% off your next order"

Segment by purchase behaviour

Spotzee calculates and exposes three Shopify properties on every customer record:
PropertyWhat it carries
shopify_order_countTotal number of orders this customer has placed
shopify_total_spentTotal amount spent across all orders
shopify_rfm_segmentThe customer’s RFM bucket (see below)
You build segments using these properties just like any other user attribute.

RFM segments

RFM scoring looks at three dimensions:
  • Recency: how recently did they buy?
  • Frequency: how often do they buy?
  • Monetary: how much do they spend?
Each gets a score 1-5 (5 best). Combined scores land each customer in one of 11 segments:
SegmentMeaning
ChampionHigh recency, high frequency, high spend. Your best customers.
LoyalConsistently high purchase frequency.
Potential loyalistRecent buyers with moderate frequency. Worth nurturing.
New customerVery recent first-time buyers.
PromisingRecent purchases, good spend, low frequency so far.
Need attentionAverage across the board, starting to fade.
About to sleepBelow-average recency, but previously active.
Can’t loseWere champions but haven’t bought recently. High value drifting away.
At riskPreviously good customers with declining recency.
HibernatingLow recency and low frequency. Gone quiet.
LostLowest recency and frequency.
Segment with rules like:
  • High spenders: shopify_total_spent greater than 500.
  • Repeat buyers: shopify_order_count greater than 3.
  • Champions: shopify_rfm_segment equals champion.
  • Win-back targets: shopify_rfm_segment equals at_risk OR shopify_rfm_segment equals cant_lose.

Personalise with Shopify data

Shopify customer and order data lands directly in Liquid variables you can drop into any template field that supports Liquid (subject lines, bodies, push titles, webhook payloads, and so on).

User-property personalisation

Hi {{ user.first_name | default: "there" }}!

You've placed {{ user.shopify_order_count }} orders with us.
Total spend: {{ user.shopify_total_spent }}.

Event-data personalisation

When a journey fires off an event, the event’s payload is available too. For shopify_order_placed:
Order #{{ event.order_number }}
Total: {{ event.total_price }} {{ event.currency }}

Items:
{% for line_item in event.line_items %}
  - {{ line_item.title }} x {{ line_item.quantity }}
{% endfor %}
For shopify_shipment_status:
Your order #{{ event.order_number }} is now {{ event.status }}.
{% if event.tracking_number %}
Track it: {{ event.tracking_url }}
{% endif %}

RFM-based win-back

{% if user.shopify_rfm_segment == "at_risk" %}
We miss you, {{ user.first_name }}. Here's 20% off your next order.
{% elsif user.shopify_rfm_segment == "lost" %}
It's been a while. Come back and save 30%.
{% endif %}

Customer lists

When customers sync from Shopify, they land in a Spotzee customer list assigned in your sync settings. One list per store. The list:
  • Receives every customer pulled in during the initial sync.
  • Adds new customers as they appear via webhooks.
  • Works as a targeting option in campaigns and journeys (“send to everyone on the Store A list”).
See Sync settings for how to assign the list.

Next steps

What syncs from Shopify

The five categories that power events and properties.

Build templates

Liquid variables, locale variants, and per-channel template fields.

Build segments

The general segment-building reference for any user attribute.

Journeys

The journey step types and how they combine.