What you will learn
On this pageContentsCloseOpen
Alert me when something goes out of stock. Tag high-value orders. Email me every morning with what's still unfulfilled.
Search the App Store for any of these and you'll find plenty of paid options. But it's worth checking Shopify Flow first — Shopify's own automation tool, free on Basic, Grow, Advanced, and Plus.
The hard part is knowing whether Flow is enough. You'll find "just use Flow" and "Flow can't handle that" in roughly equal measure, and both are partly right depending on what you're building.
Usefully, Flow's limits are published as specific numbers in the Shopify Help Center. This post collects them in one place and maps out where free Flow ends and a paid app begins. Researched August 31, 2026.
The short version
Flow is free on every plan, but plan determines what you can do with it. The Send HTTP Request action requires Grow or above; tasks from custom partner apps require Plus. On Basic, external system integration is effectively off the table.
The limits are documented. 1,000 workflows, 100 objects per data-fetching action, 40 wait steps, a 10-minute minimum schedule interval. Requirements beyond those are a legitimate reason to shop for an app.
The most common misconception is that Flow only sends notifications. It writes: tags, collection membership, product publication state, metafields, customer deletion, fulfillment order handling — and it runs on a schedule.
The reverse mistake is just as common. Inventory alerts, order tagging, and daily summary emails are all available as official Flow templates. Plenty of stores pay monthly for those.
Structure and plan requirements
Flow watches for events in your store and apps, and runs a sequence in response. You assemble triggers (what happened), conditions (in which case), and actions (do this).
You install the free Shopify Flow app from the App Store to get started.
| Capability | Available on |
|---|---|
| Shopify Flow itself | Basic / Grow / Advanced / Plus (free) |
| Send HTTP Request action | Grow / Advanced / Plus |
| Tasks created by custom partner apps | Plus only |
| Usage limits | Governed by your plan's API rate limits |
The one that shapes real decisions is Send HTTP Request — the action that calls an arbitrary external service. It's the dividing line between "automation inside Shopify" and "automation that reaches your ERP, warehouse system, or third-party SaaS." On Basic, assume external integration isn't available.
Every documented limit, in one table
Pulled from the Flow troubleshooting and optimization pages. This table is the tool for deciding between Flow and an app.
| Limit | Ceiling |
|---|---|
| Workflows per store | 1,000 (active and inactive combined) |
| Workflows sharing one trigger | Warning above 10 active |
| Wait steps per workflow | 40 |
| Total wait time across all wait steps | 90 days |
| Config field value size in conditions | Under 50KB |
| Objects returned by Get data actions | Maximum 100 per workflow |
| Scheduled time — minimum interval | 10 minutes |
| Scheduled time — maximum interval | 1 year |
| Execution time per workflow section | 36 hours |
Some of these need context.
1,000 workflows is not a ceiling most stores approach — but importing templates and duplicating workflows adds up. Hit it and creating, duplicating, importing, and installing templates all get blocked at once.
The 10-workflows-per-trigger warning is about performance. Workflows sharing a trigger run in parallel, so every occurrence of that event fires all of them simultaneously. They compete with each other and eat the same API budget. Shopify's recommendation is to consolidate into one workflow with branches.
The 100-object limit is the one you'll actually hit. Get order data, Get product data, and friends are designed to return at most 100 objects per workflow. Beyond that, performance degrades. The documented workaround is to run the workflow more often so each query stays under 100.
The 36-hour section limit is partitioned by wait steps. A workflow with no wait step counts as a single section. Flow retries transient errors with increasing backoff, but if a step hasn't succeeded within its section's 36 hours, the workflow fails.
What Flow handles on its own
With the ceilings established, here's the capability surface.
Event-driven work. Order created, inventory quantity changed, customer tags added, fulfillment order ready — plus triggers supplied by installed apps, like a review being submitted.
Scheduled work. The Scheduled time trigger runs a workflow at a set date and time, optionally repeating daily, weekly, or monthly, with end rules by occurrence count or date. One catch: this trigger carries no store data, so you have to pair it with a Get data action.
Writes, not just reads. Adding and removing tags, adding products to collections, publishing and unpublishing products, updating metafields, deleting customers, processing fulfillment orders.
Iteration. The For each action loops over lists. Since Get data actions return lists and many actions require a single resource, For each is nearly always required — and its absence is the number one cause of the "Data not found" error people hit on their first workflow.
External output. Email, Slack, and Google Sheets. Sheets has a dedicated connector you authorize with a Google account.
Error detection. The Workflow error occurred trigger lets you build a workflow that notifies you when another workflow fails, and Shopify ships templates for it. If automation is going into your operations, build this one first.
Shopify's template library covers a lot of the obvious ground: daily email of out-of-stock products, tagging orders unfulfilled for more than two days, removing a "new" tag 90 days after product creation, weekly low-stock variant summaries, tagging customers who filed a chargeback.
If you're evaluating a paid app for any of those, check the templates first.
Four places an app starts earning its fee
You need external integration and you're on Basic
Send HTTP Request requires Grow or above, so Basic can't call external APIs at all. Connecting to an ERP, an internal inventory system, or a third-party service means either upgrading the plan or buying a connector app. That's a straight cost comparison.
You need to process more than 100 records at a time
The 100-object cap has a workaround, but it's an awkward one. Bulk-updating thousands of products, or re-segmenting an entire customer base, is not what Flow is shaped for. This is bulk-editing app territory.
Shopify's suggested approach — run more often, keep each query under 100 — means designing a "processed" tag to track state. Buildable, but between the design and the testing, buying an existing app is often cheaper.
High-frequency triggers meet large data pulls
A trigger like inventory quantity changed fires on every stock movement in the store. Pair that with a heavy data fetch and you'll reach your plan's API rate limit and get a GraphQL throttled error — which affects your other workflows too, so it can't be left alone.
Shopify documents a fix using conditions plus wait steps to partition the workflow. Depending on the requirement, a purpose-built app is the more reliable answer.
Flow has no trigger or action for what you need
Flow works with the triggers and actions Shopify provides, plus tasks contributed by installed apps. Editing themes, generating product imagery, writing article copy — all outside its surface.
Worth knowing: app-provided triggers sometimes don't carry the data you need. A "review created" trigger might hand you an email address but no customer object, which most customer actions require. Get customer data usually bridges the gap; when it doesn't, you're contacting the app developer.
Keeping Flow stable in production
A few things that prevent most incidents.
Always put a query filter on Get data actions. Without one, the API returns either everything or nothing. That's a performance problem and a correctness problem — the workflow can act on the wrong records.
Test the filter syntax and values. A wrong filter causes the entire query to be ignored, which lands you back at no-filter behavior. Use a Log Output action to inspect what actually came back.
Be careful with lists and metafields. Use the metafield object rather than looping the metafields list. Looping metafields whose values contain HTML processes an enormous amount of data.
Test with event data before activating. Flow has a test mode; use it before anything touches live records.
Build the error notification workflow first. Notifications are capped at one per workflow version, so this won't become noise.
Don't bother optimizing repeated field usage. Flow analyzes which fields you reference and fetches each one only once, so reusing the same data across steps costs nothing.
Wrapping up
Shopify Flow is a free, native capability that goes well past notifications — tagging, collections, metafields, scheduling, and structured writes are all in scope. The classic use cases (inventory alerts, daily summaries, order tagging) exist as official templates.
The ceilings are equally clear: 100 objects per data fetch, 1,000 workflows, 40 wait steps, a 10-minute minimum schedule — and no Send HTTP Request on Basic, which rules out external integration.
Before evaluating an app, the question worth answering is whether the job sits inside those limits. Inside, Flow does it for nothing. Outside, an app has a real justification.
There's no shortage of automation app comparisons out there. Running the "does Flow already cover this" test first improves both the pick and the monthly bill.
Sources:
Shopify syncs nothing between two stores you own. Locations live inside one store, Markets serve many countries from one store, and Shopify Collective is a dropship relationship with a 100-variant cap that zeroes your inventory when you uninstall it. So multi-store sync is an app decision — and the six real apps meter six different things. Syncio charges the destination for products and the source for orders. Tipo charges for every variant in the destination store, including the ones you never sync. Synkro's $25 plan is $25 per connected store. Trunk bills a rolling three-month order average across all your channels. Priced against one identical two-store setup, the spread runs from about $10 to about $119 a month. Verified on the Shopify App Store September 2, 2026.