We screen-share the Sheet, the inbox, and the ugly exceptions. I write the happy path and the ‘this row is weird’ path before any nodes.
02
Build it in n8n where you can see it
Triggers, filters, AI where it earns its keep, notifications you will actually read. Credentials stay in your instance.
03
Break it on purpose
Bad phone numbers, duplicate leads, API timeouts. Error branches and a Slack/WhatsApp ping so it never fails silently.
04
Hand over the graph
Loom walkthrough, node notes, and how to pause it. Optional care if you want me watching the executions.
Systems I shipped — names stay off the page
Client work sits under NDA. No live URLs, no brand names. What you see below is the system, the metro, and the numbers — enough to judge the work without putting another owner on blast.
Multi-location med spa · Miami, FL
3 weeks to production
Consult leads stopped dying in a shared inbox
Four front desks, one Sheet, and Instagram DMs pasted by hand. Hot leads waited overnight. Nobody knew who had followed up.
What shipped
Webhook from the booking form + a nightly IG export into n8n
OpenAI to tag service (Botox, laser, membership) and campus
Round-robin Slack + SMS to the right desk, with a 15-min SLA ping
Sheet as the source of truth, not a graveyard
Outcome
Same-day response on consults became the default, not a heroics story
Managers finally saw unworked rows instead of hearing about them
No new CRM — they kept the Sheet they already lived in
Residential contractor · Denver, CO
10 days
Invoices that used to sit 40 days now get a nudge on day 7
The office manager spent Friday on reminders. Duplicate emails, wrong amounts, and a QuickBooks tab that never matched the Sheet.
What shipped
Scheduled n8n pass over the invoice tab
Idempotent ‘last_pinged’ so a retry cannot double-send
Gmail at 7 days, WhatsApp at 14, HTTP flag into accounting at 30
Failure path to Slack when a send bounces
Outcome
Collections cycle shortened by weeks, not days
Friday reminder ritual went away
Owner can open the graph and see exactly what fires
Independent insurance agency · Columbus, OH
2 weeks
Review asks and policy follow-ups without another coordinator hire
Producers closed policies and forgot to ask for Google reviews. Renewals lived in a color-coded Sheet that only one person understood.
What shipped
Nightly pull of ‘closed this week’ rows
Review SMS/email with a 90-day de-dupe window
Renewal reminder 45 / 20 / 7 days out
Human skip flag so awkward accounts never get the template
Outcome
Review velocity without nagging producers
Renewal outreach actually happened on the calendar
Graph handed to the office manager with node notes
From people who were the integration
“I was the integration. Form to Sheet to the group chat, every morning. Subhan built the n8n flow, showed me how to drag the nodes, and now emergencies hit my WhatsApp while I’m on a roof. The Sheet is still there — it just updates itself.”
Derek H.
Owner, HVAC
Dallas, TX
“We did not want another CRM. He automated the Sheet we already had, with error messages I can understand. When a row is weird it pings me instead of failing quietly. That is the whole job.”
Priya S.
Office manager
Orlando, FL
“Invoice chasing was a Friday personality test. The workflow is boring in the best way. $500 starter covered the first reminder path; we extended it when we saw it working. No mystery SaaS invoice.”
Colin W.
Principal, contracting firm
Denver, CO
“He talks like someone who has actually broken a Google Sheets quota at 11pm. Retries, de-dupe, a skip flag for awkward clients. The NDA is why I cannot show you the instance. The graph is why I paid.”
Anita L.
Agency owner
Columbus, OH
Before you send the Sheet
Send the ugly spreadsheet.
WhatsApp the Sheet screenshot or a Loom of the copy-paste ritual. I will tell you if it is a $500 workflow or a custom system — before anyone writes a node.