Work  /  Lead & Sales  /  04  ·  Home services & construction

Google Local Services Ads Lead Responder

Home services

Delivered — figures counted directly from the exported workflow JSON

2automations live
4workflows
63nodes
A phone answering a Google lead in a chat thread, a stopwatch, a calendar with a booked slot, and a technician’s van.

The problem

Contractors lose paid Local Services leads for one reason: nobody replies fast enough.

The lead is already bought and already interested. Every minute it sits unanswered, the customer works down the list Google gave them.

How it runs

  1. Poll

    01 / 06 two schedules, two rates

    New leads are pulled from the Google Ads API every fifteen minutes, and live conversations every five.

  2. Read the conversation

    02 / 06

    Each lead is tracked by its ID and its last-answered message, so no message is ever answered twice.

  3. Build real slots

    03 / 06 Workflow 1 of 4 · Active Leads · 30 nodes

    The next seven days come from Housecall Pro and become two-hour slots inside working hours, with weekends and booked times removed.

  4. Draft the reply

    04 / 06 four Gemini nodes

    Google Gemini drafts the reply and reads the customer’s intent, choosing only from slots the CRM confirmed.

  5. Send inside Google’s thread

    05 / 06 the only route Google leaves open

    Google exposes these conversations as read-only data, so a Skyvern browser agent signs in and sends the reply the way a person would.

  6. Commit, then book

    06 / 06

    A job is created only when the time, the booking, the address and the technician are all confirmed.

    anything missing → no job

The four workflows, as exported

Every node with its icon, as on the n8n canvasstarts a runHover a node for its type

  • 01Active Leads

    30 nodes · 30 connections · 2 notes · live

    HTTP RequestCodeCodeGoogle GeminiCodeHTTP RequestCodeCodeGoogle GeminiHTTP RequestHTTP RequestGoogle GeminiCodeCodeIfCodeEdit FieldsWhen Executed by Another WorkflowCodeIfEdit FieldsCodeGoogle SheetsGoogle SheetsIfGoogle SheetsIfIfGoogle SheetsHTTP Request

    the main responder: conversation state, availability, booking

  • 02New Leads

    13 nodes · 13 connections · 1 note · live

    HTTP RequestCodeGoogle GeminiCodeHTTP RequestCodeEdit FieldsWhen Executed by Another WorkflowGoogle SheetsEdit FieldsGoogle SheetsIfIf

    the first reply to a lead nobody has answered yet

  • 03Trigger For New Leads

    8 nodes · 8 connections · 1 note · standby

    Schedule TriggerHTTP RequestHTTP RequestLoop Over ItemsCodeExecute WorkflowIfIf

    polls every 15 minutes

  • 04Trigger For Active Leads

    7 nodes · 7 connections · 1 note · standby

    HTTP RequestHTTP RequestSchedule TriggerLoop Over ItemsExecute WorkflowCodeIf

    polls every 5 minutes

58 executing nodes, by type

Code 15HTTP Request 11If 10Google Sheets 6Google Gemini 4Edit Fields 4When Executed by Another Workflow 2Schedule Trigger 2Other 4

The gates, 10 If nodes, decide whether anything happens next: a countable part of the system, not a claim about it. 63 objects on the canvas = 58 executing nodes + 5 sticky notes.

The guards, and what each one prevents

HoverTap a card to read what it prevents.

  • Availability is real, not claimed

    The agent cannot offer a slot that does not exist: it only ever chooses from slots the field-service CRM confirmed.

  • Four confirmations before a booking

    Time confirmed, booking accepted, address given, technician agreed — all four, or nothing is created. An enthusiastic model cannot produce a job on its own.

  • No message answered twice

    On a five-minute poll against a conversation, that is the difference between a responsive business and one that appears to be malfunctioning.

  • Replies stay in the official thread

    Replies sent elsewhere do not count towards the LSA response-time metric — the number the whole system exists to move.

  • Two poll rates, not one

    A customer who has just replied is mid-conversation, so live threads are checked three times as often as new leads: a fifteen-minute gap there reads as being ignored.

  • The guards are in the gates, not the prose

    Ten if nodes against four model calls. The prompts carry a note inviting the client to edit the tone; nothing they write there can book a job.

Limits, stated plainly

  • Sending depends on browser automation, because Google leaves no API route for replies. An interface change can break sending in a way an API contract would not.
  • Two of the four workflows are schedule triggers held on standby: the responders can also be driven directly.
  • Endpoint paths, credentials and access details are deliberately absent: this is a client’s live production system.

Built with

  • n8n
  • Google Ads
  • Google Gemini
  • Skyvern
  • Housecall Pro
  • Google Sheets