Shopify
Turn store activity into messaging: abandoned-cart journeys, order confirmations on the customer's preferred channel, win-back campaigns keyed on purchase history.
Setup
- In your Shopify admin, create a custom app (Settings → Apps and sales channels → Develop apps) and note the webhook signing secret from its API credentials.
- In Hober, open Settings → Integrations → Shopify → Connect and paste the signing secret and your shop domain.
- In the custom app, subscribe webhooks pointing at
https://api.hober.io/v1/integrations/shopify/inbound/<your tenant id>for the topics you need:orders/create,orders/fulfilledcheckouts/create,checkouts/updatecustomers/create,customers/update
Every delivery is verified against the signing secret (HMAC-SHA256); unsigned or mis-signed requests are rejected.
Mapping
| Shopify topic | Hober |
|---|---|
orders/create | order_placed event |
orders/fulfilled | order_fulfilled event |
checkouts/create / checkouts/update | One checkout_started event per checkout — Shopify's repeated update webhooks collapse instead of re-triggering journeys |
customers/create / customers/update | Subscriber upsert (email, first/last name as attributes) |
Customers become subscribers with external id shopify:<customer id> and are refreshed before every order/checkout event, so journeys always see current attributes. Guest checkouts still produce events (without an actor). Totals, currency, and line items land as event properties — {{ event.line_items }} works in Liquid templates for cart-contents messages.
The abandoned-cart journey
Trigger a journey on checkout_started, add a wait-for-event step on order_placed with your chosen window (say 45 minutes), and branch: converted → stop; didn't → send the reminder with the cart contents. The checkout-collapse behavior above means one checkout equals one journey entry.