When an Automation Needs to Become Industrial
The scenario that ran quietly at 50 executions a day starts losing events at 5,000, and the logs expired before anyone noticed. The real issue is not the choice of tool: it is the moment when five measurable criteria tip over.
TL;DR
- The decision to industrialize an automation rests on five measurable criteria — volume, business criticality, observability, cost per execution, error recovery — never on a tool preference.
- Four incompatible billing units: the task (Zapier), the operation (Make), the workflow execution (n8n), compute seconds plus invocations (Trigger.dev). Comparing prices without converting is meaningless.
- Past a threshold, throughput turns into queueing: 100 simultaneous events on a single Zap trigger a hold replayed at roughly 1 per second; on Make, the webhook queue provides 667 events per 10,000-credit tier.
- Execution log retention is counted in days everywhere: 29 to 69 days on Zapier, 30 days on standard Make plans, 1 to 30 days on both n8n Cloud and Trigger.dev, 14 days by default on self-hosted n8n. Long-term audit requires an external export, whatever the tool.
- Error recovery is never a factory setting: Zapier autoreplay on paid plans, Make incomplete executions enabled per scenario, n8n Retry on Fail set per node, Trigger.dev retries disabled in DEV at initialization.
- A job needing 40 minutes of continuous processing changes tooling category: that is the per-scenario maximum on Make paid plans, and the point where chunking or checkpoint patterns take over.
The tool debate hides the real question
The Zapier vs Make vs n8n debate fills the forums, but it asks the wrong question. Our thesis: the move from lightweight automation to industrial-grade orchestration is decided on five measurable criteria — event volume, business criticality, observability, cost per execution, and error recovery. Not on a tool preference, not on a team habit.
This thesis is refutable, by design: all four platforms studied — Zapier, Make, n8n, Trigger.dev — scale up. The industrialization threshold is therefore not a boundary between tools: it is the point where the patterns change — queues, log exports, chunking, configured and tested retries.
At Ownward, this grid is part of how we build: measure first, choose second. The figures below — all verified on August 12, 2026 — ground that measurement.
Cost per execution: the billing unit is the architecture
None of the four platforms bills the same thing. Each vendor bills what its engine measures — that is architectural information, not a commercial footnote.
| Platform | Billed unit | Paid entry point (Aug 12, 2026) | Documented tiers |
|---|---|---|---|
| Zapier | the task (one executed step) | Professional from $19.99/month billed annually | 750 to 2M tasks/month; Team from $69/month |
| Make | the operation, counted in credits | Core at $12/month | Pro $21, Teams $38/month (10,000-credit base), at least 15% off annually |
| n8n Cloud | the workflow execution, regardless of step count | Starter at €20/month billed annually | Pro €50 (10,000 executions), Business €667 (40,000) |
| Trigger.dev | the compute second + the invocation | Hobby at $10/month ($10 in credits included) | machines from $0.0000169/s (micro) to $0.00068/s (large-2x); $0.25 per 10,000 invocations |
Take a 10-step workflow triggered 10,000 times a month: roughly 100,000 tasks on Zapier, roughly 100,000 operations on Make, exactly 10,000 executions on n8n, a compute-second volume driven by actual processing time on Trigger.dev, plus $0.25 in invocations. Four very different invoices for the same need.
The pattern: beyond a few thousand monthly events on multi-step flows, recompute the same flow in all four units before making any call — the real cost is never visible on the entry price.
Volume: beyond a hundred simultaneous events, the pattern becomes the queue
Rising volume does not break these platforms: it triggers documented regulation mechanisms. Their shape, not their existence, should drive capacity planning.
| Platform | Documented behavior under load (Aug 12, 2026) |
|---|---|
| Zapier | beyond 100 simultaneous events on one Zap: held runs replayed at ≈ 1 execution/s (1,000 runs ≈ 15 min); instant triggers capped at 20,000 requests/5 min; polling every 2 min (Professional) or 1 min (Team) |
| Make | webhook queue of 667 events per 10,000-credit tier (hard cap 10,000); 5 GB of data transfer per 10,000 credits |
| n8n Cloud | 5 concurrent executions (Starter), 20 (Pro), "200+" (Enterprise); self-hosted, a dedicated queue mode handles scale-out |
| Trigger.dev | 10 concurrent runs (Free), 25 (Hobby), "100+" (Pro) per the limits page; API capped at 1,500 requests/min |
The cross-platform pattern: beyond about a hundred simultaneous events, immediate execution becomes a queue with controlled replay. The right question is no longer "will the tool hold?" but "is the drain time compatible with the business?": 1,000 events drained at one execution per second means 15 minutes of latency on the last one — fine for a contact sync, not for a payment confirmation.
A practical tip: at the same vendor, the pricing page and the limits page may show different concurrency figures (observed on August 12, 2026). Size against the limits documentation, validate with a load test.
Observability: log retention is the forgotten criterion
A workflow that runs is not a workflow that is observed. Execution log retention is the criterion most often discovered too late — during the incident.
| Platform | Execution logs (Aug 12, 2026) | Documented execution bounds |
|---|---|---|
| Zapier | 29 to 69 days by default on all plans, customizable window on Enterprise; runs replayable from the history | 100 steps per Zap, 1,000 fields per action step |
| Make | 30 days (60 days on Enterprise) | 5 min per scenario (Free), 40 min (paid plans); files from 5 MB (Free) to 1,000 MB (Enterprise) |
| n8n Cloud | 1 day (Starter), 7 days (Pro), 30 days (Business) | unlimited users and workflows on all plans |
| n8n self-hosted | 336 h (14 days) by default, pruning beyond 10,000 stored executions | no timeout by default (EXECUTIONS_TIMEOUT=-1) |
| Trigger.dev | 1 day (Free), 7 days (Hobby), 30 days (Pro) | trigger payload ≤ 3 MB, task output ≤ 10 MB |
The pattern: beyond the number of audit days your business requires, exporting logs to storage you control becomes the required level — whatever the vendor. On self-hosted n8n, the defaults are readable from the configuration:
EXECUTIONS_DATA_PRUNE=true # rolling pruning enabled by default
EXECUTIONS_DATA_MAX_AGE=336 # 14 days of execution data
EXECUTIONS_DATA_PRUNE_MAX_COUNT=10000
EXECUTIONS_TIMEOUT=-1 # no timeout by default
EXECUTIONS_MODE=queue # queue mode for scale-out
What doing nothing costs — A flow running 5,000 executions a month with 2% silent failures loses 100 events per month. Detected after a quarter, the incident covers roughly 300 events, and most of their traces have expired — the four platforms' standard retention, 1 to 69 days depending on the plan, does not cover a quarter. What remains is manual reconciliation, record by record, in the source systems.
Error recovery: an engineering decision, never a default
All four platforms offer error recovery. None fully enables it for you: durability is an explicit engineering choice, not an emergent property of the tool.
- Zapier: autoreplay of errored runs on Professional, Team and Enterprise, configurable at account level or per Zap ("Always replay" / "Never replay"); autoreplay targets runs in "errored" status, "safely halted" runs are handled by manual replay from the history, and the public documentation stays qualitative about retry timing.
- Make: a Retry error handler that keeps the error message and mappings and replays supported temporary errors (connection, rate limit) — documented example: 3 attempts every 15 minutes; incomplete execution storage is off by default and enabled scenario by scenario.
- n8n: "Retry on Fail" set node by node (Max Tries, Wait Between Tries in milliseconds), complemented by dedicated error workflows.
- Trigger.dev: declarative, code-first retries with exponential backoff, disabled by default in the DEV environment at initialization:
retry: {
maxAttempts: 10,
factor: 1.8,
minTimeoutInMs: 500,
maxTimeoutInMs: 30_000,
randomize: true,
}
The pattern: everywhere, recovery is designed, configured and tested. If a flow touches revenue, the failure test — cut the target API, watch the replay — belongs in acceptance testing. It is the criterion that most sharply separates convenience automation from industrial-grade orchestration.
The decision tree: from situation to tooling level
This grid condenses the five criteria into concrete decisions: thresholds, never a brand — the situation, not the logo, triggers the level change.
| Situation | Triggering criterion | Tooling level |
|---|---|---|
| Internal notification, a few hundred events/month, loss tolerable | low criticality, low volume | lightweight connector on an entry plan, no configured recovery |
| Spikes beyond ~100 simultaneous events on one flow | volume / throughput | higher tier with a documented queue (webhook queue, queue mode) and a computed drain time |
| Traceability required beyond 30 days (audit, compliance) | observability | systematic log export to controlled storage, whatever the tool |
| Single jobs exceeding 40 minutes (batch, media, AI) | duration / cost per execution | chunking into subtasks, or a per-second-billed engine designed for long execution |
| Revenue-touching flow, zero loss accepted | criticality + error recovery | configured and tested retries, error workflow, alerting, failure test in acceptance |
| More than 10,000 events/month on multi-step flows | cost per execution | recompute the same flow in all four billing units before deciding |
| Sensitive data, sovereignty requirement | criticality | self-hosting, with the operational load owned internally (logs, pruning, scale-out) |
If two or more rows apply to the same flow, you are already in industrial territory. This is the kind of audit we run in our method: one day is usually enough to screen a portfolio of flows against these seven rows.
The limits of this approach
This grid assumes measurable volume and criticality. It does not apply to prototypes, POCs or one-off migrations: there, lightweight tooling without configured recovery is the right call, and industrializing it would be over-engineering. It also ignores two very real factors: team skills — a TypeScript team does not approach a visual tool the way an ops team does — and the ecosystem already in place (licenses, connectors, support habits). Finally, the figures quoted are public prices and quotas as of August 12, 2026: they move, sometimes differently from one page to another at the same vendor. The grid holds; the exact thresholds deserve a fresh check at every decision.
Key takeaways
- The billing unit — task, operation, execution, second — describes the platform's engine: it is the first architecture document to read.
- Industrialization thresholds are public and dated: simultaneous events, retention days, execution minutes. Measure your flows against these figures, not against opinions.
- A critical flow without a failure test is not industrialized: error recovery is configured and proven, never assumed.
Industrializing at the right moment means refusing two kinds of waste: over-engineering a prototype and running a critical flow on fragile foundations. These five criteria can be measured in a one-day audit, and our services cover both the audit and the implementation. Ownward helps companies perform better through technology — and above all, take back control.
Sources
- Zapier pricing and task tiers — Zapier, accessed August 12, 2026.
- Zap limits: steps, fields and flood protection — Zapier, accessed August 12, 2026.
- Zap history data retention — Zapier, accessed August 12, 2026.
- Make pricing, credits and execution quotas — Make, accessed August 12, 2026.
- Handling incomplete executions in Make — Make, accessed August 12, 2026.
- Make's Retry error handler — Make, accessed August 12, 2026.
- n8n Cloud execution-based pricing — n8n, accessed August 12, 2026.
- Execution environment variables for self-hosted n8n — n8n (official documentation), accessed August 12, 2026.
- Retry on Fail settings for n8n nodes — n8n, accessed August 12, 2026.
- Trigger.dev compute and invocation pricing — Trigger.dev, accessed August 12, 2026.
- Trigger.dev technical limits page — Trigger.dev, accessed August 12, 2026.
- Configuring retries and backoff in Trigger.dev — Trigger.dev, accessed August 12, 2026.
Data and pricing verified on August 12, 2026.
All trademarks belong to their respective owners. This article is neither sponsored nor endorsed by the vendors mentioned.
Is this on your desk right now?
Tell us where you stand. We reply with concrete elements — what we would do first, in your business.
Keep reading
All insightsSeptember 11, 2026 · 7 min read
Govern a Base Like an Internal Product
A spreadsheet updated by hand every Monday, a base built one evening that became critical: most business tools are born without an owner or rules. As long as nobody answers for them, they are not tools that last — they are shadow IT on borrowed time.
September 1, 2026 · 6 min read
Airtable as scaffolding: build what you plan to take down
In 2025, half of IT projects run over deadline, budget or scope, and nearly one in five is abandoned. Yet every internal tool starts as if it were definitive. Owning the temporary — a no-code base built in days, designed to be taken down — remains the decision nobody dares to claim.