TopEdge Docs

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

From Shopify event to sent message When a send does not happen, the skip reason on the order names which stage stopped it.

Trigger types

TriggerFires when
Order placedAn order is created in Shopify. This is also your order-confirmation trigger.
Order shippedAn order is fulfilled, or a fulfilment updates with a non-delivered status.
Order deliveredA fulfilment updates with a delivered shipment status.
Cart abandonedA checkout is abandoned and the capture delay has elapsed.
ManualNothing 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.

FilterValues
Payment methodAny, COD, or prepaid. This is how you build a COD-only journey.
Order totalMinimum, maximum, or both, in rupees.
ProductsInclude or exclude specific Shopify products.
Customer typeAny, first order, or returning.
Order tagsInclude or exclude by tag.
Shipping state or cityIndian states from a list, or a city as free text.
Discount codeWhether a specific code was used.
FilterValues
Capture delayHow long after abandonment the customer enters — 25 minutes by default.
Minimum cart valueSkip low-value carts that are not worth a conversation fee.
Cart productsOnly carts containing specific products.

Node types

NodeWhat it doesNeeds
EntryThe root of every journey. Holds the trigger, its filters and exit conditions. Cannot be deleted.—
Send WhatsAppSends an approved template with variables mapped from the order or cart.An Approved template
Send EmailSends an email from your connected mailbox, with subject and body.Gmail connected
Order statusSends the lifecycle template for a stage — confirmed, shipped, out for delivery or delivered.An Approved Utility template
Cart recoveryA cart reminder with the live product image and a link back to checkout. Can also send a matching email.An Approved template
COD → prepaidCreates a Shopify draft invoice and injects the payment link into the message.Growth plan or above
WaitDelays the next sending node. Presets from 15 minutes to 7 days.—
Conditional splitTwo outputs, yes and no, based on a rule. Both branches must be wired before publish.Growth plan or above
Connect to chatbotHands the customer to a published flow, using the latest published version at send time.A live flow
End journeyExplicitly 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.

PlaybookTriggerPlan
Order placed — confirmationOrder placedLaunch
Order shipped — trackingOrder shippedLaunch
Order delivered — review requestOrder deliveredLaunch
Cart recovery — 3 stepCart abandonedLaunch
Quick 3-step follow-upManualLaunch
Cart recovery — smart (with branch)Cart abandonedGrowth
COD confirm with branchOrder placedGrowth
COD → prepaidOrder placedGrowth

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.

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