Work  /  Sector

Home services & construction.

Contractors, trades and field-service businesses. The whole business is the lead — getting it, answering it inside the first minutes, booking it, and chasing it until it closes.

44 automations counted in this sector 3 delivered · 4 built · 1 platform

Lead-to-Cash CRM · Update Leads Sheets — the hub every lead source calls

13 nodes · 12 connections · live

  1. When Executed by Another WorkflowCalled by Website Form Intake
  2. Normalise Lead
  3. Look Up Existing Email→ no match in 15 min
  4. Dedupe Guard→ pass
  5. Append Lead Row
  6. Find Appended Row
  7. Load All Lead IDs
  8. Build Lead ID
  9. Write Lead ID
  10. Notification Payload
  11. Call 'Gmail Welcome'
  12. Call 'Internal Lead Alert'
  13. Call 'SMS Confirmation'
> Called by Website Form Intake
> Normalise Lead
> Look Up Existing Email → no match in 15 min
> Dedupe Guard → pass
> Append Lead Row · Find Appended Row
> Load All Lead IDs · Build Lead ID
> Write Lead ID · Notification Payload
> Call 'Gmail Welcome' · 'Internal Lead Alert' · 'SMS Confirmation'

Node names and topology from the exported workflow JSON; layout redrawn for the page. This is the only workflow allowed to write to the Leads tab — which is what makes “no source bypasses the CRM” a property rather than a promise.

Scroll runs the hub

01 — The lead’s path

  • A lead arrives8 sources · one hubCRM
  • Answered in minutesemail · SMS with consent · LSA replyCRM · LSA
  • Qualified, not guessedreal slots · four things confirmedLSA
  • BookedHouseCall Pro · visit remindersLSA · CRM
  • Chased until it closesDay 3 / 5 / 7 / 14 / 21 / 30CRM
  • Won, and taught backoffline conversions → Google Ads · MetaCRM

Two delivered systems cover that path end to end. The third points outward: it finds construction businesses and runs the email sequence that stops itself when someone replies.

02 — Delivered here

03 — Built for the sector

Four built systems name this sector. The workflow JSON is in the repo and imports into n8n; the node counts are taken from it.

AI Front Desk — Missed Calls, After Hours, and Booking
Home services · Clinics · Salons · Dental · Legal
The call you cannot take gets answered anyway — qualified, booked into your real calendar, and written into your CRM before you are back in the van.
64 nodes · 5 workflows
counted from the JSON in the repo
Twilio · OpenAI
Built
Invoice & Document Intake into Your Accounting System
Construction · Wholesale · Professional services · Property · Logistics
Invoices arrive as email attachments and end up in Xero or QuickBooks correctly — extracted, arithmetic-checked, matched to a PO, deduplicated, and posted.
78 nodes · 5 workflows
counted from the JSON in the repo
OCR · OpenAI · Xero / QuickBooks · Slack
Built
The Weekly Number, Assembled and Sent
Agencies · Home services · E-commerce · SaaS
Ad spend, leads, close rate and revenue reconciled into one row a week in a sheet you own — with the arithmetic shown, not a vibe.
50 nodes · 5 workflows
counted from the JSON in the repo
Slack
Built
CRM Rebuild & Migration, With the Automations On Top
Home services · Agencies · B2B services · Real estate
One object model, migrated with a dry run and a rollback file, then the routing, follow-up and reporting rebuilt on top of it.
80 nodes · 5 workflows
counted from the JSON in the repo
GoHighLevel · Pipedrive
Built

And one platform

For contractors spending $5–20K a month on Google Ads.

A freeze means something different to a plumber than to a roofer, so bids move per trade against live forecasts, and won jobs are attributed back to the click that produced them.

adwash.ailive

AdWash

Writes the ads, launches them, adjusts bids against live weather, watches spend against plan limits, and attributes booked revenue back to the click.

23workspaces
90campaigns
~$234Kad spend tracked
Measured against the live database, 2026-09-04adwash.ai

04 — Tools in this sector

Automation & AI

  • n8n · in 7 systems
  • Google Gemini · in 1 system
  • OpenAIOpenAI · in 2 systems
  • ElevenLabs · in 1 system
  • SkyvernSkyvern · in 1 system
  • TwilioTwilio · in 2 systems
  • GoHighLevelGoHighLevel · in 1 system

Channels & data

  • Google Sheets · in 4 systems
  • Gmail · in 3 systems
  • Google Ads · in 4 systems
  • Meta · in 2 systems
  • Google Calendar · in 1 system
  • HubSpot · in 1 system
  • CallRailCallRail · in 1 system
  • HouseCall ProHouseCall Pro · in 1 system
  • ApifyApify · in 1 system

The product

  • Next.js · in 1 system
  • TypeScript · in 1 system
  • Prisma · in 1 system
  • PostgreSQL · in 2 systems
  • Stripe · in 2 systems

Hover a markTap a mark to see how many of the eight systems in this sector use it. Marks are the vendors’ own, set in one ink; a tool without a published mark is set in type.

05 — What it guards against

A model that is enthusiastic about a conversation cannot, on its own, put a job in the CRM.

  • Consent is an allowlist

    The string “no” is truthy in JavaScript. A truthiness check would have opted in every customer who explicitly opted out.

  • Four things before a booking

    Time confirmed, booking accepted, address given, technician agreed — all four, or nothing is created.

  • Availability is real, not claimed

    Two-hour slots are built from the next seven days in the field-service CRM. The agent only ever offers a slot the CRM confirmed.

  • Never answered twice

    Every lead is tracked by ID and by last-answered message, so a five-minute poll can never reply to the same message again.

The guards live in the if nodes, not in the prose: ten of them against four model calls in the responder, thirty-four in the CRM.

06 — Start

Tell me what still runs by hand in the office.

hamadsyedali@gmail.com