A flow is an automation made of three parts. Once you understand them, you can build any automation the platform supports.
Anatomy of a flow
- Trigger β the event that starts the flow, e.g. Order paid. One trigger per flow.
- Conditions (optional) β filters that decide whether to continue, e.g. only Amazon orders.
- Actions β what the flow does: push to ShipStation, send a notification, add a tag, hold the order.
A worked example
on: order.paid # trigger
when: # conditions
channel: amazon
do: # actions
- shipstation.push
- notify.send:
to: fulfillment-team
When an order is paid, if it came from Amazon, push it to ShipStation and notify the fulfillment team.
The flow lifecycle: shadow β draft β active
| Status | What it does | Use it to |
|---|---|---|
| Shadow | Runs and logs what it would do, takes no real action | Safely validate logic against live events |
| Draft | Saved but not running | Park a work-in-progress |
| Active | Running for real | Go live |
π‘ Tip: Always run a new flow in shadow mode first. Check the run history to confirm it matches the orders you expect before flipping it to active.
Run history
Every time a flow fires it records a run β the triggering event, which conditions matched, each actionβs result, and any errors. When something misbehaves, the run history is where you diagnose it.
β οΈ Warning: Flows donβt silently swallow failures. If an action fails (e.g. ShipStation unreachable), the run is marked failed. Check run history regularly, or add a notification action so failures reach you.