The problem this solves

A lead becomes a quote, and then, too often, the quote just sits there. No one chases it consistently, because remembering to follow up on every open quote, on the right timeline, is exactly the kind of repetitive tracking work that's easy to let slip.

This kit automates the chase: three timed follow-ups, each one smart enough to check whether the customer already said yes or no before sending the next.

Who it's for

  • Trades, professional services, and any business that sends a formal quote before a sale closes
  • Anyone who's lost a sale simply because a quote went cold and nobody noticed
  • Owners of the Lead Machine and/or Review Follow-Up kits who want the mid-funnel piece of the same lifecycle

What the workflow does

Below is the exact nodes from workflow/quotation-followup.json. Watch the Sheet status: every checkpoint reads it before deciding whether to send, which is the whole difference between this and a blind drip sequence.

31 real nodesnames from the workflow filepaths verified against the kit's own logic

The important one: the customer says yes after the first chase. The Sheet changes, and checkpoints 2 and 3 see it, Follow-up 2 and 3 never fire.

Quote Sent (Webhook)
Validate QuoteCode node
Is Quote Valid?
Store QuoteSheet · status: "sent"
Respond: Quote ScheduledHTTP 200 · immediately
Respond: Quote RejectedHTTP 422
Google Sheet · this quote's rowstatus column,
Wait 1 (default 3 days)
Lookup Status 1reads the Sheet
Still Pending? 1Code node
Is Pending? 1
Update Status 1→ "followup_1_sent"
Stop, nothing sentalready responded
Wait 2 (default +4 days)
Lookup Status 2reads the Sheet
Still Pending? 2Code node
Is Pending? 2
Update Status 2→ "followup_2_sent"
Stop, nothing sentalready responded
Wait 3 (default +7 days)
Lookup Status 3reads the Sheet
Still Pending? 3Code node
Is Pending? 3
Update Status 3→ "cold_needs_manual_touch"
Stop, nothing sentalready responded
Quote Responded (Webhook)
Validate ResponseCode node
Is Response Valid?
Update Status (Response)→ "accepted" / "declined"
Respond: Response RecordedHTTP 200
Respond: Response RejectedHTTP 422

Step by step

  1. Receives the quote via webhook and validates it instantly.
  2. Stores it in Google Sheets with status sent: this status is the single source of truth the whole sequence checks against.
  3. Waits (3 days by default), then checks the status before sending: if the customer already responded, nothing goes out.
  4. Repeats at +4 and +7 more days, each time checking first.
  5. Alerts the owner after the third follow-up if the quote is still unresolved, a real "worth a personal call" signal, not just another automated email.
  6. A separate webhook records the customer's actual response at any time, updating the status the next check will see.

What's included

The workflow

An importable n8n workflow, 2 webhooks, Sheets-backed status tracking, a 3-stage timed follow-up sequence with real cancellation checks, bounded retries.

Setup guide

Import, credential wiring, sheet setup, go-live checklist.

Configuration checklist

Every placeholder to edit, including follow-up timing and email copy.

Credential instructions

Google Sheets + SMTP · reuse the same credentials as the other two kits.

Architecture diagram

Every node explained, including an honest limitation note on exactly when a response is noticed.

Sample test data + a runnable test

16 checks, realistic quote/response events plus the status-threshold cancellation logic itself.

Troubleshooting guide

Common issues, with fixes.

Prerequisites

  • An n8n instance (self-hosted or n8n Cloud)
  • A Google account for Sheets (free tier), doubles as the status-tracking record
  • An SMTP-capable email account (reuse one from the other kits if you have it)
  • No paid API calls required

What you configure

Ships generic by design. Before going live, you (or Radiance, if you buy installation) set:

  • The 3/4/7-day timing of each follow-up stage
  • The tone and urgency progression of all three follow-up emails
  • How "quote responded" gets triggered (webhook, or a direct Sheet edit)
  • Owner notification address

Demo vs. production: the honest version

The workflow and its status-checked cancellation logic are real and tested: structurally validated against n8n's own node schemas, and a runnable test (test/run-logic-test.cjs) checks 16 cases, realistic quote/response validation plus the cancellation logic itself at all three stages, all 16 pass.

What hasn't happened yet: it hasn't processed a real paying client's live traffic, and a customer response is checked at the next scheduled stage rather than interrupting an in-progress wait instantly (see the architecture diagram's honest limitation note). Treat it as a proven reference implementation, not a finished, branded product.

Get the kit, or have it installed

Self-install, or have it installed and wired to your actual quoting/CRM system, see the Technology service tiers, or pair it with the Lead Machine and Review Follow-Up kits for the full lead-to-close-to-reputation system.