How to Use n8n to Send Automated Email Campaigns
Email marketing is still one of the highest-ROI channels available to businesses and creators. But manually writing, scheduling, and sending emails to hundreds or thousands of contacts? That quickly becomes a full-time job. With n8n, you can build powerful automated email workflows that run on their own — triggered by real events, personalised for each recipient, and fully under your control.
This guide walks you through exactly how to set up an automated email campaign using n8n, whether you are connecting to a CRM like activecampaign, pulling contacts from a spreadsheet, or triggering emails based on user behaviour.
Why Use n8n for Email Automation?
n8n is a self-hostable, open-source workflow automation tool that connects hundreds of apps and services through a visual node-based editor. Unlike traditional email platforms, n8n gives you full flexibility over your logic, data handling, and integrations — without locking you into a single tool's ecosystem.
- No vendor lock-in: Connect any email provider, CRM, or database you already use.
- Event-driven triggers: Send emails when a form is submitted, a purchase is made, or a date condition is met.
- Full data control: Filter, transform, and personalise every email with dynamic fields.
- Free self-hosted option: Run n8n on your own server and scale without per-email costs.
What You Will Need
- An active n8n account or a self-hosted instance
- An email sending service (e.g. Gmail, SMTP, SendGrid, or activecampaign)
- A contact list (Google Sheets, Airtable, a database, or a CRM like activecampaign)
- Basic understanding of n8n nodes and workflows
Step 1: Set Up Your Trigger
Every n8n workflow starts with a trigger — the event that kicks off the automation. For email campaigns, common triggers include:
- Schedule Trigger: Send a weekly newsletter every Monday at 9am.
- Webhook Trigger: Fire an email sequence when someone fills out a form or signs up.
- CRM Trigger: Start a drip sequence when a new lead is added to activecampaign.
- Database row added: Trigger when a new contact appears in your Airtable or Google Sheet.
In n8n, drag a Schedule or Webhook node onto your canvas and configure the timing or endpoint URL.
Step 2: Fetch Your Contact List
After the trigger fires, n8n needs to know who to send the emails to. Connect a node to read from your contact source:
- Use the Google Sheets node to pull rows of contacts with name and email columns.
- Use the Airtable node to query a filtered view of active subscribers.
- Use the activecampaign node to pull contacts from a specific list or tag.
- Use the HTTP Request node to call your own API or CRM endpoint.
The n8n workflow will then loop through each contact automatically using the built-in item iteration system.
Step 3: Personalise Your Email Content
This is where n8n really shines. Using its expression editor, you can dynamically insert any field from your contact data into the email content. For example:
- Subject line: Hey {{ $json["first_name"] }}, your weekly update is here
- Body text: Reference purchase history, location, or any custom field from your contact record.
- Conditional content: Use an IF node to send different email versions based on tags or segments.
You can write your email in plain HTML inside the n8n Send Email node, or use a template from your email provider connected via API.
Step 4: Send the Email
Now connect your sending node. n8n supports several options:
- Send Email node (SMTP): Works with Gmail, Outlook, or any SMTP server.
- SendGrid node: For transactional or marketing sends at scale.
- activecampaign node: Trigger a campaign or add a contact to an automation directly inside activecampaign.
- HTTP Request: Use any email API with a custom request.
Configure the node with your credentials, map the To field to the email address from your contact data, and add your personalised subject and body. The n8n workflow handles the rest.
Step 5: Add Error Handling and Logging
Professional email automation needs to be reliable. In n8n, you can add:
- Error Trigger node: Catch failed sends and notify yourself via Slack or email.
- Set node: Log each sent email back to a Google Sheet or database for tracking.
- Wait node: Add delays between emails in a drip sequence to avoid spam filters.
Step 6: Test and Activate
Before going live, always run a test in n8n using a small batch of contacts or a test email address. Use the built-in execution view to inspect each node's input and output. Once everything looks correct, toggle the workflow to Active and n8n will run it automatically according to your trigger rules.
Bonus: Integrate n8n With ActiveCampaign for Advanced Campaigns
For more advanced segmentation, lead scoring, and drip sequences, pairing n8n with activecampaign is a powerful combination. n8n can pull segment data from activecampaign, apply custom logic, update contact fields, and trigger automations — all without touching the activecampaign interface manually.
This means you can build campaign logic that activecampaign alone cannot handle natively — such as pulling external data before deciding which campaign to trigger, or cross-referencing multiple data sources before sending.
Final Thoughts
Automated email campaigns do not have to mean rigid, inflexible systems locked inside a single platform. With n8n, you get the freedom to build exactly the logic your business needs — pulling from any data source, personalising at scale, and connecting to tools like activecampaign for professional-grade delivery.
Start simple: a weekly newsletter trigger, a Google Sheet of contacts, and a Send Email node. Then expand from there. Once the workflow is live in n8n, your campaigns run themselves.
This post was created with tools we use and recommend: n8n for workflow automation, Turbotic as an AI-native automation alternative, ElevenLabs for AI voiceover, Placid for visual content creation, and Hostinger for reliable VPS hosting. Some links are affiliate links.