Google Sheets + Slack: follow-up drafts ready to send
Your follow-up process probably isn’t “hard.” It’s just easy to mess up. A booked call lands in a spreadsheet, and then the scramble starts: who is this person, what does their company do, what should we say, and when do we send it?
This Sheets Slack follow-ups automation hits sales reps first, honestly. But marketing ops also feel it when handoffs get messy, and agency owners notice when “we’ll follow up today” quietly turns into next week. The outcome is simple: every new call row turns into researched, personalized follow-up drafts you can send fast.
Below you’ll see how the workflow runs, what it outputs in Google Sheets, and how to adapt it so the copy still sounds like you (not a robot).
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Sheets + Slack: follow-up drafts ready to send
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Sales Writing Assistant", pos: "b", h: 48 }
n5@{ icon: "mdi:database", form: "rounded", label: "Review Calls", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n7@{ icon: "mdi:wrench", form: "rounded", label: "Company Research (Tavily)", pos: "b", h: 48 }
n8@{ icon: "mdi:database", form: "rounded", label: "Fetch Success Stories", pos: "b", h: 48 }
n9@{ icon: "mdi:database", form: "rounded", label: "Fetch Product List", pos: "b", h: 48 }
n10@{ icon: "mdi:database", form: "rounded", label: "Update Prospect Research", pos: "b", h: 48 }
n11@{ icon: "mdi:database", form: "rounded", label: "Update Follow-up Messages", pos: "b", h: 48 }
n12@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n1 --> n4
n5 --> n1
n2 -.-> n1
n9 -.-> n1
n12 -.-> n4
n8 -.-> n4
n3 -.-> n1
n10 -.-> n1
n7 -.-> n1
n6 -.-> n4
n11 -.-> n4
n0 --> n5
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n1,n3,n4,n6 ai
class n2,n12 aiModel
class n7 ai
class n5,n8,n9,n10,n11 database
The Problem: Follow-ups depend on memory (and mood)
After a call gets booked, the “right” follow-up usually requires two separate efforts: quick research and good writing. That’s where things slip. Someone opens LinkedIn, scans a website, checks recent news, tries to remember what was promised on the call, then writes an email that is supposed to feel personal but still consistent with your offer. Do this a few times a day and it becomes draining. And when it’s draining, you delay it, which means the prospect cools off and the next touch feels forced.
It adds up fast. Here’s where it breaks down in real teams.
- Research happens in five tabs, then never gets saved back to the CRM or sheet.
- Good reps write great follow-ups, and everyone else copies old templates that sound generic.
- Busy days push “I’ll send it later” into the danger zone, usually 24+ hours after the call.
- No shared visibility means managers can’t spot gaps until deals are already slipping.
The Solution: Research + follow-up drafts generated from your sheet
This workflow turns a single row in Google Sheets into a complete “follow-up packet” you can actually use. When a new booked call appears in your Meeting Data tab, n8n pulls the prospect details (name, email, company, website, job title, meeting date). Then an AI research agent gathers the basics you’d normally hunt down manually: a company overview, their likely tech stack, and recent company updates, using Tavily search. Next, the workflow cross-references your Success Stories sheet to pull testimonials and outcomes that fit the prospect’s context. Finally, it drafts a subject line, a thoughtful follow-up email, and a short SMS, then writes everything back into the same Google Sheets row so it’s all in one place.
The flow starts in Google Sheets, not your inbox. Research comes first, then the writing assistant uses that context plus your testimonials. You end with ready-to-send drafts and fields you can reuse for call prep later.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you book 10 calls a week. Manually, it’s maybe 10 minutes of research (site, LinkedIn, recent news) plus about 10 minutes writing an email and SMS, so roughly 20 minutes per prospect, or about 3 hours a week. With this workflow, adding the row is the trigger, and the draft lands back in the sheet after the AI finishes (usually a few minutes). You still review and tweak, but you’re starting from a strong first draft instead of a blank page.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for the Meeting Data and Success Stories tabs
- Slack to share drafts or visibility with the team
- OpenAI API key (get it from the OpenAI API dashboard)
- Tavily API key (get it from your Tavily account settings)
Skill level: Intermediate. You’ll connect credentials, map sheet columns, and do light prompt edits for your voice.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A new call row appears in Google Sheets. n8n starts from your “Meeting Data” tab (or a webhook/booking-system connection you swap in later) and reads the prospect fields you already track.
Research is gathered and cleaned up. The research agent uses Tavily to collect a company overview, likely tech stack, and recent updates, then a structured parser turns that into consistent fields that can be written back into the sheet.
The writing assistant builds a draft that references proof. The workflow pulls relevant testimonials from your “Success Stories” tab and uses OpenAI to draft a subject line, follow-up email, and SMS that match the prospect context.
Everything is saved where your team already looks. The workflow updates the original Google Sheets row with the research fields and the final copy fields, and can optionally post to Slack for visibility or review.
You can easily modify Slack visibility to only notify a channel when certain deals qualify, based on job title, company size, or even the “Primary Solution” field. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
This workflow starts with a manual trigger so you can test the full research-to-follow-up sequence on demand.
- Add the Manual Run Starter node as the trigger.
- Keep the default settings (no parameters required).
- Connect Manual Run Starter to Review Call Records to match the execution flow.
Step 2: Connect Google Sheets
These nodes pull meeting records and write research and follow-up outputs back to your sheet.
- Open Review Call Records and set Document to
Mock Dataand Sheet toMeeting Data. - In Review Call Records, confirm the filter for company_overview with Lookup Value set to
FILLto fetch rows needing research. - Open Write Research Update, set Operation to
update, and confirm matching on Email. - Open Write Follow-up Outputs, set Operation to
update, and confirm matching on Email. - Credential Required: Connect your googleSheetsOAuth2Api credentials on Review Call Records, Retrieve Testimonials, Get Product Catalog, Write Research Update, and Write Follow-up Outputs.
Step 3: Set Up Research Orchestration Agent
This agent researches each prospect and writes structured insights back to the sheet.
- Open Research Orchestration Agent and set Text to
=Please research these sales call attendees Name: {{ $json.Name }} Email: {{ $json.Email }} Company Name: {{ $json['Company Name'] }} Website: {{ $json.Website }} Business Type: {{ $json['Business Type'] }} Project: {{ $json.Project }}. - Ensure the agent uses OpenAI Chat Engine as its language model.
- Attach Structured JSON Extractor as the output parser to enforce the six-field JSON schema.
- Attach tools Tavily Company Lookup, Get Product Catalog, and Write Research Update to the agent.
- Credential Required: Connect your openAiApi credentials on OpenAI Chat Engine.
={{$json.api_key}} in the JSON body. Make sure your incoming data includes api_key, or update the tool to use a static Tavily key.Step 4: Set Up Follow-up Copy Assistant
This agent turns research results into a personalized subject line, email, and SMS.
- Open Follow-up Copy Assistant and set Text to
=Name: {{ $('Review Call Records').item.json.Name }} Email: {{ $('Review Call Records').item.json.Email }} Company Name: {{ $('Review Call Records').item.json['Company Name'] }} Website: {{ $('Review Call Records').item.json.Website }} Business Type: {{ $('Review Call Records').item.json['Business Type'] }} Project: {{ $('Review Call Records').item.json.Project }} company_overview: {{ $json.output.company_overview }} tech_stack: {{ $json.output.tech_stack }} company_updates: {{ $json.output.company_updates }} primary_solution: {{ $json.output.primary_solution }} solution_2: {{ $json.output.solution_2 }} solution_3: {{ $json.output.solution_3 }}. - Ensure the agent uses OpenAI Chat Engine 2 as its language model.
- Attach Message Output Parser as the output parser with the subject/email/text_message schema.
- Attach tools Retrieve Testimonials and Write Follow-up Outputs to log the finalized content.
- Credential Required: Connect your openAiApi credentials on OpenAI Chat Engine 2.
Step 5: Confirm Output Mappings
Verify that both update tools write the correct AI fields back to the sheet using matching email addresses.
- In Write Research Update, verify the column mappings use expressions like
={{ $json.Email }}and={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('company_overview', ``, 'string') }}. - In Write Follow-up Outputs, confirm mappings for email_subject, email_text, and sms use
$fromAI(...)expressions and Email matches={{ $('Review Call Records').item.json.Email }}. - Make sure Write Research Update and Write Follow-up Outputs both target
Meeting DatainMock Data.
Step 6: Test and Activate Your Workflow
Run a manual test to confirm research output, follow-up copy, and Google Sheets updates are working end-to-end.
- Click Execute Workflow from Manual Run Starter.
- Confirm that Review Call Records pulls rows where company_overview is
FILL. - Verify Write Research Update fills company_overview, tech_stack, company_updates, and solution fields.
- Verify Write Follow-up Outputs fills email_subject, email_text, and sms for the same email address.
- When successful, toggle the workflow to Active for production use.
Common Gotchas
- Google Sheets permissions can quietly block updates. If fields don’t write back, check the credential access and confirm the spreadsheet ID and tab names match.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- OpenAI prompts that stay generic will give you bland follow-ups. Add your tone, what you sell, and a couple “never say this” rules early so you aren’t polishing every draft.
Frequently Asked Questions
About an hour if your Google Sheet and API keys are ready.
No. You’ll mainly connect accounts and map the right columns in Google Sheets. Prompt edits are plain text.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI and Tavily API usage, which depends on how many calls you process.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s usually just a prompt and field-mapping change. You can edit the Follow-up Copy Assistant prompt to output only email, only SMS, or a different structure for a specific industry. Many teams also tweak the Structured JSON Extractor so the fields written back into Google Sheets match their exact columns. If you want Slack review only for high-value prospects, add a condition before the Slack message based on job title or company domain.
Most of the time it’s permissions or the wrong spreadsheet/tab mapping. Re-check the Google Sheets credential in n8n, confirm the spreadsheet ID is correct, and make sure your sheet is actually named “Meeting Data” and “Success Stories” (or update the nodes to match). Another common issue is the update step looking for the wrong key column, so it can’t find the row to write back to.
On a typical n8n Cloud plan, it can handle thousands of runs per month, and self-hosting is mainly limited by your server and API rate limits.
Often, yes, because this workflow leans on AI agents, structured parsing, and multi-step logic that gets clunky (and expensive) in simpler automation tools. n8n is also easier to self-host, which matters when you start processing lots of calls. Zapier or Make can still be fine for a lightweight version, like “new row in Sheets → send Slack message,” with no research or drafting. The main trade-off is setup: n8n gives you more control, but you’ll spend a bit more time mapping fields the first time. If you want, Talk to an automation expert and we’ll point you to the simplest path.
You set this up once, and every booked call gets the same “no excuses” follow-up baseline. The workflow handles the repetitive parts so you can focus on the human parts.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.