shopify / flow / automation
Shopify Flow: Pick the Trigger Before You Ask AI for a Workflow
Shopify Flow starts when a trigger fires. Choose that event before a template or Sidekick builds the workflow, and check which actions your plan includes.
If you run a Shopify store, Shopify Flow is the automation app in your admin: an event happens, and a workflow does the next step. The decision that makes the rest of it work is which event starts the run. Templates and Sidekick will draw the boxes after that. They will not notice that you started on the wrong event.
Flow is a free app on the Basic, Grow, Advanced, and Plus plans. Install it from the Shopify App Store, then open it at Apps → Flow. Shopify Help calls it a sequence of triggers, conditions, and actions. In Flow, the AI that builds a workflow from a sentence is Sidekick, and only on desktop. The settings below are from Shopify Help, checked October 14, 2026.
Shopify Flow in one paragraph (per Shopify Help, checked 2026-10-14): A workflow starts with a trigger: an event in your store, a time you schedule, or an event from an app. Conditions decide whether later steps run, using fields from that trigger. Actions change the store, send a message, or call another system. The trigger decides which data those later steps can see. If an action needs an order and the trigger only brought in a customer, the workflow does not run and Flow shows a missing-data error. For an order’s risk level, Help says to start with Order risk analyzed, not Order created, because risk and some other order fields are filled in after the order exists.

The first tile is the trigger. The rest of the row only falls if that tile was the one you meant to push.
Trigger, condition, action
| Piece | What Help says it does | What breaks if you skip the choice |
|---|---|---|
| Trigger | The event that starts the run, and the data that run can see | Later steps ask for an order, product, or customer the event never loaded |
| Condition | A check against those fields. Flow stops at the first condition that passes | A broad check above a narrow one handles orders you meant to treat differently |
| Action | A change in the store, a message, or a call to another system | You have a diagram and nothing happens in the admin |
Connectors are actions another app adds, such as a Slack message or a row in Google Sheets. Help says many templates use app triggers and actions, and the connector has to be installed or those steps cannot run.
Customer created brings in a customer. Add order tags needs an order. Put them in one workflow and the run errors. A Get data step can fetch a resource the trigger did not carry. That is a different problem from a field on the same object that is still empty because Shopify has not finished writing it. Risk level is the second problem. The fix Help names is a later trigger, not a different action.
The trigger is the event, not the label on the box
From the admin: Apps → Flow → Create workflow → Select a trigger. Every workflow starts with a trigger from Flow or from an app. There is no defined time for a run to finish. Help only says workflows run as soon as they can, and that a delay between the trigger and the last action is possible.
Two splits cause most of the “it ran, but the field was blank” cases.
Orders and draft orders are different objects. Triggers and actions for orders do not affect draft orders, and draft-order triggers and actions do not affect orders. After a draft order is converted into an order, your order workflows apply. If the job is an invoice or a tag on the draft itself, the trigger is Draft order created. The actions that belong to it include Send draft order invoice and Add draft order tags. Help says tags added on the draft become order tags once the draft converts. Sending the invoice and tagging the draft are the Flow piece. The price on that draft, and whether you should have created a draft at all, are a different admin task.
Risk is filled in after the order exists. Help lists fulfillments, UTM parameters, and risk levels as order fields that can still be empty when a workflow starts on Order created. Order risk analyzed starts when Shopify’s own fraud analysis is finished. It does not run the moment the order is placed, and it does not run for a score from a third-party app. The template library includes workflows that start on this trigger. One of them cancels high-risk orders and says to check the order manually after the cancellation. Another captures payment only when the risk is not high, and only if the store is set to manual payment capture. How you read Shopify’s risk recommendation, and what you want done with a high-risk order before anything is cancelled automatically, is a separate decision from choosing this trigger.
Tag conditions have a count limit. Help says a workflow that checks tags might not work when the order, product, or customer already has more than 250 tags.
Conditions only see what the trigger loaded
A condition is a field from the Admin API, an operator, and a value. String comparisons are not case sensitive. AND is true only when every criterion is true. OR is true when any one of them is true. Flow walks conditions from the top of the workflow and stops at the first one that passes. Help’s loyalty example does this on purpose: spend over $1000 if the customer accepts marketing, then under $1000 but over $500, then under $500 but over $200, each also requiring that the customer accepts marketing. The first match wins. A broad check placed above a narrower one is the one that runs.
Empty lists are the quiet failure. Help says that if no data exists in a condition set to AND, the condition evaluates as true, and if no data exists in a condition set to OR, it evaluates as false. A rule about line items, on an order that has none loaded, can take the True branch for a reason that is not your rule. Test with an order that is missing the field, not only with a tidy example.
A Shopify Flow template is still a sketch
A template is a workflow Shopify already built. The path is Apps → Flow → Create workflow → Browse templates, then Install. The boxes arrive with placeholder tags, placeholder email addresses, and sometimes an app you do not use. Before Turn on workflow:
- Replace tags with the tags this store actually uses.
- Replace recipient addresses. A template that emails “someone” is emailing whatever address was left in the box.
- If the template depends on an app you will not install, swap that step. Help’s example is replacing a Slack message with an email.
- If there is an About this workflow note, read it and rewrite it for this store.
Then run a test of the trigger event. For Order risk analyzed, Help says to create a test order that produces Shopify’s fraud analysis. For Draft order created, create a draft order. Turn the workflow on only after that test looks like the store you meant.
Sidekick builds an inactive workflow
On desktop, open Flow, open Sidekick, and describe the workflow in a sentence. Help’s examples are an order with fewer than 3 line items tagged “small”, and a welcome email when lifetime spend passes $1000. Sidekick creates the steps and a short account of how they run. You open the workflow from that reply.
Three limits on the same Help page:
- The generated workflow is inactive. Nothing runs until you click Turn on workflow.
- Flow tags it
sidekick. - Sidekick can leave out logic that only your store knows. Review the trigger, the conditions, and the actions, then test. You can edit by hand, or send a follow-up. Apply changes keeps Sidekick’s revision. Discard changes drops it.
Name the event in the sentence you type. “When Order risk analyzed says the risk level is high, tag the order and email the inbox we use for fraud review” gives Sidekick less room to start on Order created. You still open the trigger and read it. The generated diagram is not the test.
What each plan can run
The Flow overview puts the free app on Basic, Grow, Advanced, and Plus. Send HTTP request needs Grow, Advanced, or Plus. It isn’t available on Basic. Some custom app tasks have plan limits too. Check those limits before you build a workflow around one.
| Who | What you can count on |
|---|---|
| Basic, Grow, Advanced, and Plus | The Flow app is free |
| Grow, Advanced, and Plus | Send HTTP request |
Usage limits follow the API limits of the plan. Help says a workflow usually hits them only when it is very complex or contains a design error, such as a loop over a huge list or a workflow that keeps starting itself (a Customer tags added trigger followed by Add customer tags). The error is GraphQL throttled, and it can stall other workflows until that one is fixed.
There is also a count. The troubleshooting page sets a limit of 1,000 workflows, active and inactive together. At the cap, you delete unused workflows before you can create another. A store that was already over 1,000 when the limit was added can keep those workflows running, and still has to get under 1,000 before it can add one.
Using Liquid in Shopify Flow
Text fields that show Add a variable accept Liquid. The list only offers variables from earlier steps, which is the trigger fencing the workflow again. You can also type it. Help’s example {{ order.name }} prints the order name from the admin, such as order-123.
Flow reads the GraphQL Admin API, so the names are camelCase: {{ product.createdAt }}, {{ order.customer.firstName }}. In a theme, the same product date is product.created_at. Theme Liquid pasted into Flow does not resolve.
Three limits from the Liquid variables page:
- No index.
{{ order.lineItems[0].title }}is not supported. Loop:{% for li in order.lineItems %}. - No dot for the length of a list. Use
{{ order.lineItems | size }}, notorder.lineItems.size. - No metafield dot path.
{{ order.metafields.custom.hold_note }}does not work. You loop the metafields.
Update product metafield writes a value onto the product that the trigger provided. The field picker can select a metafield by name, or, for an unstructured metafield, by namespace, key, and type. Getting that value onto the product page is a different job: a definition and a theme connection, which Shopify metafields covers.
The same trigger rule shows up in inventory. Product variant inventory quantity changed is an event Flow can start on. A report of what sold last month is not that event. The report is how you read stock after the fact, which Shopify inventory reports is for. A workflow does not replace it.
Staff email is not a customer campaign
Send internal email sends from your store’s sender address to addresses you type. Help says variables cannot change the recipient, so the action fits staff, not “email the customer on this order.” If the message fails, check the sender address. Help says some domains need extra authentication, or the message shows with via shopifyemail.com, or as store+ @shopifyemail.com.
Send marketing email comes from the Shopify Messaging app, not from Flow’s own action list, and it only reaches customers subscribed to email marketing. That is the split with Send internal email. It is not a welcome-series setup.
Run it by hand only when the trigger matches
Run Flow automation, under More actions on an order, draft order, customer, or product, replays a workflow after the original event has passed. Help says an inactive workflow cannot be run this way. You turn it on first. The trigger also has to be one Help lists for that resource:
- Orders: Order created, Order deleted, or Order paid
- Draft orders: Draft order created or Draft order deleted
- Customers: Customer created, Customer deleted, Customer account enabled, or Customer account disabled
- Products: Product created
Customer account enabled and Customer account disabled only fire for legacy customer accounts. On the new accounts, use Customer created instead. The trigger list uses those full names. The Customer account enabled page says the trigger applies only to legacy accounts, and upgrading customer accounts says Flow automations on both of those triggers aren’t supported after the upgrade.
Order risk analyzed is not on the order list. Clicking Run Flow automation on an old order does not test a risk workflow. Create an order that produces Shopify’s fraud analysis. A bulk run covers at most 50 orders, draft orders, customers, or products, and they have to be on the same admin page.
A setup order that keeps the trigger first
- Name the event in store language: order paid, risk analysis finished, draft created, inventory quantity changed, or a time on the schedule.
- Open that trigger and read which resource it provides. Creating workflows is the page that pairs Order risk analyzed with risk, instead of Order created.
- Pick actions that use that resource. If the field arrives later, change the trigger.
- Add conditions. Watch empty lists, and put the narrow check where it can still be reached.
- Install a template or ask Sidekick only after steps 1–3. Put the trigger name in the sentence you give Sidekick.
- Replace placeholder tags and recipients. If the workflow sends an HTTP request, the store needs Grow, Advanced, or Plus. For other app tasks, check the plan limits.
- Cause the trigger event and read the run. Then click Turn on workflow.
FAQ
Is Shopify Flow only on Shopify Plus?
No. The app is free on Basic, Grow, Advanced, and Plus. Send HTTP request needs Grow, Advanced, or Plus. It isn’t available on Basic.
What are Shopify Flow templates?
Workflows Shopify has already assembled. Install one from Apps → Flow → Create workflow → Browse templates, then replace the placeholder tags, messages, and app steps before you turn it on.
Can you use Liquid in Shopify Flow?
Yes, in fields that offer Add a variable, and by typing it. Names follow the Admin API (createdAt), not theme Liquid (created_at). Lists are loops, not lineItems[0].
Does Sidekick turn the workflow on?
No. Help says a workflow Sidekick generates stays inactive until you turn it on, and you should test it first. Flow tags that workflow sidekick.
Sources
- Shopify Help — Shopify Flow (checked 2026-10-14)
- Shopify Help — Creating workflows manually or from a template (checked 2026-10-14)
- Shopify Help — Shopify Flow reference (checked 2026-10-14)
- Shopify Help — Conditions in Shopify Flow (checked 2026-10-14)
- Shopify Help — Triggers in Shopify Flow (checked 2026-10-14)
- Shopify Help — Customer account enabled (checked 2026-10-14)
- Shopify Help — Customization options for upgrading customer accounts (checked 2026-10-14)
- Shopify Help — Actions in Shopify Flow (checked 2026-10-14)
- Shopify Help — Order risk analyzed (checked 2026-10-14)
- Shopify Help — Draft order created (checked 2026-10-14)
- Shopify Help — Send draft order invoice (checked 2026-10-14)
- Shopify Help — Using Liquid variables in Shopify Flow (checked 2026-10-14)
- Shopify Help — Send HTTP request (checked 2026-10-14)
- Shopify Help — Send internal email (checked 2026-10-14)
- Shopify Help — Apps that work with Shopify Flow (checked 2026-10-14)
- Shopify Help — Troubleshooting errors in Shopify Flow (checked 2026-10-14)
- Shopify Help — Running workflows manually (checked 2026-10-14)
- Shopify Help — Update product metafield (checked 2026-10-14)