Skip to content
Free accountNo card required

Pricing you can size yourself.

Three plans with the price, the included runs and the overage rate printed — plus a free account capped at 500 runs. The unit we meter, a flow run, is defined on this page precisely enough to count from your own order volume.

LimitStarterOne bundle, one storefront, one ERP.GrowthRecommendedSeveral bundles across a WMS, a 3PL or a marketplace.EnterpriseEvery connector, run volume agreed with you, a named contact.
Connectorssystems you can connect24Unlimited
Installed bundlesintegration apps from the catalog13Unlimited
Flow runs per monthincluded — see “What counts as a run”10,000100,000Agreed with you
Overageper 1,000 runs above the included amount$5$4Agreed with you
Run record retentionruns and per-step input/output30 days60 days90 days
Team seatsowner and member roles, invited by link310Unlimited
Notificationsin-app: failed runs, offline connectionsIncludedIncludedIncluded
SupportEmailPriority emailNamed contact
Onboardingone-time, with an engineerSelf-serve$1,500, optional$2,500, required
Priceby card, monthly or annually

$299/mo

or $249/mo billed annually

Start with Starter

$799/mo

or $699/mo billed annually

Start with Growth

from $2,000/mo

billed annually

Start with Enterprise

Connector, bundle and seat limits are hard: the platform refuses the next one and never disables what exists. Included runs are a soft cap on Starter and Growth — flows keep running, and runs above the included amount are billed at the overage rate on your next Stripe invoice against the calendar-month count. The Free account's 500 runs are a hard cap.

Free account: 500 runs a month, 1 connector, 1 bundle — hard cap; no card.

Enough to connect a development store and work a bundle's settings through to a green run. At 500 runs in a calendar month new triggers are recorded as refused until the month turns or you upgrade; nothing that ran is touched. Run records are kept 30 days.

Create a free account

The metered unit

What counts as a run

Defined from the engine, not from a rate card. Every clause below names the code it comes from.

Worked example

One order, three locations

An order whose lines ship from three locations is split once. The parent run ends at the split; each fulfillment order becomes a child run with its own record.

1
parent run
order.created → split
3
child runs
one per fulfillment order
=
4
runs counted
1 + 3

apps/api/src/engine/executor.ts

Rule 1

One run = one trigger firing through one flow

When a trigger fires — a webhook arrives or a poll finds a new record — the engine walks that flow's steps once and writes one run record with a step record per action. That is one run, however many steps the flow has.

apps/api/src/engine/executor.ts

Rule 2

A split fans out into child runs, and each child is a run

A split step takes an array from the payload — say, one Shopify order's three fulfillment orders — and enqueues one child run per item, each carrying its parent run's id. The parent run ends at the split. So an order split across three locations is four runs: the parent plus three children, and each child has its own run record you can open.

apps/api/src/engine/executor.ts · flowRunQueue.addBulk

Rule 3

A split is capped at 10,000 children per run

If a split resolves more than 10,000 records the engine refuses the step, records the failure with the count, and enqueues nothing — rather than processing the first 10,000 and reporting success. The parent run counts as one run; no children are created.

apps/api/src/engine/executor.ts · MAX_SPLIT_FAN_OUT

Rule 4

Retries are not runs

A step that retries on 429 or 5xx retries inside the same run — the step record's attempt counter goes up, the run count does not. Five retries on a rate-limited ERP call are still one run.

apps/api/src/engine/executor.ts · runActionStep

Rule 5

Failed and partial runs count

A run counts when it starts, whatever its final status. A failed run still consumed a trigger, a worker slot and a run record; that record is what you debug from. What does not count: a webhook rejected before a run exists, and a disabled flow's trigger.

apps/api/src/engine/executor.ts

Questions

Frequently asked

What merchants ask before the first invoice.

Is there a free tier?
Yes — a free account: 500 runs a calendar month, 1 connector, 1 bundle, 1 seat, no card. It is a hard cap: at the limit new triggers are recorded as refused, with the reason on the run, until the month turns or you upgrade. It exists to prove a bundle's settings against a development store, not to run a business on.
What happens if I exceed the included runs?
On Starter and Growth your flows never stop. Runs above the included amount are billed at your plan's overage rate — $5 per 1,000 on Starter, $4 on Growth — pro-rata per run, on your next invoice. You are notified in the dashboard the first time a month crosses the line. Only the free account has a hard cap.
Can I add a connector to my plan?
The connector limit is what separates the plans: 2 systems on Starter, 4 on Growth, every connector in the catalog on Enterprise, including ones added later. A third system on Starter is a Growth plan — the platform refuses the extra connection and names the limit rather than billing you for it quietly.
Do failed runs count?
Yes — a run counts when it starts, whatever it ends as, because the run record it leaves is the thing you debug from. Retries inside a run do not add runs, and a webhook rejected before a run exists is not a run.
How am I billed?
By card, monthly or annually, through Stripe; Enterprise is annual with a required onboarding session. Overage is metered against the calendar-month run count and appears on the next invoice. Cancel from the Billing tab: at the end of the period the account returns to the free plan, and run records older than its 30-day retention are pruned — we say so before you confirm.

Size it with us in thirty minutes.

Bring last month's order count and how many locations you ship from. We will count the runs together and put a figure in writing.