Shopify Flow: When It's the Right Answer for Your Store (and When It Isn't)
Shopify Flow is the built-in automation tool, and it's good enough that a lot of store owners reach for it first. Sometimes that's exactly right. Other times it turns into a pile of workflows nobody wants to maintain, doing a job that needed a different tool. This is how I think about when Flow is the right answer, and how adding triggers from the apps you already use makes it more useful.
What Flow is good at
Flow works in three parts: a trigger (something happens), optional conditions (only if it matches), and actions (do something). That shape fits a certain kind of job very well:
- Something happens in your store, and you want a person or a system notified.
- A rule applies automatically to every matching event, such as tagging, flagging, or routing.
- The logic is a short chain, a couple of conditions at most.
If you can describe the whole job as "when X, if Y, do Z," Flow is almost always the right tool.
Where Flow runs out
Flow gets awkward when the job isn't really an event:
- It needs a person to decide something. Flow can notify someone, but it isn't a place to review, edit, or approve work step by step.
- It needs memory. Tracking where something is in a multi-stage process is state, and state is better kept in a tool built for it.
- The event doesn't exist. Flow can only react to what it's told about. If what you care about happens on your warehouse floor, Shopify doesn't know it happened.
That last one is the most common wall, and it's the one with a clean fix.
Apps can add the triggers Flow is missing
Apps can publish their own Flow triggers, which means an event from outside Shopify's core data can start a workflow. Pickadoodl adds three, all from the fulfillment floor:
- Batch ready to pack — a batch finished picking. It carries the batch ID, number of orders and units, the order list, who picked, the location, and a link to the batch.
- Exception raised — a picker or packer flagged an item or an order (short pick, damaged, backorder, skip, other). It carries the batch, the stage, the reason, who flagged it, the item, the affected orders, and a link. You get one run per newly raised flag.
- Return received — a return was marked completed. It carries the order name, who received it, units received, units to restock, the reasons, the items, and a link.
Three workflows worth building
1. Tell the packing team the moment a batch is ready. Trigger on Batch ready to pack and post to a Slack channel with the batch ID, the order count, and the link. Packers stop checking the app to see whether picking is done.
2. Route short picks to whoever buys. Trigger on Exception raised, add a condition on the reason, and send a message to purchasing or ops when it matches. The item and the batch link are right there in the payload.
3. Flag damaged returns. Trigger on Return received and add a condition on the reasons text. If it mentions damaged or defective items, notify the person who talks to your suppliers or carriers, with the order name and the link.
A rule of thumb
Use Flow when the job is "notify, tag, or route when something happens" and the trigger exists. Use a dedicated app when the job needs a screen, a decision, or a record that changes over time. And when it's both, which is common, let the app own the workflow and let Flow carry the alerts out to wherever your team already looks.
Getting started
Once Pickadoodl is installed, its triggers should appear in Flow's trigger picker under Pickadoodl. Start with one workflow, the batch-ready message is the easiest, run it for a week, and add more only if the first one earns its keep. Pickadoodl is free to start, up to 75 orders a month with the full feature set.