Downloads
Download the n8n workflow (JSON)
enquiry-follow-up-n8n-claude.json · n8n workflow · 19 steps · starts with Every morning 11 AM · uses Google Sheets, Gmail, Slack, Anthropic · 30 KB
Import into n8n: Create Workflow, then the menu, then Import from File.
How to import it into n8n
- In n8n, create a new workflow.
- Open the ⋯ menu at the top right and choose Import from File, then pick the downloaded .json. (Or open the file, copy everything and paste it on the canvas.)
- Open each node with a warning and connect your own account: the file carries no passwords or keys.
- Run it once with Test workflow, check the result, then switch it to Active.
What it does
Every morning the workflow reads your Quotes sheet and finds quotes going cold: day 3 with no follow-up, day 7 with one, day 14 with two. Before writing anything it opens the quote's Gmail thread; if the client has replied, the nudges stop, the row is marked Replied and you get a Slack ping with their message. Otherwise Claude drafts a short, human nudge from the project and your call notes, you see it in Slack, and 'Send' replies in the same email thread. On day 14 a small Slack form asks whether it is Won, Lost or Still alive, so your win rate is real.
Who it is for
Manufacturers, interior designers, contractors, agencies and anyone who sends quotes by email and loses deals to silence.
What you need
- An n8n account
- Gmail (the account quotes are sent from)
- A Google Sheet with a
Quotestab - An Anthropic API key
- Slack (#sales)
How the workflow runs, node by node
The slides show the same steps. Open the workflow in n8n and you will see a sticky note over each one.
Step 1 · Find quotes going cold
Every morning n8n reads your Quotes sheet: day 3 with no nudge, day 7 with one, day 14 with two. Replied, won and lost quotes are skipped, and nothing is nudged twice in a day.
- Every morning 11 AM: Runs at 11 AM, Monday to Saturday, when people actually read email.
- Read open quotes: Reads the Quotes tab: quote id, client, email, project, amount, date sent, Gmail thread id, status and nudges so far.
- Due for a nudge?: Picks open quotes that are 3 days old with no nudge, 7 days old with one nudge, or 14 days old with two (time to decide won or lost). Never twice in one day, max 25 a run.
Step 2 · Did they reply? Then it stops
n8n opens the Gmail thread of the quote. If the client wrote back, nudges stop, the row says Replied and you get a Slack ping with their message.
- Get email thread: Opens the Gmail thread where you sent the quote.
- Check for client reply: Looks through the thread for any email from the client's domain after the quote date. If they replied, no nudge: a person should answer.
- Client replied?: A reply means the conversation is alive. Hand it to you and stop the nudges.
- Tell owner: client replied: Pings #sales with the client's reply snippet, so you answer it today.
- Mark as replied: Sets the quote's status to Replied, so it drops out of the nudge list.
- What's next?: Day 3 and day 7 go to Claude for a nudge. Day 14 asks you whether it is won, lost or still alive.
Step 3 · Claude drafts, you approve
Claude writes a short nudge from the project and your call notes: a check-in on day 3, something useful on day 7. You see it in Slack and tap Send or Skip.
- Draft nudge with Claude: Writes a short, human follow-up for day 3 or day 7, using the project and your call notes, in the same thread as the quote.
- Claude: Claude (claude-sonnet-5-5) at temperature 0.4, so answers stay consistent from run to run.
- Nudge schema: The email body plus a one-line 'angle' so you see the point of the nudge at a glance in Slack.
- Approve nudge in Slack: Shows the client, project, amount and the draft in #sales with Send and Skip. Waits up to 6 hours.
- Approved?: Only Send continues. Skip marks the nudge as skipped and moves the quote on.
Step 4 · Sent in the thread, tracked
Approved nudges go out as a reply in the quote thread. The sheet counts nudges. On day 14 you pick Won, Lost or Still alive in Slack, so your win rate is real.
- Send nudge in thread: Replies in the original quote thread, so the client sees the quote right below the nudge.
- Log nudge: Adds one to Nudges and records the date and whether it was sent or skipped. The next stage then comes 4 or 7 days later.
- Alert: nudge failed: Tells #sales if Gmail refused the reply.
- Won, lost or alive?: On day 14 asks you in Slack, with a small form: Won, Lost or Still alive, and an optional reason.
- Record won or lost: Writes Won or Lost (with reason) to the sheet. 'Still alive' resets the nudge count so the cycle starts again.
Setup
- Import the JSON file into a new n8n workflow.
- Make a sheet tab
QuoteswithQuoteId, Client, Contact, Email, Project, Amount, SentOn, ThreadId, Status, Nudges, LastNudge, LastAction, Notes, Reason. ReplaceYOUR_SHEET_ID. - When you send a quote, add a row with Status Open and Nudges 0. The ThreadId is in the Gmail URL of the sent email (the part after #sent/), or log it automatically from your quoting workflow.
- Connect Gmail on Get email thread and Send nudge in thread.
- Create an Anthropic credential on Claude and fill in
YOUR_NAMEandYOUR_BUSINESS_NAMEin Draft nudge with Claude. - Connect Slack on the four Slack nodes.
- Add a test quote to yourself dated 3 days ago, execute, approve in Slack, and check the reply lands in the thread. Then activate.
How to customise it
- Change the stages (for example day 2, 5, 10) in Due for a nudge?.
- Nudge on WhatsApp for clients who prefer it, with an approved template.
- Skip nudges for small quotes: filter by amount in Due for a nudge?.
- Send a monthly win rate summary: count Won vs Lost from the sheet with a schedule and a Summarize node.
Guardrails
Every nudge waits for your Send in Slack, and the moment a client replies, the nudges stop.
- Every nudge needs your 'Send' in Slack. No answer within 6 hours means skipped.
- Any reply from the client's domain stops the nudges for that quote.
- Maximum two nudges, then you decide. No endless chasing.
- Claude is told not to invent urgency, discounts or details that are not in your notes.
Troubleshooting
- Nothing is due. SentOn must be a real date and Nudges a number (start at 0). Status must be Open.
- A reply was missed and a nudge was drafted. The check looks for the client's email domain. If they reply from a personal Gmail, add that address to Email.
- Reply goes to the wrong thread. Check ThreadId is the thread of the sent quote, not a draft.
- Slack form shows no options. Custom form responses need n8n 1.80 or newer. Update n8n or switch to two buttons.
Want the members-only resources too?
A free account unlocks them all, including the ones shared in DMs.

