Self-initiated demo by Flow Lab. Acme Comfort HVAC and every caller on this page are invented.
Acme Comfort HVACPortfolio demo

Every missed call gets an answer.

For a shop that can't pick up while it's on a job: each missed call or voicemail becomes a lead in Google Sheets, gets up to three short emails from the owner, stops as soon as the customer replies (the inbox is checked every 5 minutes) — and lands on a Monday list. Built on n8n, Gmail and Google Sheets.

7Google Voice notifications in the week
5rows in the Leads sheet — one per caller
6follow-up emails sent for the owner
0emails at night or on the weekend
2replies caught — sequence stopped
2callers without email, flagged to call back

One week at the shop, step by step

A simulated Monday-to-Monday: the real workflow files ran in a test harness with stand-in Gmail and Google Sheets. The sheet on the right is what the owner would see after each moment.

Mon 9:12 AM

A voicemail becomes a lead

Maria calls while the crew is on a job. Google Voice emails the shop; the workflow reads it, finds the email address she spoke in the voicemail and adds one row to the Leads sheet.

Google Voice
New voicemail from Maria Lopez (512) 555-0134
Hi, this is Maria, our AC stopped blowing cold air this morning. You can email me at maria dot lopez at example dot com.

Mon 9:15 AM

First email within 15 minutes

The sender runs every 15 minutes during shop hours. Maria gets a short, human note from the owner — no form, no link to click, just "reply with a good time".

Dan · Acme Comfort HVAC → maria.lopez@example.com
Sorry we missed your call — Acme Comfort HVAC
Hi Maria,

You called Acme Comfort HVAC and we couldn't pick up — we were probably on a job. Sorry about that.

Mon 10:40 AM

She calls again — still one row

A second call from the same number updates the same row (calls: 2). A notification Gmail hands over twice is skipped. No duplicate leads, no double emails.

Google Voice
New missed call from Maria Lopez (512) 555-0134
Missed call at 10:40 AM

Mon 1:05 PM

No email? Flag it for a call back

James leaves a voicemail but no email address. The system never guesses one — his row is marked "call back" and goes on the owner's Monday list.

Google Voice
New voicemail from (512) 555-0187
Hey it's James, the furnace is making a banging noise. Call me back when you can.

Mon 7:30 PM

After hours, it waits for the morning

Tom calls at 7:30 PM. His row is ready at once, but the first email is scheduled for 8:00 AM, when the shop opens. Weekends are skipped the same way.

Scheduled
First email to Tom Reed: Tue 8:00 AM (shop hours 8:00–18:00, Mon–Fri, Chicago time).

Wed 10:15 AM

A reply stops the sequence

Maria answers "Thursday morning works". The workflow sees the reply, marks her row "replied" and sends nothing more. "unsubscribe" works the same way — Sarah is never emailed again.

Maria Lopez → Acme Comfort HVAC
Re: Still need help with your heating or cooling?
Yes please! Thursday morning works for us.

Mon 7:00 AM

Monday 7:00: one email for the owner

Who called, what was sent, who replied, and who still needs a call. Buttons only change the sheet, after a confirm step ("I've called them" stops the emails). Nothing is booked automatically.

To the owner · Monday 7:00

Acme Comfort HVAC — missed calls this week

5 callers · 5 follow-up emails sent · 1 replied · 1 unsubscribed

Call back — no email to write to (2)

  • James · (512) 555-0187 · 1 call
    Hey it's James, the furnace is making a banging noise. Call me back when you can.
    I've called them
  • Unknown caller · hidden number · 1 call
    Missed call, no voicemail
    I've called them

Replied — answer them from your inbox (1)

  • Maria Lopez · (512) 555-0134 · 2 calls
    Yes please! Thursday morning works for us.

Still in the follow-up sequence (1)

  • Tom Reed · (512) 555-0152 · 1 call
    This is Tom Reed, I need a quote for a new thermostat. Email is tom dot reed at example dot net.
    Stop — I got them

Buttons only update the Leads sheet. Nothing is booked for you.

The sheet at the end of the week

Five callers, five rows. Nobody emailed twice by mistake, nobody without an email forgotten.

CallerPhoneCallsEmailsStatus
Maria Lopez(512) 555-013422 of 3replied
James(512) 555-018710 of 3owner has it
Tom Reed(512) 555-015213 of 3finished
—hidden number10 of 3call back
Sarah Kim(512) 555-016311 of 3unsubscribed

Everything that happened, minute by minute

Chicago time. Straight from the run log.

  1. voicemail from Maria Lopez (512) 555-0134
  2. New lead: Maria Lopez → follow-up emails start
  3. Email 1 of 3 sent to maria.lopez@example.com
  4. missed call from Maria Lopez (512) 555-0134
  5. Maria Lopez called again — same row, calls: 2
  6. voicemail from (512) 555-0187
  7. New lead: James → call back (no email)
  8. voicemail from (512) 555-0152
  9. New lead: Tom Reed → follow-up emails start
  10. Email 1 of 3 sent to tom.reed@example.net
  11. missed call from Unknown
  12. New lead: unknown → call back (no email)
  13. Email 2 of 3 sent to maria.lopez@example.com
  14. Reply from maria.lopez@example.com: "Yes please! Thursday morning works for us."
  15. Maria Lopez replied — emails stopped
  16. voicemail from Sarah Kim (512) 555-0163
  17. New lead: Sarah Kim → follow-up emails start
  18. Gmail delivered the same notification again
  19. Email 1 of 3 sent to sarah.k@example.org
  20. Email 2 of 3 sent to tom.reed@example.net
  21. Reply from sarah.k@example.org: "unsubscribe"
  22. Sarah Kim unsubscribed — never emailed again
  23. Monday email to the owner: "Acme Comfort HVAC: 2 to call back, 1 replied"
  24. Owner tapped "I've called them" for James
  25. Email 3 of 3 sent to tom.reed@example.net
  26. Tom Reed: all 3 emails sent, sequence finished

Six workflows, ready to import

n8n → Workflows → Import from file. Google Voice sends its notifications to the Gmail you connect here, and the follow-ups go out from that same Gmail. Add Gmail and Google Sheets credentials, paste the sheet ID, fill in Shop settings (name, hours, time zone, email days), and pick workflow 0 as the Error workflow of the others. The schedule lives in the sheet, not in Wait nodes — a restart loses nothing.

What it can't do, honestly