Spurlock Studios
Contact
Share LinkedIn X
A small stack of coins. Thesis: MUCH AUTOMATION COSTS BUILD TOOLS.

Business automation costs three shapes: build, run, and fail. The subscription line on Zapier, Make, or n8n sits inside run — and it is usually the smallest of the three. Blogs argue about plan tiers because those numbers are public. The bill that actually hurts is the week you spend cleaning a duplicate invoice, a missed SLA, or a workflow nobody owns.

Spurlock Studios has shipped 500+ automations. The teams that get burned are almost never the ones who picked the “wrong” plan. They budgeted a sticker and treated production spine as optional. The Production n8n handbook is the spine. This post is the money shape around it. Whether the work is worth automating at all lives in the ROI mindset. This page assumes you already passed that filter.

The short answer

  • Sticker ≠ total cost. Count build hours, tool meters, maintenance, and one plausible failure cleanup.
  • Meter the unit, not the brand. Zapier tasks, Make credits, n8n executions price the same canvas differently.
  • Run cost has two halves. The vendor meter, and the ops hours after go-live. Skip the second and you invent it as an incident.
  • Fail cost is a line item. Webhook retries without idempotency are not a “glitch.” They are a cleanup invoice.
  • Compare agencies on definition of done, not hourly mythology. This is not a Spurlock package price list.

What are you actually paying for?

Four buckets. If your spreadsheet only has “Zapier / Make / n8n,” you do not have a budget. You have a receipt.

Cost bucketShapeWhat it coversWhen it shows up
BuildOne-time, then again on scope changeDiscovery, happy path, spine, staging, docs, handoffWeek 0–4, plus every rebuild
Run — meterRecurringTasks / credits / executions / hostingEvery billing cycle
Run — maintenanceRecurringVendor changes, mapping fixes, credential hygiene, alert triageMonth 2 onward
FailLumpy, often unpaidDuplicate side effects, missed SLAs, cleanup labor, trust recoveryFirst bad night, then whenever spine is missing

Attention tax sits across run and fail: approvals, “is it still running?”, muted channels. If nobody owns that, it lands on the founder.

Decision list — you are missing a bucket when:

  1. The only number in the deck is a monthly plan screenshot.
  2. Build is “we’ll figure it out in the tool.”
  3. Maintenance is “it should just work.”
  4. Failure is “we’ll deal with it if it happens.”

It will happen. Stripe will retry. A CRM field will rename. An OAuth token will die. Budget the shape, or the shape budgets you.

Why does the tool sticker price lie?

Pricing pages sell a monthly number. Production bills a unit. As of August 2026, the three rails most teams compare meter different things:

RailUnit you pay forOfficial sourceWhat grows the bill
ZapierTask — a successful action step; some features multiplyTask usage · PricingExtra action steps, AI/Code multipliers, replays, MCP tool calls
MakeCredit — most non-AI module actions are 1 credit per operation / bundleCredits · How features use credits · PricingIterators, per-item actions, built-in AI token usage
n8n CloudProduction execution — one workflow run, any node countExecutions · PricingFrequency, empty-body webhooks, polling that finds data
n8n self-hostedInfra + labor (Community has no per-execution fee)Sustainable Use LicensePatches, backups, encryption-key hygiene, an owner

Exact dollar tiers change. Verify on each vendor page before you model cash. The decision that ages is which unit matches your workflow shape — not which blog’s 2025 screenshot you bookmarked.

Checklist before you trust a comparison table you found on the internet:

  • Dated, and the date is this quarter
  • Cites the vendor’s current unit definition, not a reseller’s paraphrase
  • Models your peak month, not a five-step demo
  • Includes overage / pause behavior when you blow the allowance
  • Separates license from hosting from labor

A cheap sticker on a high-frequency, high-step path is not cheap. A “free” Community box with no owner is not free.

How do Zapier tasks, Make credits, and n8n executions change the bill?

Same business process, three meters. Work a concrete path: lead arrives → enrich → write CRM → notify Slack.

StepZapier (typical)Make (typical)n8n Cloud (typical)
TriggerDoes not count as a taskTrigger run consumes credits when it fires / pollsProduction trigger starts one execution
Enrich1 task if the action succeeds1 credit per module per bundleNodes inside the same run do not add executions
CRM write1 task1 credit per record writtenStill the same execution
Slack1 task1 creditStill the same execution
Filter / formatterOften exempt — confirm current Zapier built-in listRouter / tools still consume when they runExtra nodes are free on the execution meter

Zapier’s own help center is specific: a task is a successful action. Triggers, polling, and a listed set of built-in tools (Filter, Formatter, Paths, Delay, Looping, and others) do not count. Failed or halted actions do not count. Replays of previously successful steps do. Some products multiply — Zapier documents Lead Router at 5 tasks per successful route and Zapier MCP at 2 tasks per successful tool call. AI and Code steps can consume more than one task. Read the task article and the pricing page before you model; multipliers move.

Make renamed operations to credits. For non-AI apps, 1 operation still equals 1 credit. The trap is per-item work. Make’s own example: a search module that returns 10 rows can cost 1 credit; the next action that deletes each row costs 10. Built-in AI apps can add token-based credits on top of the operation. Make Code bills 2 credits per second of execution time. If you iterate a list, you are not paying “one scenario.” You are paying the inner loop.

n8n Cloud bills production executions, not nodes. n8n’s docs: only automatic runs (triggers, schedules, polling) count toward paid quotas. Manual editor runs do not. Sub-workflow runs do not add a second execution — the parent counts. Error-workflow runs do not count. Polls that return no data do not count. Webhooks do count for every inbound request that starts the workflow, including an empty {} body. Malformed requests that fail before start do not. That last pair matters: a noisy webhook can burn executions without doing useful work.

Decision list — which meter fits:

  1. High frequency, few successful actions → task / credit models can stay boring.
  2. Moderate frequency, deep branching → execution-metered rails often win on shape.
  3. High volume + irreversible side effects → model fail before you celebrate a cheaper meter.
  4. Lists inside lists → Make credits and Zapier looped actions can explode; n8n depth stays one execution.

Do not migrate rails to “save money” until you have measured a peak month and priced the cutover. Migration is a new build line.

What does build cost include beyond a green demo?

A green demo is not a production automation. The calendar gap between them is where build cost lives. Across 500+ automations, the expensive builds are not the ones with more nodes. They are the ones that skipped spine and paid for it in CRM cleanup.

Minimum production spine on money or customer paths — non-negotiable:

  1. Explicit happy path on one page
  2. Idempotency on retries and duplicates
  3. Error path with a human-readable alert
  4. Dead-letter or replay lane for poison items
  5. Schema validation that fails loud
  6. Staging proof of one failure case
  7. Named owner + half-page runbook
Build sliceCheap versionProduction version
Discovery“We already know the Zap”Trigger, payload, systems of record, blast radius
Happy pathGreen execute onceWritten steps a stranger can follow
SpineSkip “to save money”Items 2–7 above
StagingProd is the testOne forced failure, one replay
DocsNoneOwner, pause, last-known-good export
HandoffBuilder keeps personal OAuthService account + named backup human

Teams that skip 2–7 do not save build cost. They defer it into fail cost. That is not a soft cost. It is the bill after the launch Slack thread.

Procedure — estimate build without inventing a studio rate:

  1. Count paid hours (yours, a contractor, an agency) for discovery through handoff.
  2. Add a spine premium if the path writes money, CRM, or customer-facing records.
  3. Add staging + one failure rehearsal as real hours, not “we’ll do it later.”
  4. Leave a contingency for the first vendor surprise (field rename, auth scope, rate limit).
  5. Do not convert those hours into a Spurlock package price. We do not publish one here.

If you want a scoped recommendation for your stack, that is a call, not a blog number.

What does run cost look like after go-live?

Run is the meter plus the hours that keep the meter honest. Plan the envelope on day one or you will invent it as firefighting.

CadenceTypical workWhat you are buying
WeeklyFailed-run review, alert triageCatch silent 401s before a week of empty syncs
MonthlyUsage vs plan, overage risk, noisy Zaps / scenariosStay inside the unit you bought
QuarterlySchema / API changelog pass, owner checkAvoid green runs that write nothing
On vendor changeMapping fix, staging retest, promoteThe changelog you did not read
On people changeCredential transfer, runbook updateThe builder’s laptop is not a DR plan

Google’s own auth docs are the maintenance story in miniature: user access tokens expire after one hour. Refresh tokens last longer and still die — revoke, unused windows, testing-mode clients. If your “automation” is a founder’s personal Google OAuth, month-three is a 401 loop. That is run cost, not a mystery outage.

n8n Cloud adds a second run constraint: concurrency limits on production executions. Extra runs queue. A cheap plan that “has enough executions” can still stall a bursty webhook week. Queue time is a run cost even when the monthly count looks fine.

Checklist — monthly run review (30–45 minutes):

  • Peak-day volume vs remaining allowance
  • Failed executions with a named owner, not a dump channel
  • Credentials that will expire this month
  • Workflows with no owner in the runbook
  • One irreversible path you would pause if the builder vanished

If nobody has hours for that envelope, you are not buying automation. You are buying a future incident with a pretty canvas.

What does failure cost actually include?

Concrete failure mode we see repeatedly:

  1. Vendor delivers the same event twice — Stripe retries live webhooks for up to three days with exponential backoff, and says endpoints may receive the same event more than once.
  2. Your workflow has no idempotency key and no processed-event log.
  3. Second invoice / lead / notification / fulfillment fires.
  4. Support thread + refund risk + “turn it off.”
  5. Two weeks of manual process while trust recovers.

Stripe’s API docs exist because this is normal: idempotency keys let you retry a POST without creating a second object. Your automation is on the other side of the same problem. If the rail retries and you do not claim a key before the write, you are the duplicate.

Fail lineWhat you payHow you measure it
Duplicate writeRefunds, voided invoices, CRM merge laborCount one incident, multiply by plausible yearly rate
Missed writeLost lead, missed job, SLA creditValue of one missed event × quiet-fail window
Panic pauseManual ops while the workflow is offHours × loaded rate for the outage length
Trust“Don’t automate that again”Opportunity cost of the next three workflows that never ship
RebuildAgency or founder week to add the spine you skippedBuild cost, again

Price that path once with your numbers. Not a blog average. If cleanup for one bad week exceeds a year of tool subscription, the cheapest tool choice is irrelevant until spine exists.

  • Irreversible writes sit behind an approval gate until keys exist
  • Processed IDs are stored with a uniqueness constraint, not a vibe
  • Alerts name the workflow, the execution, and the owner
  • Replay is a procedure, not “hit the webhook again and hope”

Fail cost is why the handbook exists. Cheap run + no spine is the expensive option.

When does cheap DIY become the expensive option?

DIY is not a moral category. It is a blast-radius decision. The DIY vs hire fork is the same test; cost follows the radius, not the step count.

DIY wins when:

  • Side effects are reversible (draft email, internal Slack, staging CRM)
  • One person will own it for a year
  • You can afford a quiet week when it breaks
  • The builder can write the runbook they will need at 11pm

DIY loses when:

  • The workflow charges a card, books a job, or writes a customer-facing record
  • The builder is a founder with no backup human
  • “Done” means green execute, not spine + runbook
  • The first failure requires a specialist you do not have on retainer
SignalDIY is cheaperHire / pair is cheaper
Blast radiusInternal, undoableMoney, customers, legal
OwnershipNamed, present, documented“We’ll remember”
VolumeLow, predictableBurst + peak weeks
RecoveryOne person, same dayNeeds a second brain
Tool skillAlready in-houseLearning the rail on the irreversible path

A founder night is not free. If last quarter included two “everything stopped” weekends, stop pretending on-call is a hobby.

How do you estimate without a fake ROI spreadsheet?

Copy this worksheet. Fill ranges, not false precision. Pair the value side with the ROI post.

  1. Hours removed per week (observed, two weeks of notes — not a hope)
  2. Value of those hours (backlog relief or avoided contractor — not founder mythology)
  3. Peak runs per month × expected meter units on the rail you will actually use
  4. Build weeks × who is paid for them
  5. Monthly maintenance hours × loaded rate
  6. One plausible failure cleanup cost

Then:

Annual rough cost ≈ build + 12 × (tools + maintenance) + expected failures
Annual rough value ≈ 52 × (hours value + error avoidance)

InputHonest sourceFake source
Hours removedTwo weeks of timestamps“This will save 10 hours”
Hour valueWhat you would pay a contractorFounder hourly fantasy
MeterPeak week × 4.3, then add a burstQuiet Tuesday × 30
BuildCalendar weeks with a named person“Weekend project”
MaintenanceThe envelope table aboveZero
FailureYour last cleanup, or a priced rehearsal“Won’t happen”

If you cannot estimate (6) at all, do not automate irreversible steps yet. Ship behind an approval gate until you can.

Worked shape — not a quote, a skeleton:

  • Build: 2–4 weeks of paid time for a lead-routing path with spine
  • Run: vendor meter for peak month + 2–4 ops hours / month
  • Fail: one duplicate-lead week priced from your sales cleanup, not ours

If the fail number dwarfs the meter, spend the next dollar on keys and a DLQ, not a cheaper plan.

How should you compare agencies without a public rate card?

Market blogs publish wide hourly bands for n8n and automation specialists. Those bands conflict and go stale. Treat any public rate card as dated market chatter, not a quote. Spurlock Studios does not publish a public price list on this page. If you need a scoped number for your stack, that is a call.

Compare vendors and freelancers on this checklist instead:

  • Written definition of done (spine items listed, not “we’ll automate it”)
  • Staging environment and promote path
  • Idempotency / DLQ / alerts included or explicitly out of scope
  • Named handoff owner on your side
  • Credential ownership (not personal OAuth forever)
  • Post-launch support window or retainer terms
  • What happens when a vendor API changes in month four
Pitch you hearWhat to askRed flag
“Low hourly”What is in production vs happy path?Spine is “phase two”
“Fixed project”Change order rules when the CRM field movesFixed means they will skip staging
“We’ll use n8n so it’s cheaper”Who owns the box and the encryption key?Tool choice as a substitute for ownership
“Unlimited automations”Peak month + fail rehearsal included?Unlimited canvas, zero spine

A low hourly rate with “happy path only” is often the highest TCO. A higher engagement that ships boring production can be the cheaper year. Compare definition of done, then compare money.

What costs show up after month three?

The honeymoon is a green dashboard. Month three is when the real run bill arrives.

SurpriseWhy it costs moneyShape
OAuth expirySilent 401 loops until a human reconnectsRun → fail if unnoticed
CRM field renameGreen runs, empty syncsRun (mapping) + fail (missed records)
Plan overagePeak week blows the meter; Zapier can move to pay-per-task or hold runsRun
Alert muteChannel noise → everyone ignores the real pageFail, delayed
Builder leavesOrphan workflows + personal tokensBuild again
Webhook noiseEmpty bodies still count as n8n executionsRun
Iterator surpriseMake credits scale with bundles, not scenariosRun

Budget a quarter of boring ops or you will budget an emergency rebuild.

Procedure — month-three audit (half day):

  1. Export every production workflow and write the owner next to it. Orphans get paused or adopted.
  2. Rotate or replace personal OAuth with service accounts on irreversible paths.
  3. Compare last 30 days of meter units to the plan. If peak week × 5 exceeds the plan, you do not have a plan. You have a surprise.
  4. Replay one failed item from the DLQ. If you cannot, you do not have a DLQ.
  5. Mute test. Send a fake failure. If nobody responds in the SLA you claimed, the alert is decoration.

How does cost shape change by workflow class?

Do not apply one budget to every canvas. Tool share of TCO flips with blast radius.

ClassTool share of TCOBuild / spine shareFailure riskSpend bias
Internal notificationHigh relativeLowLowLight rail is fine
Content draft / queueMediumMediumMedium (brand)Gate before publish
Lead routingMediumMedium–highMedium–highSpine before speed
Multi-system syncMediumHighHighSchema + DLQ first
Invoicing / payoutsLow–mediumHighHighKeys, approvals, rehearsal

Lead and money paths deserve handbook-grade spine even if the tool bill looks tiny. Notification Zaps can stay light. The mistake is using the notification budget on the invoice path because “it’s the same tool.”

Decision list:

  1. Can a duplicate be undone in one click? If no, you are in the high-spine column.
  2. Does a miss become a customer conversation? If yes, fail cost dominates.
  3. Does the path run while you sleep? If yes, alerts and ownership are part of run, not a nice-to-have.

Is self-hosted n8n actually free?

Community n8n can be used for internal business purposes under n8n’s Sustainable Use License without a per-execution Cloud meter. That is a license fact, not a TCO fact. The license is also not “do whatever you want” — n8n documents limits around providing the software as a product. Read the license if you are embedding or reselling access.

Self-hosted still bills:

LineWhy it is not $0
Compute and storageThe box exists. Disk fills with executions.
DatabaseSQLite is a prototype default, not a production strategy
Backups and restore drillsA dump you have never restored is a story
N8N_ENCRYPTION_KEYn8n encrypts credentials with this key. Lose it and stored credentials are unreadable.
Upgrades and security patchesYou are the vendor now
ObservabilityCPU is fine; the workflow is not. You need to know which.
A humanThe box will die on a Friday

n8n’s own deploy docs tell you to set N8N_ENCRYPTION_KEY explicitly and share it across workers in queue mode. That key is a run-cost artifact. A $0 license with abandoned ops is a deferred invoice.

Checklist — self-host is cheaper this year only if:

  • Someone already owns Linux, backups, and upgrades
  • The encryption key lives off-box, not only on the server
  • You have restored from backup once
  • Volume is high enough that Cloud execution math actually hurts
  • You are not “saving money” by skipping monitoring

Otherwise Cloud is often cheaper in total cost, even when the sticker is higher. Pick the shape, not the ideology.

When is a retainer cheaper than firefighting?

Firefighting looks free until you count founder nights.

ModeLooks likeActually costsUse when
Firefighting$0 until it breaksNights, cleanup, stalled shippingOne or two reversible automations, named owner in seat, quiet volume
Reserved internal opsA calendar blockPredictable hoursA handful of production workflows, reversible + one money path
External retainerA monthly invoiceContinuity + a second brainMultiple production workflows, irreversible paths, vendor churn

Retainer (or a reserved internal ops slice) is cheaper when:

  • You have more than a handful of production workflows
  • Irreversible paths exist
  • Vendors change APIs faster than your team reads changelogs
  • Last quarter included two or more “everything stopped” weekends

Firefighting is cheaper when the list is short, reversible, and owned. Decision rule: if you cannot name who gets the 2am page, you are already on a retainer. You just have not paid it yet — the founder is the vendor.

This is still not a Spurlock retainer SKU. It is the shape. Price the hours you already spend, then decide whether to keep them internal.

What should you refuse to automate until spine exists?

Some paths are cheap to canvas and expensive to own. Refuse autonomy — not the experiment — until the spine list is checked.

Refuse to put on a live trigger:

  1. Card charges, payouts, refunds
  2. Customer-facing email / SMS that cannot be unsent
  3. CRM writes that trigger other automations (fan-out)
  4. Inventory or booking that can double-commit
  5. Deletes

Ship those behind an approval gate. The gate is a run cost (a human click). It is almost always cheaper than the fail cost of a retry storm. Stripe’s webhook docs assume you will see duplicates. Your workflow should assume the same even when the vendor is not Stripe.

PathAllowed without spineRequired before autonomy
Draft to a queueYesOwner + “this is a draft” label
Internal SlackYes, if reversibleMute rules so the channel stays alive
CRM createStaging onlyIdempotency key + unique constraint
Invoice / chargeNeverKeys, rehearsal, named on-call
Fan-out (A writes B writes C)NeverMap the graph; kill loops

The bias after 20,000+ hours architecting agentic systems and 35,000+ hours of client busywork deleted: spend on spine and ownership before you spend on a fancier rail. Cheap tool + no owner + irreversible write is the expensive option, every time.

FAQ

Is self-hosted n8n free?

The Community license can be free of per-execution fees for internal use under n8n’s Sustainable Use License. Hosting, backups, upgrades, monitoring, the encryption key, and operator time are not free. If nobody owns those, Cloud is often cheaper in total cost.

How do Zapier tasks vs Make operations vs n8n executions change the bill?

They meter different things. Zapier charges successful action steps, with documented multipliers on some products. Make charges credits — usually one per non-AI operation per bundle, more for some AI and Code modules. n8n Cloud charges production workflow runs, not nodes. Model your peak month against the unit, then verify current plan prices on the vendor site.

Should I compare agencies on hourly rate or on a definition of done?

Definition of done. Rate without spine scope, staging, alerts, and handoff is fiction. Ask what “production” includes before you compare numbers. This page is not a Spurlock rate card.

What costs show up after month three?

Credential expiry, schema drift, plan overages, muted alerts, orphan workflows, and ownership gaps. Those are maintenance and failure costs — not line items on the original quote. Budget a boring ops envelope or you will budget a rebuild.

How do I estimate cost without a fake ROI spreadsheet?

Use observed hours, honest hour value, meter peak, build weeks, maintenance hours, and one real failure cleanup. Ranges beat false precision. Pair with the ROI post for the value side.

When is a retainer cheaper than firefighting?

When you run multiple production workflows, irreversible paths, or repeated emergency weekends. A retainer buys continuity. Firefighting buys adrenaline and cleanup debt. If you cannot name the 2am owner, you are already paying a hidden retainer.

CTA

Budget the shape — build, run, fail — or the tool sticker will lie to you.

For the production spine, keep the handbook open. When you want a scoped cost conversation for your stack, use automation or book a call.

FAQ

What questions does this article answer?

Is self-hosted n8n free?
The Community license can be free of per-execution fees for internal use under n8n's Sustainable Use License. Hosting, backups, upgrades, monitoring, the encryption key, and operator time are not free. If nobody owns those, Cloud is often cheaper in total cost.
How do Zapier tasks vs Make operations vs n8n executions change the bill?
They meter different things. Zapier charges successful action steps, with documented multipliers on some products. Make charges credits — usually one per non-AI operation per bundle, more for some AI and Code modules. n8n Cloud charges production workflow runs, not nodes. Model your peak month against the unit, then verify current plan prices on the vendor site.
Should I compare agencies on hourly rate or on a definition of done?
Definition of done. Rate without spine scope, staging, alerts, and handoff is fiction. Ask what "production" includes before you compare numbers. This page is not a Spurlock rate card.
What costs show up after month three?
Credential expiry, schema drift, plan overages, muted alerts, orphan workflows, and ownership gaps. Those are maintenance and failure costs — not line items on the original quote. Budget a boring ops envelope or you will budget a rebuild.
How do I estimate cost without a fake ROI spreadsheet?
Use observed hours, honest hour value, meter peak, build weeks, maintenance hours, and one real failure cleanup. Ranges beat false precision. Pair with the [ROI post](/blog/automation-roi-calculator-mindset) for the value side.
When is a retainer cheaper than firefighting?
When you run multiple production workflows, irreversible paths, or repeated emergency weekends. A retainer buys continuity. Firefighting buys adrenaline and cleanup debt. If you cannot name the 2am owner, you are already paying a hidden retainer.
Sources

Last reviewed

More from this lane

Automation

All →
Book the audit