n8n + n8n: Referral Form → Thank-You Email + HubSpot Lead + Sheets Log + Slack
A referral just landed in your inbox — again. Someone your happiest customer vouched for is now sitting in a form submission, waiting. But your sales rep won't see it until tomorrow's CRM sweep, the r
A referral just landed in your inbox — again. Someone your happiest customer vouched for is now sitting in a form submission, waiting. But your sales rep won't see it until tomorrow's CRM sweep, the referrer never got a thank-you, and the spreadsheet you swore you'd keep updated is three weeks stale. Every hour that lead sits unworked, the referral's warmth cools and your best acquisition channel quietly leaks revenue.
The Problem: Referrals Die in the Gap Between Systems
Referral leads convert at rates that make paid channels look expensive — they arrive pre-qualified, trust-primed, and cheap. Yet most teams handle them with the same broken manual choreography: a form dumps a row somewhere, someone eventually copies it into HubSpot, someone else maybe pings the referrer, and sales finds out whenever they refresh their pipeline.
The failure isn't any single step. It's the gaps between steps. A referral submission needs four things to happen at once: the referrer should feel acknowledged instantly, the lead must exist in your CRM before a rep can act, the event has to be logged for attribution, and sales needs a nudge while the lead is still hot. Do those sequentially by hand and you introduce delay at every seam — plus data-entry typos, forgotten follow-ups, and no audit trail. The math is brutal: response time is the single biggest driver of referral conversion, and manual routing measures response in hours or days, not seconds.
The Solution: One Webhook, Four Parallel Actions
This n8n workflow collapses the entire choreography into a single automated pipeline that fires the instant a form is submitted. One trigger fans out into four actions that run without human touch:
- Thank-You Email — the referrer gets an immediate, personalized acknowledgment.
- HubSpot Lead — the referred contact is created (or updated) in your CRM with source attribution.
- Sheets Log — every submission appends to a Google Sheet for reporting and backup.
- Slack Alert — sales gets a real-time message in the channel that owns follow-up.
Because n8n executes branches in parallel, the referrer's thank-you doesn't wait on HubSpot's API, and Slack fires whether or not the spreadsheet is slow. Total elapsed time from submission to sales notification: a few seconds. No copy-paste, no cron sweep, no dropped leads.
Step-by-Step Setup in n8n
Here's how the workflow is wired. If you build it from scratch, expect about 30–45 minutes; if you install the ready-made template, it's minutes of credential-swapping.
1. Capture the submission
Start with a Webhook node (method POST, response mode Last Node) as the entry point. Point your referral form — Typeform, Tally, a plain HTML form, or n8n's own Form Trigger node — at the webhook URL. Expect a payload with at least: referrer_name, referrer_email, lead_name, lead_email, and optionally company and note.
2. Normalize the data
Drop a Set (Edit Fields) node right after the webhook to map raw form fields into clean, predictable keys. This is where you trim whitespace, lowercase emails, and set a submitted_at timestamp using an expression like {{ $now.toISO() }}. Normalizing once here means every downstream node reads from the same tidy structure instead of fragile raw form keys.
3. Fan out with four branches
Connect the Set node's output to four nodes in parallel (n8n lets one node feed many):
- Send Email / Gmail node — To:
{{ $json.referrer_email }}, a warm subject like "Thanks for the intro, {{ $json.referrer_name }} 🙌", and an HTML body that names the person they referred. Use your transactional provider (Gmail, SMTP, SendGrid) via the corresponding node. - HubSpot node — Resource: Contact, Operation: Create or Update (upsert on email to avoid duplicates). Map
lead_emailto email,lead_nameto first/last name, and set a custom property such aslead_source = "Referral"plusreferred_by = {{ $json.referrer_email }}for clean attribution. - Google Sheets node — Operation: Append Row. Map each normalized field to a column: timestamp, referrer, lead, company, note. This is your zero-cost backup and reporting layer.
- Slack node — Operation: Send Message to your
#sales-leadschannel. Compose a scannable message: "🔥 New referral: {{ $json.lead_name }} ({{ $json.company }}) referred by {{ $json.referrer_name }}. Follow up now." Include the lead email so a rep can act without leaving Slack.
4. Handle failures gracefully
On the HubSpot and Sheets nodes, open Settings and turn on Retry On Fail (2–3 attempts). Add an Error Trigger workflow that posts to a separate #automation-alerts Slack channel so a transient API hiccup never silently swallows a referral. Activate the workflow and send a test submission — confirm all four outputs fire before you trust it in production.
The Benefits: What Changes the Day You Turn It On
The payoff is immediate and compounding:
- Sub-minute response. Sales is notified while the referrer is literally still on the confirmation page. Speed-to-lead is your biggest conversion lever, and this pins it to seconds.
- Zero data entry. No rep ever retypes a lead into HubSpot. That's fewer typos, fewer duplicates (thanks to upsert), and hours reclaimed each week.
- Referrers feel seen. The instant thank-you turns a one-time referrer into a repeat one. Acknowledgment is the cheapest referral-loyalty tactic there is.
- Bulletproof attribution. Every referral is stamped in both HubSpot and Sheets, so you can finally prove which channel — and which advocates — drive pipeline.
- Self-hosted and cheap. Running on your own n8n instance, this costs you nothing per execution. Scale from 10 referrals a month to 10,000 without a per-lead SaaS fee.
Common Pitfalls (and How to Avoid Them)
Automation fails quietly, so guard against these before they cost you a lead:
- Duplicate contacts in HubSpot. Always use Create or Update keyed on email, never plain Create. Otherwise every re-submission spawns a duplicate and pollutes your CRM.
- Expired OAuth credentials. HubSpot, Gmail, and Google Sheets tokens expire. Without an Error Trigger watchdog, you'll discover the outage only when a rep asks where the leads went. Wire the alert channel on day one.
- No spam filter on the webhook. A public webhook invites junk. Add an IF node after normalization to drop submissions with missing emails or obvious spam patterns before they hit HubSpot.
- Thank-you email landing in spam. Send from an authenticated domain (SPF/DKIM configured) rather than a raw SMTP relay, or your goodwill gesture never gets read.
- Treating Sheets as the source of truth. The spreadsheet is a backup and reporting layer — HubSpot is the system of record. Don't let two teams edit two versions of reality.
- Skipping the test submission. Always fire a real end-to-end test after any credential change. A pipeline that "looks connected" but silently drops the Slack branch is worse than no automation, because you'll assume it's working.
Wire it once, test it properly, and your referral channel goes from a leaky manual chore to the fastest, most reliable pipeline you own — working every hour of every day without anyone touching it.
Ja construimos isso pra voce
Nao comece do zero. O Referral Form → Thank-You Email + HubSpot Lead + Sheets Log + Slack e um workflow n8n pronto para instalar — conecta suas ferramentas em minutos, sem codigo.
Instalar por $29 →