Automation ROI Without Fantasy Spreadsheets
Calculate automation ROI from observed hours, honest hour value, failure cost, and maintenance — not a fantasy spreadsheet that invents weekly savings numbers.
William Spurlock Founder — Spurlock Studios Updated 22 MIN
Most automation ROI decks assume the happy path runs forever, maintenance is free, and every saved minute converts to cash at the founder’s fully loaded rate. That is how you justify a workflow that creates more Slack noise than margin.
This is the ROI mindset we use at Spurlock Studios before we open n8n. It is not a public calculator that spits invented weekly savings. It is a one-page sheet, two weeks of observation, and a gate: build, pilot, skip, or kill. It pairs with the build discipline in the Production n8n handbook. The bill you will actually pay — build, meters, maintenance, cleanup — lives in how much automation costs. This page is the value side of that pair.
The short answer
- Observe first. Frequency, median minutes, named role, error rate. Calendars and tickets, not vibes.
- Value hours by destination. Overloaded queue, unpaid night grind, or a hire you were about to make. Not
$founderRate × theoreticalMinutes. - Price failure. Retries, duplicates, missed SLAs, cleanup. Stripe says webhook endpoints can receive the same event more than once.
- Subtract the keep. Build, weekly maintenance, tool meters, attention tax.
- Gate, do not IRR-cosplay. Build, pilot with a human in the loop, skip, or kill. Precision to the cent is theater.
What is an automation ROI calculator actually for?
It is a decision aid, not a product. If a vendor form asks for “hours saved” and “hourly rate” and returns a glowing annual number, it is marketing. Your internal sheet should be boring enough to trust.
OMB Circular A-94 is federal benefit-cost guidance, not an SMB playbook — and it still names the principle most decks skip: benefits and costs are worth more if they are experienced sooner, so you discount later flows instead of treating year-three fantasy as cash in hand. For a studio workflow, that means a measured payback inside the process’s likely stability window beats a 36-month NPV with no owner.
The GAO Cost Estimating and Assessment Guide calls a reliable estimate comprehensive, well-documented, accurate, and credible — and it tells you to update the estimate with actuals. A 14-tab model that never gets a measured hour fails accurate and credible on arrival.
| Artifact | What it is | What it is not |
|---|---|---|
| One-page ROI sheet | Terms, owner, review date, kill line | A public savings calculator |
| Two-week observation | Frequency, minutes, role, errors | A vibe about “the team hates this” |
| Decision gate | Build / pilot / skip / kill | A vanity IRR for the board deck |
| Trailing measurements | Hours, rework, mute signals | A year-one forecast you never revisit |
If the savings only exist in a forecast tab, you do not have ROI yet. You have a wish.
How do you calculate automation ROI without lying?
The only equation we will put a straight face on:
Weekly value = (hours removed × value of those hours) + (error cost avoided) − (weekly maintenance + tool cost + attention tax)
Then ask whether build hours pay back inside the window the process will stay stable. If you cannot estimate a term without inventing precision, you are not ready to automate. You are ready to observe.
Procedure before any canvas:
- Name one process, not a department.
- Track it for two weeks with artifacts (calendar blocks, ticket timestamps, send logs).
- Write the hour-value basis in a sentence a skeptic can attack.
- Write one typical failure and what it costs to clean.
- Write weekly keep: maintenance minutes, tool meter, approval/alert load.
- Pick a gate. Do not average your way to “yes.”
| Term | Honest input | Fantasy input |
|---|---|---|
| Hours removed | Median minutes × observed frequency | “About half a day, probably” |
| Hour value | Named queue or avoided hire | Founder rate × every minute |
| Error cost | Last cleanup you can point at | “We’ll catch it” |
| Maintenance | Minutes you will actually spend | Zero, “it just runs” |
| Tools | Metered unit on a peak week | Sticker price on a quiet week |
| Attention | Alerts × seconds × role, plus mute risk | Ignored |
Spurlock Studios has shipped 500+ automations. The decks that later look foolish almost always invented the first column from the second.
How do you measure the work as it exists?
Industrial work study is older than n8n. The ILO’s Introduction to Work Study treats time study as recording times and rates for a specified job under specified conditions — not guessing from a standup. You do not need a stopwatch certification. You need two weeks of evidence.
Track, for each occurrence:
- Frequency (times / week)
- Median minutes, not the heroic best case
- Who does it (role and name, not “the team”)
- Error rate and the cost of a typical error
- Whether the work already gets skipped on busy weeks
| Source | Use it for | Discard it when |
|---|---|---|
| Calendar holds | Recurring blocks that actually happen | Holds that exist so nobody books you |
| Ticket / inbox timestamps | Cycle time and rework loops | Open tickets with no close time |
| Send / export logs | True frequency | “We do this every day” with three sends |
| Payroll / contractor invoices | Who is paid to do it | A founder doing it “for now” with no log |
Checklist before you trust the hours:
- Two weeks of artifacts, not a retrospective estimate
- Median minutes, not the demo speed
- A named human, not a function
- Errors counted, not assumed away
- A note on work people already skip
A two-week log can be ugly and still be useful. Copy this and fill it from artifacts, not from memory:
Week of:
Occurrence # / date / time started / time ended
Minutes (clock, not "felt"):
Who (name + role):
Outcome (done / skipped / reworked):
Error? (what broke, minutes to clean):
Would we have skipped this on a busy day? (y/n)
Ten rows of that beat a single “we spend half a day on this.” If the log shows the work already gets skipped, those hours were never going to convert to cash — they were already optional. Count them as optional, or you will automate a chore nobody was doing.
If nobody will track for two weeks, the process is probably not painful enough to automate yet. That is a valid ROI result.
How do you value hours without founder mythology?
Not every saved hour becomes billable revenue. Some hours return to a queue. Some were unpaid grind. Some would have become a hire. Some evaporate into Slack.
The BLS Employer Costs for Employee Compensation release for March 2026 put civilian employer compensation at $49.32 per hour worked — $33.72 wages and salaries, $15.60 benefits. That is a national average across occupations, not your closer’s loaded cost, and not a license to bill theoretical minutes at a founder rate. Use it as a sanity check: if your sheet implies every recovered minute is worth three times civilian compensation, write down why.
| Basis | When it is honest | When it is theater |
|---|---|---|
| Backlog value | A named queue is clearly overloaded and the hours return there | “We’ll be more strategic” |
| Night / weekend value | The work was unpaid grind you can point at | Counting evenings people already stopped doing |
| Avoided hire / contractor | You were actually about to pay for capacity | A hypothetical headcount two years out |
| Loaded role cost | You can show wage + benefits for that role | BLS average pasted onto a founder |
| Revenue attribution | A metric you already measure (speed-to-lead, cycle time) | “This router added pipeline” |
Prefer “we get four hours of SDR time back to outbound” over “$350/hr × 0.3.” The first sentence can be checked in a week. The second cannot.
Decision list for the hour-value cell:
- Write the destination of the time in one sentence.
- If the destination is “focus,” stop. That is a soft benefit. Track it separately.
- If the destination is a queue, name the queue and the person who will notice.
- If the destination is “don’t hire,” attach the actual contractor or job req, or drop the claim.
How do you price failure instead of assuming it is free?
Automation can reduce errors or multiply them. Failure cost is a line item, not a footnote.
Stripe’s webhook docs are the clearest public example: live-mode delivery retries for up to three days with exponential backoff, and endpoints might receive the same event more than once. A handler that creates an invoice on every delivery will create several invoices if the first attempts time out. That cleanup is ROI. So is the customer email that follows.
NIST SP 800-61 Rev. 3 (April 2025) treats incident response as an organizational activity across the CSF 2.0 functions — Govern through Recover — not as “whoever built the Zap.” If you cannot name the human who handles a bad run, you do not have a failure-cost estimate. You have an orphan.
| Failure | What it costs | What the sheet needs |
|---|---|---|
| Duplicate invoice / charge / email | Refunds, credits, trust, cleanup hours | Last incident you can describe |
| Missed SLA | Penalty, lost deal, or a founder apology tour | The SLA text and the last miss |
| Poison payload / partial write | Reconstructing a CRM row by hand | Whether you can pause and replay |
| Muted alerts | The incident you discover late | Who is allowed to mute, and why they did |
Production spine — idempotency, a dead-letter path, schema checks, a human on irreversible sends — exists to keep this term from exploding. That spine is specified in the Production n8n handbook. It raises build hours. It is usually the reason the weekly value stays positive.
Price one bad week before you celebrate a cheap canvas. If you cannot describe the bad week, you are not pricing failure. You are hoping.
What belongs in build, run, and attention cost?
The companion post is the cost shape. Steal its buckets, then refuse to leave any of them at zero without a sentence.
n8n is explicit about the meter: an execution is a single run of a workflow, and on paid plans production executions count toward quota. The n8n pricing page is the source of truth for plan limits — not a blog screenshot from last year. Cloud versus self-hosted is a hosting decision, not an ROI miracle: Community can drop a per-execution fee and still leave you hosting, backups, patches, and an owner.
Zapier meters tasks. Make meters credits. Same canvas, different unit. Price a peak week, not a quiet one. Details and current public tiers belong on the cost post.
| Cost | What to include | What people omit |
|---|---|---|
| Build | Discovery, happy path, spine, staging, docs, handoff | “We’ll click it together Friday” |
| Maintenance | Vendor field renames, prompt/rule tweaks, credential rotation | Month two onward |
| Tools | n8n plan or hosting, enrichment APIs, mailbox / CRM seats the bot needs | Overage on the first burst |
| Attention | Approvals, alert triage, “is it still running?” | The founder checking the canvas at 11pm |
A workflow that “saves two hours a week” and needs ninety minutes of babysitting is a decoration. Write the ninety minutes down.
When is automation worth it?
Worth it when the path is frequent and rule-shaped, humans still do it wrong sometimes, you can name the owner after handoff, and you can afford production spine — not just demo nodes.
Not worth it when you plan to redesign the process next month, every run needs taste or negotiation, the only beneficiary is a dashboard nobody reads, or you cannot pause the thing safely.
| Signal | Build bias | Skip / wait bias |
|---|---|---|
| Frequency | Several times a week, stable | Sporadic, or already skipped |
| Shape | Rules you can write down | Negotiation or taste every time |
| Failure | Recoverable, or gated by a human | Irreversible and unowned |
| Owner | Named, still employed next quarter | “The team” / a freelancer offline |
| Stability | Process will hold for the payback window | Redesign already on the calendar |
| Pause | You know how to stop it | Credentials in a personal Gmail |
Checklist — automate only if you can tick these:
- Two weeks of observed frequency and minutes
- Hour-value basis written in a sentence
- One priced failure
- Named owner for credentials and alerts
- A pause path that does not require the builder
- Spine budgeted on any irreversible write
If you fail two of those, wait. Waiting is an ROI decision.
Why is a decision rule better than a vanity IRR?
Internal rate of return looks serious in a slide. It also hides invented precision. We use gates.
| Gate | When we use it |
|---|---|
| Build | Observed weekly hours are material on a stable, rule-shaped path, and failure is recoverable or already gated |
| Pilot with a human in the loop | Hours are medium or error cost is high; autonomy is earned, not assumed |
| Skip | Process changes weekly, politics are unresolved, or nobody will own it |
| Kill | After the review date, measured savings lose to maintenance, or the owner resigns the workflow |
We will not publish a universal “hours per week” threshold as if it were a study result. Directionally, a process that cannot show a few hours a week of observed load rarely clears build after you subtract keep. A process that can show that load and still has no owner still fails the gate.
OMB A-94 Appendix C for calendar year 2026 publishes Treasury-based discount rates for federal cost-effectiveness work. You do not need those rates on an SMB invoice draft. You need the habit they encode: later, shakier benefits are worth less than near, measured ones. A six-week payback on a process you will keep beats a three-year model on a process you will rewrite.
Write the stability window on the sheet as a date range, not a vibe. “This invoice path will look like this through Q2” is a claim you can revisit. “This is how we work” is not. If the window is shorter than payback, the gate is skip — even if the weekly hours look fat.
Precision to the cent is theater. Directionally correct gates ship better systems.
How do you keep efficiency ROI separate from growth ROI?
Two different claims. Mixing them in week one is how a draft-invoice bot gets credit for a marketing campaign.
Efficiency ROI: hours and error cost removed from a process that already exists.
Growth ROI: faster response or higher throughput that may increase revenue — a hypothesis with a metric and a review date.
| Claim | Metric you can defend | What you may not do |
|---|---|---|
| Efficiency | Observed hours, rework rate, cleanup incidents | Convert every minute to revenue |
| Growth | Speed-to-lead, assign time, connect rate you already track | Attribute all pipeline to a router |
| Soft | Frustration, consistency, compliance completeness | Hide a maintenance sink behind “culture” |
Prove efficiency first. Treat growth as a hypothesis. If the growth metric does not move by the review date, the workflow can still be a good efficiency build — or a kill. It cannot be both “we saved time” and “we 10בd pipeline” without two separate rows.
What is the attention tax, and why does it kill the math?
Every approval ping, noisy alert, and broken enrichment is a tax. Approximate it:
- Count alerts per week × estimated seconds × role value
- Add a context-switch penalty if alerts land during deep-work blocks
- Count mutes and bypasses as a leading indicator, not as “adoption”
The Joint Commission’s Sentinel Event Alert 50 is a hospital alarm document, not an n8n manual. The mechanism travels: a flood of low-value signals trains people to turn the volume down, turn the device off, or ignore the tone. Mute is the market speaking.
| Attention signal | Read it as | Do not read it as |
|---|---|---|
| Channel muted | Tax exceeded value | “They’ll get used to it” |
| Shadow spreadsheet returns | Humans bypassed the bot | “Change management” as a shrug |
| Founder still babysits the canvas | You bought a decoration | “Hands-on leadership” |
| Approvals pile up past SLA | Gate is mis-set or the path is wrong | Proof the human is the problem |
If attention tax approaches savings, redesign notifications before you build the next workflow. More nodes will not fix a channel nobody reads.
How should you account for a pilot?
A pilot that cannot produce measurements should not become a permanent fixture. Track four numbers and decide in public.
| Pilot number | What you record | What you do with it |
|---|---|---|
| Build hours (actual) | Time to first gated production run | Compare to the sheet, not the sales call |
| Pilot maintenance | Minutes per week to keep it alive | If this is the “savings,” stop |
| Measured hours saved | Same method as the two-week baseline | No new methodology at week four |
| Incidents | Duplicates, misses, mutes, bypasses | One serious unowned incident can kill the pilot |
Decide scale-up with those four. Options:
- Promote — measurements beat keep, owner is still named, spine is in.
- Keep gated — efficiency is real, autonomy is not earned.
- Rework — the path is right, the alerts or mappings are wrong.
- Kill — the sheet lost. Write down why so the next candidate is cleaner.
Do not “graduate” a pilot because the demo was pretty.
Early after launch, dollars may lag. Watch the process, not the forecast tab. NIST SP 800-37 Rev. 2 is the Risk Management Framework: authorize, then continuously monitor. You do not need a federal ATO. You need the habit — the sheet is not done at launch.
| Indicator | Healthy | Fiction |
|---|---|---|
| Median cycle time | Down versus the two-week baseline | Unmeasured, “feels faster” |
| Error / rework rate | Down, with a counted denominator | “We haven’t heard complaints” |
| Approval SLA | Met, or the gate is tightened on purpose | Approvals rotting in a private inbox |
| Mute / bypass | Absent, or explained and fixed | Shadow sheet is “just easier” |
| Dead-letter age | Young, triaged, owned | A pile nobody opens |
If cycle time drops and rework drops, financial ROI usually follows. If humans bypass the bot, your theoretical hours saved are fiction. Write the review date on the sheet before you publish the workflow.
Should you build, buy, or wait?
ROI can say “yes, automate” and still say “not in a custom canvas.”
| Option | When | ROI note |
|---|---|---|
| Build in n8n | The process is yours, rules are clear, integration oddities exist | Budget spine, not just nodes |
| Buy the SaaS feature | The vendor already solved it inside the system of record | Sticker is still not total cost; owner still required |
| Wait | Redesign is imminent or ownership is unclear | Waiting is cheaper than automating a process you will delete |
Automating a process you will delete next quarter is how ROI goes negative with confidence.
Decision list:
- If the system of record already has the button, price that button first.
- If the button exists and still needs five humans to babysit it, you do not have a buy win. You have a process problem.
- If the process will change under you, wait. Custom nodes will not freeze a redesign.
- If you build, you still owe the one-page sheet. A custom canvas does not get a pass on observation.
One workflow’s ROI can look weak while a cluster shares spine costs: error workflow, dead-letter table, credential store, alerting. Amortize platform setup across the first three production workflows, not the first demo. A “cheap” fifth workflow that reuses nothing and needs custom babysitting can be ROI-negative even if the happy path is short. Prefer templateable patterns — lead intake, draft invoice, content draft — each reusing the same controls from the handbook.
| Move | Portfolio effect | Single-workflow trap |
|---|---|---|
| Shared error path | Spine cost spreads | Each canvas invents its own mute channel |
| Shared credentials | Rotation is one job | Personal OAuth on workflow five |
| Shared schema checks | Failures look the same | Every payload is a special case |
| Shared pause runbook | One owner can stop the fleet | Only the builder knows the off switch |
Sequence matters. Automating a politically contested process first burns trust. Sometimes the highest-ROI move is a boring reconciliation sync nobody argues about, which funds goodwill for the harder lead-routing project later. Opportunity cost is a line.
How do you communicate ROI — and write kill criteria at launch?
Executives want outcomes, not node counts. Report:
- Hours returned to named teams
- Incidents avoided (duplicates, late invoices) that you can count
- Speed metrics you already tracked before the bot
- Cost to keep (tools + maintenance hours + attention)
Avoid sci-fi annual projections. Show trailing measured weeks and a conservative next-quarter forecast that uses the same method as the baseline.
Killing a workflow is a successful ROI decision. Zombie automations are a tax.
Example kill criteria — write yours, do not copy these as law:
- Maintenance exceeds half of measured weekly savings for four consecutive weeks
- A critical incident caused by the workflow with no fix in fourteen days
- Owners resign responsibility and no replacement is named
- Process changes make the rules invalid and nobody updates them
| Audience | Show them | Do not show them |
|---|---|---|
| Operator | Cycle time, DLQ age, mute count | A 36-month IRR |
| Finance | Keep vs measured hours, one priced failure | Founder-rate mythology |
| Executive | Named-team hours, incidents, speed | Node screenshots |
| Builder | Kill line, owner, pause path | “We’ll know it when we see it” |
If you cannot say out loud what would make you turn the workflow off, you are not managing ROI. You are collecting pets.
If you book an automation call, the useful prep is the sheet — even half-filled: one process, frequency and minutes (or a plan to observe them), where it breaks today, who will own it, and what “pause” means operationally. We will tell you to build, pilot, or wait — including wait. Do not bring a 14-tab model with invented savings and an empty owner cell.
What does a one-page ROI sheet look like?
This is the whole “calculator.” Fill it before build. Update it at the review date with measurements. No invented weekly savings — leave a cell blank rather than guess a dollar.
Process:
Owner:
Pause path:
Frequency / minutes (observed, two weeks):
Weekly hours (median, not best case):
Hour value basis (one sentence):
Error cost / week (last cleanup you can name):
Expected savings % (conservative, or blank):
Build hours (estimate → actual):
Weekly maintenance (estimate → actual):
Tooling / week (meter + hosting, peak-aware):
Attention tax (alerts × time, mute risk):
Spine included? (idempotency / DLQ / schema / HITL):
Efficiency metric:
Growth hypothesis (or "none"):
Review date:
Kill criteria:
Gate: build / pilot / skip / kill
How to fill it without lying:
- Leave dollar cells empty until the hour-value sentence exists.
- Put ranges where you must (
maintenance 15–40 min/week), not fake precision. - Record actuals in the same cells at review. Strike the estimate; do not keep both as if they agreed.
- If a cell is still a guess at review, the gate is skip or kill, not “ship anyway.”
That sheet is more honest than any public ROI widget that asks for two numbers and prints a hero metric.
We will not put a straight face on “10× pipeline in 30 days” without instrumentation, savings that assume zero maintenance, ROI that ignores failure blast radius, founder-rate hour value with no destination, or a vendor calculator’s output used as an internal fact. If a vendor deck needs those claims, it is marketing.
| Request | Response |
|---|---|
| “Just give me a number for the board” | Here is the sheet. Here is what is measured. Here is what is still a guess. |
| “What’s the ROI of n8n?” | n8n is a rail. ROI is a process. Pick one process. |
| “Can you model 10×?” | Not without a metric you already collect. |
| “Maintenance is basically zero, right?” | Then write zero, sign it, and own the incident. |
The 35,000+ hours we have saved for clients is an aggregate across a book of work, not a number this sheet will print for your invoice draft. Do not paste studio receipts into a single-workflow cell.
FAQ
How do I calculate automation ROI?
Estimate weekly hours removed from two weeks of observation, value those hours by where they actually return, add error costs you can point at, and subtract maintenance, tooling, and attention. If you cannot fill a term without inventing a decimal, observe longer. Do not use a public calculator’s annual hero number as an internal fact.
When is automation worth it?
When the work is frequent, stable, and rule-shaped, failure is recoverable or gated, and a named person will own the workflow after handoff. If politics or process design are unsettled, fix those first. Waiting is an ROI decision, not a stall.
Should I include build cost in ROI?
Yes. Amortize build over a realistic life — often the window you believe the process will stay stable, commonly months rather than a theatrical five-year life for an SMB workflow. If payback exceeds that window, skip or shrink scope. Spine on irreversible paths is part of build, not an optional upgrade.
What if soft benefits are the real win?
Track them separately: speed-to-lead, employee frustration, compliance consistency. Soft benefits can justify a pilot with a review date. They should not hide a maintenance sink or replace a priced failure. If the only win is “it feels modern,” you do not have ROI.
Do I need a fancy calculator spreadsheet?
No. A one-page table with the terms in this post beats a 14-tab model. Revisit it on the review date with measured hours, not projected ones. If a vendor widget asks for two inputs and prints a glowing annual figure, treat that figure as marketing.
How does production discipline change ROI?
It increases build cost and cuts failure and babysitting cost. Skipping the spine is how “cheap” automations become expensive — duplicate side effects, muted channels, a CRM row you cannot trust. The Production n8n handbook is the spine; this page is whether the process earns that spine.
CTA
Automate what earns its keep. Leave the rest manual without guilt.
For the build standards behind the math, read the Production n8n handbook. For the cost shape that sits next to this sheet, read how much automation costs. For help picking the first workflow that clears the gate, start at automation or book a call.
What questions does this article answer?
- How do I calculate automation ROI?
- Estimate weekly hours removed from two weeks of observation, value those hours by where they actually return, add error costs you can point at, and subtract maintenance, tooling, and attention. If you cannot fill a term without inventing a decimal, observe longer. Do not use a public calculator's annual hero number as an internal fact.
- When is automation worth it?
- When the work is frequent, stable, and rule-shaped, failure is recoverable or gated, and a named person will own the workflow after handoff. If politics or process design are unsettled, fix those first. Waiting is an ROI decision, not a stall.
- Should I include build cost in ROI?
- Yes. Amortize build over a realistic life — often the window you believe the process will stay stable, commonly months rather than a theatrical five-year life for an SMB workflow. If payback exceeds that window, skip or shrink scope. Spine on irreversible paths is part of build, not an optional upgrade.
- What if soft benefits are the real win?
- Track them separately: speed-to-lead, employee frustration, compliance consistency. Soft benefits can justify a pilot with a review date. They should not hide a maintenance sink or replace a priced failure. If the only win is "it feels modern," you do not have ROI.
- Do I need a fancy calculator spreadsheet?
- No. A one-page table with the terms in this post beats a 14-tab model. Revisit it on the review date with measured hours, not projected ones. If a vendor widget asks for two inputs and prints a glowing annual figure, treat that figure as marketing.
- How does production discipline change ROI?
- It increases build cost and cuts failure and babysitting cost. Skipping the spine is how "cheap" automations become expensive — duplicate side effects, muted channels, a CRM row you cannot trust. The [Production n8n handbook](/blog/production-n8n-automation-handbook) is the spine; this page is whether the process earns that spine.
Last reviewed
Automation
Automation Why doesn’t worker concurrency cap my n8n sub-workflows
Worker concurrency does not cap n8n sub-workflows. Each Execute Workflow child is a new execution the production limit skips, usually on the parent worker.
Automation When does Continue on Fail hide real API errors in n8n
Continue on Fail hides real API errors when the node fails but the run stays green. Error Workflow never fires; last-valid data often walks into the next write.
Automation Why is one giant n8n canvas a production liability
One giant n8n canvas is a production liability because debug, credentials, retries, and deploys share one blast radius. Split it with named contracts.
Automation The First Automation a Small Business Should Ship
Ship intake and onboarding first: form to CRM, confirmation, one nudge. DIY reversible writes; buy the $500 Automation Audit when a first bot can spam clients.
Will's Journal in your inbox.
What I learned this week building for shops, floors, and houses.
You're on the list.
Sign-up failed — try again.
By subscribing, you agree to the Privacy Policy.