Google Sheets + Slack: cleaner leads with Hunter
You finally have a lead list worth calling… then half the emails bounce, your sender reputation takes a hit, and the team starts doubting the data. The worst part is you usually find out after you’ve already sent the campaign.
This Sheets Slack integration is the kind of fix Growth Marketers ask for, but Sales Ops and small agency teams end up relying on it too. You get verified emails, enrichment only when it’s worth it, and a clean summary dropped into Slack so the list doesn’t quietly rot.
Below is what the workflow does, what you need to run it, and how the pieces fit together so you can automate lead hygiene instead of babysitting spreadsheets.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Google Sheets + Slack: cleaner leads with Hunter
flowchart LR
subgraph sg0["On form submission Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Workflow Configuration", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Lead Data", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Generate Email Draft", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Wait for Approval", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Approval Status", pos: "b", h: 48 }
n6@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email to Lead", pos: "b", h: 48 }
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Create Lead in Airtable"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Update Lead Status (Rejected)"]
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>On form submission"]
n10@{ icon: "mdi:message-outline", form: "rounded", label: "Send Approval Request Email", pos: "b", h: 48 }
n1 --> n2
n3 -.-> n2
n4 --> n5
n9 --> n0
n6 --> n7
n2 --> n10
n5 --> n6
n5 --> n8
n0 --> n1
n10 --> n4
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 n9 trigger
class n2 ai
class n3 aiModel
class n5 decision
class n7,n8 database
classDef customIcon fill:none,stroke:none
class n7,n8,n9 customIcon
Why This Matters: Dirty Emails Quietly Kill Outreach
“We’ll clean the list before we send” sounds reasonable until it’s Thursday afternoon and you’re still copy-pasting emails into an online verifier. Then you start making judgment calls you shouldn’t have to make. Is a “risky” email OK? Do we enrich it anyway? Did someone already check this contact last week? And when one bad file makes it into your ESP or CRM, the cost shows up later as bounces, spam flags, and deals that never even see your message. It’s draining because it’s repetitive, but it’s also stressful because one mistake is visible to everyone.
None of these alone is the problem. Together, they are.
- People waste about 1–2 hours per list doing “quick” email checks and basic research that should be automatic.
- Teams enrich everything by default, which burns Dropcontact credits on emails you were never going to send to.
- Manual checks aren’t consistent, so two people will label the same email differently and your sheet becomes a mess.
- There’s no shared visibility, which means Slack gets flooded with questions like “Is this list safe to send?”
What You’ll Build: Verified, Enriched Leads With a Slack Summary
This workflow watches your Google Sheet for new or updated lead rows and checks which emails still need processing. When it finds one, it sends the email to Hunter Email Verifier, which returns a validity result plus a confidence score. If the email is valid and clears your confidence threshold, the workflow enriches it with Dropcontact to pull back useful profile details like name, role, company, domain, and country. Then it writes everything back into the same Google Sheet row so your list stays the single source of truth. Finally, it posts a Slack message summarizing the run (how many emails were checked, how many were valid, and how many were enriched), so the team gets clarity without opening the spreadsheet.
The workflow starts in Google Sheets when rows change. Hunter decides what’s safe, Dropcontact fills in the blanks for the safe ones, and Slack becomes your “proof” that the list is actually clean. Simple loop, big payoff.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you add 100 new leads to a Google Sheet before a campaign. Manually, teams often spend about 1 minute per email to verify, plus another 2–3 minutes to look up a name, title, and company, which is roughly 4–6 hours of busywork. With this workflow, you paste/import the leads once, then let Hunter verify and Dropcontact enrich in the background. You’ll still wait for processing, but your hands-on time drops to about 10 minutes, and Slack tells you exactly how many records are send-ready.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for storing and updating your lead list.
- Hunter Email Verifier to validate emails and confidence scores.
- Dropcontact to enrich valid emails with profile data.
- Slack to receive the processing summary message.
- Hunter + Dropcontact API keys (get them from each tool’s API/settings page).
Skill level: Beginner. You’ll connect accounts, map a few fields, and set a confidence threshold you’re comfortable with.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A row changes in Google Sheets. When a new lead is added (or an existing one is updated), the workflow kicks off and looks for emails that haven’t been processed yet.
Emails get validated in Hunter. n8n sends each email to Hunter Email Verifier and receives a clear result plus a confidence score you can use to decide what “good enough” means for your team.
Only the good ones get enriched. Valid, high-confidence emails go to Dropcontact, which returns details like full name, job title, company, domain, and country. Low-confidence or invalid emails are marked and skipped, so you don’t pay to enrich leads you won’t contact.
Your sheet updates and Slack gets a summary. The workflow writes verification and enrichment fields back into the same row, then posts a Slack message with totals so everyone knows what’s ready.
You can easily modify the confidence threshold to be stricter or more flexible based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Form Submission Trigger
This workflow starts when a lead submits a form, so configure the form fields and messaging.
- Add the Form Submission Trigger node as the workflow trigger.
- Set Form Title to
Leadsand Form Description toWe'll reach out to you soon!. - In Form Fields, add required fields for Name, Email (type: email), Company, Phone (placeholder:
(222)222-2222), and Message.
Name, Email) to avoid mismatches in email templates.Step 2: Connect Configuration and Normalize Lead Data
Map your company details and normalize lead fields before AI drafting.
- In Config Settings Map, fill each placeholder value (e.g., companyName, senderName, companyEmail, websiteUrl) with real data. These values appear in the outgoing email.
- Keep Include Other Fields enabled (
true) so incoming form data is preserved. - In Normalize Lead Fields, set the field mappings to these expressions:
- leadName →
{{ $json.body.name || 'Unknown' }} - leadEmail →
{{ $json.body.email || '' }} - leadCompany →
{{ $json.body.company || '' }} - leadPhone →
{{ $json.body.phone || '' }} - leadMessage →
{{ $json.body.message || '' }}
- leadName →
<__PLACEHOLDER_VALUE__Your Company Name__> will result in broken email signatures and links.Step 3: Set Up AI Email Drafting
Generate the draft email using the AI agent connected to your OpenAI model.
- Open Compose Draft Email and confirm the Text prompt is set to the full prompt block starting with
You are a professional sales assistant...and includes the lead detail variables. - Ensure OpenAI Chat Engine is connected as the language model for Compose Draft Email.
- Credential Required: Connect your
openAiApicredentials in OpenAI Chat Engine (credentials are added to the parent model node, not the agent). - Verify the execution flow: Normalize Lead Fields → Compose Draft Email → Send Approval Request.
Step 4: Configure Approval and Routing Logic
Send the draft to a reviewer, wait for approval, and branch based on the decision.
- In Send Approval Request, set Send To to your reviewer email (replace
[YOUR_EMAIL]). - Keep the HTML Message template so it includes the review buttons using
{{ $resumeWebhookUrl }}?action=approveand{{ $resumeWebhookUrl }}?action=reject. - Credential Required: Connect your
gmailOAuth2credentials in Send Approval Request. - In Pause for Approval, set Resume to
webhookand keep Limit Wait Time enabled with Resume Amount24. - In Approval Decision Check, set the condition to: Left Value
{{ $('Pause for Approval').item.json.query.action }}equalsapprove.
Step 5: Configure Output Actions (Email + Airtable)
Approved leads receive the email and are logged, while rejected leads are recorded for review.
- In Dispatch Lead Email, set Send To to
{{ $('Form Submission Trigger').item.json.Email }}and keep the HTML email template using{{ $('Compose Draft Email').item.json.output }}for the body. - Credential Required: Connect your
gmailOAuth2credentials in Dispatch Lead Email. - In Log Lead in Airtable, choose your Base and Table IDs (replace
[YOUR_ID]) and keep mappings like Status =Email Sent - Approved. - In Record Rejected Lead, select the same Airtable base/table and keep Status =
Email Rejected - Needs Review. - Credential Required: Connect your
airtableOAuth2Apicredentials in both Log Lead in Airtable and Record Rejected Lead.
Step 6: Test and Activate Your Workflow
Run a full test to validate form submission, approval routing, email delivery, and Airtable logging.
- Click Execute Workflow and submit a test entry in Form Submission Trigger.
- Confirm Send Approval Request delivers a reviewer email containing the approve/reject buttons.
- Click the approve link to verify Dispatch Lead Email sends the finalized message and Log Lead in Airtable creates a record with status
Email Sent - Approved. - Repeat with reject to confirm Record Rejected Lead captures the record with status
Email Rejected - Needs Review. - When successful, toggle Active to enable the workflow for production use.
Troubleshooting Tips
- Google Sheets permissions are a common culprit. If updates stop writing back, re-check the connected Google account and confirm it can edit the specific spreadsheet and worksheet tab.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Hunter and Dropcontact can fail silently when API limits or credits run out. Check each provider’s dashboard first, then confirm the API key in n8n matches the active one.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Quick Answers
About 30 minutes if your accounts and API keys are ready.
No. You’ll mostly map fields and paste in API keys. If you can update a spreadsheet and connect Slack, you can run this.
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 Hunter and Dropcontact API costs (usually a few cents per verification/enrichment, depending on your plan and usage).
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 swapping or extending a couple of steps. You can change the confidence threshold used after Hunter verifies the email, or add a second enrichment provider when Dropcontact returns limited data. Some teams also write valid leads into Airtable or HubSpot instead of keeping everything in Google Sheets. Another practical tweak is splitting Slack notifications into two channels: one for “ready to send” and one for “needs review.”
Usually it’s an expired or incorrect API key. Regenerate your Hunter API key, update it in n8n, and double-check you’re using the Email Verifier endpoint credentials (not a different Hunter product). If it works for a few records and then fails, you may be hitting a rate limit or you’ve run out of verification credits.
A typical setup can comfortably process hundreds of rows per day, and batch cleanups of a few thousand leads are realistic if you space requests and have enough Hunter/Dropcontact credits.
Often, yes, because this kind of lead hygiene flow needs conditional logic (only enrich when valid) and reliable write-backs to the same row. n8n handles branching and data mapping cleanly, and you can self-host for unlimited executions, which matters when you’re cleaning lists regularly. Zapier and Make can still do it, but costs can climb once you add multi-step verification, enrichment, and Slack reporting. If your process is truly basic, a simpler tool may be fine. If your team is already debating confidence tiers, credit usage, and where the “truth” lives, n8n is usually the calmer choice. Talk to an automation expert if you’re not sure which fits.
Clean lists make everything downstream easier, from deliverability to reporting to handoffs between teams. Set this up once, and your spreadsheet stops being a liability.
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.