Journeys
Journeys are visual automations that run when something happens in Shopify. You design a graph, publish it, and TopEdge compiles the published graph into timed steps for each customer who enters.
A journey has one trigger, optional filters, and a graph of nodes. Publishing freezes both the graph and the trigger — editing a published journey changes nothing until you publish again. Each enrolled customer gets their own timeline of scheduled steps, and an inbound reply cancels the rest by default.
How a journey runs
Trigger types
| Trigger | Fires when |
|---|---|
| Order placed | An order is created in Shopify. This is also your order-confirmation trigger. |
| Order shipped | An order is fulfilled, or a fulfilment updates with a non-delivered status. |
| Order delivered | A fulfilment updates with a delivered shipment status. |
| Cart abandoned | A checkout is abandoned and the capture delay has elapsed. |
| Manual | Nothing automatic — you enrol customers yourself from a list. |
Exit conditions
Exit conditions cancel a customer’s remaining steps. Customer replies is available on every trigger and is on by default, which stops a customer who already answered from being chased. Order cancelled is available on order triggers.
Trigger filters
Filters decide who enters. Every active rule must be true — they combine with AND, never OR. An empty rule set matches everything, which is usually what you want on an order-confirmation journey.
| Filter | Values |
|---|---|
| Payment method | Any, COD, or prepaid. This is how you build a COD-only journey. |
| Order total | Minimum, maximum, or both, in rupees. |
| Products | Include or exclude specific Shopify products. |
| Customer type | Any, first order, or returning. |
| Order tags | Include or exclude by tag. |
| Shipping state or city | Indian states from a list, or a city as free text. |
| Discount code | Whether a specific code was used. |
| Filter | Values |
|---|---|
| Capture delay | How long after abandonment the customer enters — 25 minutes by default. |
| Minimum cart value | Skip low-value carts that are not worth a conversation fee. |
| Cart products | Only carts containing specific products. |
Node types
| Node | What it does | Needs |
|---|---|---|
| Entry | The root of every journey. Holds the trigger, its filters and exit conditions. Cannot be deleted. | — |
| Send WhatsApp | Sends an approved template with variables mapped from the order or cart. | An Approved template |
| Send Email | Sends an email from your connected mailbox, with subject and body. | Gmail connected |
| Order status | Sends the lifecycle template for a stage — confirmed, shipped, out for delivery or delivered. | An Approved Utility template |
| Cart recovery | A cart reminder with the live product image and a link back to checkout. Can also send a matching email. | An Approved template |
| COD → prepaid | Creates a Shopify draft invoice and injects the payment link into the message. | Growth plan or above |
| Wait | Delays the next sending node. Presets from 15 minutes to 7 days. | — |
| Conditional split | Two outputs, yes and no, based on a rule. Both branches must be wired before publish. | Growth plan or above |
| Connect to chatbot | Hands the customer to a published flow, using the latest published version at send time. | A live flow |
| End journey | Explicitly terminates a branch. | — |
How waits actually work
A wait node does not become a step of its own. Its delay is added to the next node that actually sends something. Two waits in a row therefore add up, and a wait at the very end of a branch does nothing at all.
Playbooks
Journeys ships pre-built playbooks so you are not starting from an empty canvas. Each comes with the right trigger and nodes already in place — you map your approved templates and publish.
| Playbook | Trigger | Plan |
|---|---|---|
| Order placed — confirmation | Order placed | Launch |
| Order shipped — tracking | Order shipped | Launch |
| Order delivered — review request | Order delivered | Launch |
| Cart recovery — 3 step | Cart abandoned | Launch |
| Quick 3-step follow-up | Manual | Launch |
| Cart recovery — smart (with branch) | Cart abandoned | Growth |
| COD confirm with branch | Order placed | Growth |
| COD → prepaid | Order placed | Growth |
Runtime limits worth knowing
- Two active sequences per customer
- A customer can be enrolled in at most two running automations at once. A third enrolment is skipped rather than queued, which stops a customer receiving four unrelated ladders at the same time.
- Reply cancels remaining steps
- On by default. A customer who answers your first message does not receive the rest of the ladder. You can turn it off on the entry node, but you usually should not.
- Revenue attribution: last touch, 7 days
- An order is credited to the most recent journey touch within the previous 168 hours. The customer does not need to click your link for it to count.
- Published journeys survive a downgrade
- Plan-gated nodes stop you creating or editing a journey, but an already-published one keeps running. You just cannot change it until you upgrade again.
- Scheduled steps need the background worker
- Delayed sends are dispatched by a background process on a short cycle, not by the web app. On production this is automatic.
Reading journey analytics
Each journey has a detail view with per-step counts — enrolled, sent, delivered, read, clicked — and attributed revenue. The canvas can also overlay those counts directly onto the nodes, which is the fastest way to find the step where customers drop out.
- Abandoned cart recovery — The cart journey, step by step.
- Order status updates — The lifecycle journeys.
- COD confirmation — Branching and the prepaid switch.
- Flow Builder — For inbound conversations instead.
Frequently asked questions
Why is my published journey not sending?
Check in this order: the journey is Published rather than Draft, the template it uses is Approved right now, trigger filters do not exclude the customer, and the customer has a phone number. The order detail page records a skip reason naming the exact cause.
Do trigger filters combine with AND or OR?
Always AND. Every active rule must be true for a customer to enter. This is why two reasonable-looking filters can exclude everybody — a minimum order value plus a specific product is a much narrower audience than it appears.
How is recovered revenue attributed to a journey?
Last touch within seven days. If a journey message was the most recent TopEdge touch before the order, that journey is credited. The customer does not have to click the link, which avoids under-counting people who get the reminder and then visit your site directly.
Updated 2026-10-04