Shopify Flow vs a Custom App: Where Each One Stops

What Shopify Flow can do in 2026, its plan rules and hard limits, what a custom app costs to build and keep running, and a decision table for choosing between them.

In this guide
  1. What Shopify Flow is
  2. Where Flow stops
  3. What a custom app involves
  4. Decision table
  5. Questions to ask before you choose
  6. Getting help with the jobs Flow cannot do
  7. FAQ

A lot of store automation starts with the same sentence: “when this happens, do that.” When an order is paid, tag it. When stock drops below ten, email the buyer. When a customer is created with a company email, add them to a segment.

Shopify Flow handles that sentence well, and it is free. The question is what happens when the job grows past it. This guide covers what Flow can do in 2026, where its limits are, what a custom app really involves, and a table for deciding which one a job belongs in.

If you are still deciding between Flow, Functions, a public app and a custom app in general, start with when to build a custom Shopify app. This post goes deeper on the Flow side of that choice.

What Shopify Flow is

Shopify Flow is a free Shopify app available on the Basic, Grow, Advanced and Plus plans. Workflows are built from three parts:

Installed apps can add their own triggers and actions too. Shopify’s developer docs note that Flow extensions from a custom app are available only to Shopify Plus stores that have the app installed.

Plan differences that matter

Feature Basic Grow Advanced Plus
Flow app and core triggers and actions Yes Yes Yes Yes
Send HTTP request action No Yes Yes Yes
Flow tasks from a custom app No No No Yes

Shopify also says usage limits in Flow follow the API limits of each plan, so a heavy workflow behaves differently on Basic than on Plus.

What changed in 2026

Flow keeps getting new building blocks. Two examples from Shopify’s changelog this year:

  • On March 24, 2026, Shopify added Get data actions for workflow runs, abandoned checkouts, inventory items and pages, each returning up to 100 matching records.
  • On April 30, 2026, it added inventory transfer triggers for transfers marked ready to ship and transfers completed at their destination.

Before ruling Flow out, check the current triggers and actions lists. A job that needed an app two years ago may be a template today.

Where Flow stops

Flow’s limits are documented, and they are the real decision points. These are the ones that most often push a job out of Flow.

Run code cannot call anything

The Run code action runs JavaScript (ECMA2020) to reshape data between steps. It cannot make HTTP calls, cannot import modules, and is limited to 5 seconds of execution, 10MB of memory and 50KB of combined output and logs. It is a calculator, not an integration.

Get data returns 100 records

The Get order data action, like the other Get data actions, returns between 0 and 100 resources per call. Shopify also warns that if a query fails, the API may return all results instead of none, so test queries before letting a workflow act on them. Jobs that need to process thousands of orders, or a full catalog, do not fit this model.

Scheduled workflows run at most every 10 minutes

The Scheduled time trigger can run at most once every 10 minutes. Shopify notes that with short intervals, a run that takes longer than the interval can produce inconsistent results.

Admin API requests are mutations only

Send Admin API request can use most GraphQL Admin API mutations, including ones without a dedicated Flow action. It does not support queries, deprecated mutations, asynchronous mutations or mutations that return a Job, and some subscription, marketing and discount mutations are excluded. Shopify also notes that it may fail when a new API version changes a mutation or field it uses.

HTTP requests need a receiver

Send HTTP request, on Grow, Advanced and Plus, can call an outside system. Flow waits up to 30 seconds for a response and can retry for up to 24 hours. Any response other than 2XX or 3XX fails the run. Something on the other end still has to receive the request, check it, and do the work. That something is often a small custom app or server.

No screens, no approvals, no memory

Flow has no user interface for your team beyond the workflow editor. It cannot show a review screen, wait for a manager to approve a change, or keep its own records between runs beyond what you store in Shopify, such as tags and metafields. If the job needs people in the loop, Flow can notify them, but it cannot give them a place to decide.

What a custom app involves

A custom app is built for one merchant and runs on a server you or your developer control. It can read and write store data through the Admin API, receive webhooks, show screens inside the Shopify admin, store its own data and talk to any outside system. Since January 1, 2026, Shopify’s help center says custom apps are created and managed in the Dev Dashboard.

That freedom comes with work Flow does for you:

Cost What it means
Build Scoping, development and testing against your real data
Hosting A server, database and monitoring that someone pays for and watches
API versions Shopify releases a new API version every three months and supports each for at least 12 months; someone has to update the app
Reliability Webhooks can be missed or arrive twice; a sound app reconciles. See integrations that don’t break
Ownership Someone has to know how it works when it needs changing

None of this is a reason to avoid custom work. It is a reason to keep custom apps small and pointed at the job Flow cannot do, and to write a clear brief. Our guide to briefing a developer covers what to include.

Decision table

The job Start with Why
Tag, notify or update one record when an event happens Flow Triggers, conditions and actions cover it, at no extra cost
Send an alert to staff when an order matches a rule Flow Internal email or an app’s messaging action is enough
Reshape data between steps (split a string, compute a value) Flow with Run code Within 5 seconds and no network calls
Change something Flow has no action for Flow with Send Admin API request If the mutation is supported
Process thousands of orders or a full catalog at once Custom app Get data returns up to 100 records per call
Push data to an outside system and handle its reply Flow plus a receiver, or a custom app Send HTTP request needs something to receive it
Keep two systems in sync with retries and reconciliation Custom app Needs its own state and scheduled checks
Let a person review and approve before a change Custom app Flow has no review screens
Give your team its own admin screen or report Custom app See back-office tools for teams
Change checkout, discount or delivery logic Shopify Functions Delivered in an app; custom apps with Functions need Plus

A useful pattern is a split: Flow for the trigger and the simple steps, and a small custom endpoint for the one step Flow cannot do. That keeps most of the logic visible in the Flow editor, where the team can change it without a developer.

Questions to ask before you choose

  1. Can you describe it as “when X, if Y, do Z” inside Shopify? If yes, try Flow first.
  2. How many records does one run touch? More than 100 is a warning sign.
  3. Does it need to call or wait for another system? Check your plan for Send HTTP request, and who will receive the request.
  4. Does a person need to approve or review something? Flow can notify, not ask.
  5. Who maintains it? A Flow workflow can be edited by staff; a custom app needs a developer for changes and API updates.

Getting help with the jobs Flow cannot do

When a job clearly needs its own screens, data or connections, that is the work our custom solutions page describes: small custom Shopify apps, integrations with the tools you already use, and back-office tools, scoped to what Shopify allows for your store.

FAQ

Is Shopify Flow free?

Yes. Shopify describes Flow as a free app on the Basic, Grow, Advanced and Plus plans. Some features depend on the plan, such as Send HTTP request, which needs Grow, Advanced or Plus.

Can Shopify Flow call an external API?

Yes, with the Send HTTP request action on Grow, Advanced and Plus. Flow waits up to 30 seconds for a response and can retry for up to 24 hours. The Run code action cannot make HTTP calls.

How many orders can a Flow workflow process at once?

A Get data action returns up to 100 resources per call. Jobs that need to work through thousands of records at once are better suited to an app that uses Shopify’s bulk APIs.

Can a custom app add its own actions to Flow?

Yes, apps can add triggers and actions to Flow. For a custom app, Shopify’s developer docs say those Flow extensions are available only to Shopify Plus stores that have the app installed.

Should I replace my Flow workflows with a custom app?

Usually not. Keep what works in Flow, where your team can see and edit it, and build only the step Flow cannot do, such as a sync, a review screen or a large batch job.

Sign in to your workspace

Each workspace has its own address: <workspace>.getstorefleet.com. Enter your workspace name, or paste its address, and we take you to its sign-in page.

You will go to

New to StoreFleet? Create a workspace