1. Opening Problem Statement
Meet Sarah, a marketing manager at a mid-sized SaaS company. She spends countless hours manually transferring data from Typeform lead capture forms into HubSpot, updating lead stages, and sending personalized follow-up emails. This repetitive manual work not only eats into her time but also causes delays in contacting potentially high-value leads. Sarah has noticed some leads slip through the cracks, leading to lost opportunities and a lack of timely engagement. If only there were a way to streamline this process and ensure every interested lead is promptly followed up with!
2. What This Automation Does
This specific n8n workflow automates Sarah’s exact process of managing leads generated from a Typeform survey. Once a new form submission arrives, the workflow:
- Reads and extracts detailed lead information from the Typeform responses.
- Creates a new contact in HubSpot CRM with full contact details including name, email, company, and department.
- Evaluates the lead’s interest level to determine if they want to scale visual content (a specific qualifying question in the form).
- Updates the lead’s lifecycle stage in HubSpot to “opportunity” if the lead shows interest.
- Sends a personalized follow-up email via Gmail inviting the interested lead to schedule a call and provides relevant resources.
- Logs non-interested leads without advancing their status, ensuring clean data without unnecessary follow-ups.
By automating these tasks, Sarah saves at least 4 hours weekly that she previously spent on manual data entry and follow-up emails. Moreover, it guarantees every interested lead receives timely, targeted communication.
3. Prerequisites ⚙️
- n8n account – to create and run the automation workflow.
- Typeform account with a published form containing lead capture questions and a unique Form ID.
- HubSpot account with API credentials allowing contact creation and updates.
- Gmail account with OAuth2 credentials to send personalized emails.
4. Step-by-Step Guide
Step 1: Set Up the Typeform Trigger Node
In n8n, click Add Node → Trigger → Typeform Trigger. Enter your Form ID for your active Typeform lead capture survey.
You’ll see a webhook URL generated—this URL receives data when someone submits your form. It confirms the live connection between Typeform and n8n.
Common mistake: Forgetting to publish your Typeform or using the wrong Form ID results in no triggers firing.
Step 2: Use the Set Node to Map Form Responses
Add a Set node next, click Properties → Values. Map your form questions to output fields. For example:
form_firstnamemapped from “First up, what’s your name?”form_lastnamefrom the surname question.form_department,form_companyname, andform_emailsimilarly mapped.form_interestset as a Boolean from the question, “Are you currently looking to scale your visual content?”
This node normalizes your incoming data for easier processing downstream.
Common mistake: Incorrect question references or typos here lead to missing or wrong data later.
Step 3: Create New Contact in HubSpot
Add a HubSpot node configured for contact creation. Use dynamic expressions to set:
email: fromform_emailfirstName,lastName,industry: from departmentcompanyNamefromform_companyname
Connect this node after the Set values node.
You should see your contact successfully created in HubSpot if the inputs are valid.
Common mistake: Missing or invalid HubSpot API credentials will cause this node to fail.
Step 4: Check Lead Interest with If Node
Add an If node to evaluate if form_interest is true (lead is interested in scaling visual content).
Set condition boolean: = {{$node["Set values"].json["form_interest"]}} == true.
This condition routes the workflow into two paths — one for interested leads and the other for uninterested ones.
Step 5: Update Lead Stage if Interested
In the true branch path, add a HubSpot node configured to update the lifeCycleStage to opportunity for the contact, using the contact’s email from the previous HubSpot node.
Common mistake: Not passing the correct contact email with the expression results in no update.
Step 6: Send Personalized Follow-Up Email via Gmail
After the lead stage update, add a Gmail node configured to send an email:
toList: Contact email from updated contact data.subject: “So you’re interested in growing your business”message: Personalized message including a calendly_link and a presentation link.
This delivers rapid, tailored follow-up to nurture the lead.
Step 7: Handle Non-Interested Leads with NoOp Node
For leads not interested in scaling, connect the false path of the If node to a NoOp node.
This effectively ends the workflow for uninterested leads without extra processing.
5. Customizations ✏️
- Add More Lead Qualification Questions: Include additional questions in your Typeform and map them in the Set node. Modify the If node conditions to track multiple lead behavior types.
- Send Different Follow-Up Emails: Use a Switch node instead of If to send various emails based on interest or product category indicated in the form.
- Integrate Calendly Link Dynamically: Store Calendly URLs in an external source like Google Sheets; use n8n Google Sheets node to fetch and insert the correct link in emails.
- Log Leads into a Database: Connect a database node like MySQL or Airtable to record leads for reporting or backup before or after HubSpot creation.
6. Troubleshooting 🔧
Problem: HubSpot node returns authentication error
Cause: HubSpot API credentials invalid or expired.
Solution: Go to n8n Credentials → Update HubSpot API key and re-test node connection.
Problem: Gmail node fails to send emails
Cause: OAuth2 permissions not granted or token expired.
Solution: Reauthenticate Gmail account in n8n credentials and ensure send email rights are allowed.
7. Pre-Production Checklist ✅
- Verify Typeform trigger fires on new submissions with the correct form ID.
- Test data mapping in Set node matches your Typeform question keys.
- Confirm HubSpot contact creation and lifecycle stage update do not throw errors.
- Send test emails via Gmail node and verify receipt.
- Backup your n8n workflow JSON before deployment.
8. Deployment Guide
Activate your workflow by switching it ON in n8n. Monitor through n8n’s executions tab for errors or failed runs. Set up email notifications for failures if needed. For production-level stability, consider self-hosting n8n on platforms like Hostinger for improved control and uptime.
9. FAQs
Can I use other form tools instead of Typeform?
Yes, you can replace the Typeform Trigger with webhook or API nodes for other form providers like Google Forms or JotForm, but you will need to adjust data parsing in the Set node.
Does this workflow consume API credits?
It uses HubSpot and Gmail API calls, so yes, but the usage is minimal for typical lead volumes and won’t breach free tier limits easily.
Is my lead data secure?
All credentials are stored securely in n8n, and data flows over encrypted APIs. Make sure you use HTTPS webhook URLs in production to safeguard data.
10. Conclusion
By following this guide, you’ve automated the entire lead capture and qualification process from Typeform into HubSpot, with personalized Gmail follow-ups. This saves hours weekly, reduces human errors, and ensures fast contact with interested prospects. Next, consider automating lead scoring in HubSpot or integrating Slack notifications for your sales team to act immediately when a hot lead arrives. Keep exploring n8n’s powerful nodes to enhance your marketing workflows further.
Happy automating! ⚙️