05. Quote Follow-up Cadence
The leak this closes
Sent quotes die in silence. You do the work of scoping, pricing, and writing the quote, then the prospect goes quiet and nobody follows up, because following up is the easiest job in the business to postpone. The quote is not dead. It is unattended. This loop puts a machine on the cadence: every quote with no reply gets a follow-up draft at day 3, day 7, and day 14, each one written for that stage and referencing the actual quote. You stay the sender. The machine just makes sure no quote is ever forgotten.
The pattern
Daily schedule trigger reads the CRM for quotes with no reply at 3, 7, or 14 days, the AI writes a stage-appropriate follow-up that references the quote, and the action is a Gmail draft plus a CRM activity log plus a Slack ping to the owner. Drafts only, never sends.
Import (n8n)
How long this really takes. The import itself is seconds. If you already run n8n with these credentials attached, you are done in a minute. If this is your first n8n workflow, budget an evening: an account to create, a credential to connect, a test that fails once. That is normal and it happens only on the first blueprint. Not sure this is the right one to start with? Read the start-here page first.
- In n8n, go to Workflows, click the three-dot menu, choose Import from File, and select
workflow.n8n.json. - Open the Get Open Quotes (CRM) node. Attach your Airtable credential, then select your CRM base and your Quotes table. Your table needs these fields: Status, Quote Sent Date, Reply Received, Follow-up Stage, Contact Name, Contact Email, Company, Quote Amount, Quote Summary, Last Follow-up Date, Last Activity. Rename the formula fields in the node if yours are named differently.
- Open the Log Activity in CRM node and attach the same Airtable credential, base, and table.
- Open the Business Brain Context node and paste your business brain into the
businessContextvalue: who you are, what you sell, your voice, your sign-off, and your common objections. Use templates 01, 02, and 03 from the AI Brain Templates in this kit. - Open the Write Follow-up Draft (AI) node and attach your OpenAI credential.
- Open the Create Gmail Draft node and attach your Gmail OAuth credential.
- Open the Ping Owner on Slack node, attach your Slack credential, and set the channel (or define the
YOUR_SLACK_CHANNELenvironment variable on your n8n instance). - Run it once manually to confirm a draft appears in Gmail, then activate the workflow. It runs every morning at 08:00.
Build it in Make.com instead
- Create a new scenario and set the scenario schedule to run once a day at 08:00.
- Add Airtable > Search Records as the first module. Point it at your Quotes table with the formula
AND({Status} = 'Quote Sent', {Reply Received} = ''). - Add Tools > Set Variable with a variable named
daysSinceSentusingfloor((formatDate(now; "x") - formatDate(parseDate(Quote Sent Date; "YYYY-MM-DD"); "x")) / 86400000). TheformatDate(...; "x")calls convert both dates to millisecond timestamps so the subtraction works. - Add a Router with three filter paths: day 3 or later with Follow-up Stage less than 1, day 7 or later with Follow-up Stage less than 2, and day 14 or later with Follow-up Stage less than 3. Each path sets a different stage instruction (friendly nudge, value add, close the loop).
- On each path, add OpenAI (ChatGPT, Sora, DALL-E, Whisper) > Create a Completion (Prompt). In the prompt, include a CONTEXT block pasted from your business brain, the quote details mapped from Airtable, the stage instruction, and the explicit rule that this is a draft and must never claim to be sent.
- Add Gmail > Create a Draft, mapping the recipient from Contact Email and the subject and body from the OpenAI output.
- Add Airtable > Update a Record to set Follow-up Stage to the new touch number and stamp Last Follow-up Date.
- Add Slack > Create a Message to ping the owner channel with the contact, the quote, the touch number, and a reminder that the draft is waiting in Gmail.
- Turn the scenario on.
Safety: drafts, not sends
Nothing in this loop sends email. The AI writes the follow-up, the Gmail module saves it as a draft, and the Slack ping tells you it is waiting. The final send is always a human decision, which means a hallucinated detail or a wrong tone gets caught in your Drafts folder, not in your prospect's inbox. If you ever switch the Gmail step from draft to send, you have removed that safety. Keep it on drafts.
The one metric
Quotes revived per week: the number of previously silent quotes that get a reply after a follow-up draft goes out. Track it weekly. If the cadence is running and that number stays at zero, the problem is the quote, not the follow-up.