Affiliate/Ads disclaimer: Some links on this blog are affiliate/ads links to support this project going on, meaning I may earn a commission at no extra cost to you.
n8n for Marketing Automation: CRM Sync, Email & Lead Routing
n8n automates marketing by connecting CRMs, email platforms, and web forms through event‑driven workflows. A single workflow can capture a form submission, create or update a contact in HubSpot, send a personalised email via Mailchimp, and route the lead to a Salesforce queue—all within seconds of the initial click. This guide demonstrates real implementations using webhooks, field mapping, and conditional routing for lean marketing teams. [1]
How do you sync web form submissions directly into a CRM like HubSpot?
Connect your form’s webhook to a Webhook trigger in n8n, then add the HubSpot node to create or update a contact. The Webhook node receives the raw form data as JSON; a Set node maps field names from your form to HubSpot’s API field keys. The contact is created instantly after submission. [1]
For multi‑property enrichment, the Set node also merges static data like lead source or campaign name. To sync with Salesforce instead, swap the HubSpot node for the Salesforce node—both support upsert by email. For more on data mapping, see our nodes & expressions guide.
How do you send automated emails via Mailchimp from an n8n workflow?
Use the Mailchimp node with an API key credential to add a subscriber to an audience, update merge fields, or trigger a campaign. Place it after the CRM sync node to enrol a new lead into a nurture sequence automatically. The node’s “Add Member” operation requires the audience ID and at minimum the subscriber’s email address. [2]
For personalised content, map contact properties from HubSpot into Mailchimp merge fields via a Set node. This lets you dynamically populate the first name, company, or custom fields in the email template. This entire flow aligns with the marketing ROI strategies that turn form fills into revenue faster.
How do you route leads to the correct Salesforce queue using n8n?
After creating or updating a lead in Salesforce, use an IF or Switch
node to read the lead’s country, source, or custom field value. Route
the lead to the correct Salesforce queue by setting the
OwnerId field to the corresponding queue ID. An
Update Record node applies the assignment immediately.
[3]
Queue IDs are static values you can store in an n8n Global Variable or a Google Sheet for easy maintenance. For multi‑condition routing (e.g., US leads to queue A, EU leads to queue B), use a Switch node instead of chained IF nodes. This pattern is described further in n8n IF & Switch branching guide.
How do you enrich a contact record with additional data from an external API?
Add an HTTP Request node after the CRM node but before the email node. Call a data‑enrichment API like Clearbit or Apollo, passing the contact’s email or domain. A Set node extracts the returned company size, role, or LinkedIn URL and appends it to the contact record in HubSpot or Salesforce before routing. [4]
Enrichment data makes lead scoring and segmentation more accurate. For privacy compliance, always verify the enrichment APIs terms of use. To handle rate limits on the enrichment API, consider looping with SplitInBatches if you need to enrich thousands of contacts in bulk.
How do you build a two‑way CRM sync between HubSpot and Salesforce?
Create two workflows, each starting with the respective app’s trigger (HubSpot → New Contact, Salesforce → New Contact). When HubSpot fires, create the contact in Salesforce via its node. When Salesforce fires, create the contact in HubSpot. A shared lookup key—usually email—prevents duplicates. [5]
To handle updates, add an IF node that checks whether the contact already exists by searching the target CRM. If found, use an Update operation; if not, use Create. This bidirectional pattern keeps marketing and sales teams aligned. For production hardening, see our error workflow & retry guide.
How do you capture form submissions without a native n8n form trigger?
Any HTML form can POST to an n8n Webhook trigger. Configure the
form’s action attribute to the webhook’s Production URL.
The Webhook node in n8n receives application/x-www-form-urlencoded
or JSON data. Set the “Response Mode” to “Using ‘Respond to Webhook’
Node” to send a custom thank‑you page.
[6]
For no‑code forms, integrate Typeform, Google Forms, or JotForm which offer their own n8n trigger nodes. Each sends a structured JSON payload you can map directly into a CRM. Regardless of the source, always validate incoming data with a Set node before writing to your CRM to prevent dirty data. n8n trigger types explained covers the differences between webhook and polling triggers in detail.

