Resources · n8n integration

Emelia n8n integrationAutomate Emelia with n8n.

Cold email that reacts on its own. The Emelia n8n integration gives a workflow 9 operations across campaigns and contact lists, plus a trigger that listens to 6 campaign events. Made for the people who run sequences and copy addresses by hand far too often.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What does the Emelia n8n integration actually do?

Emelia is a cold email tool. The n8n node talks to its API through 9 operations spread over 2 resources, Campaign and Contact List, so a workflow can open a campaign, drop contacts into it, start it, pause it, or read back what already exists. The Emelia Trigger works the other way around: 6 campaign events reach n8n over a webhook, meaning a URL that n8n registers with Emelia when you activate the workflow.

Start with the list that fills itself. A row lands in Google Sheets after a webinar, n8n reads it, and contactList.add files the address in the Emelia contact list you selected. Nothing gets pasted by hand, and the list stays the one place your sequences draw from.

Second shape: replies that reach a human fast. The trigger listens for replied, the item travels through your workflow, and the alert lands in Slack where sales can pick it up. Same logic with Gmail when the answer has to leave from a personal mailbox rather than the sending tool.

Third shape: the campaign you rebuild every month. campaign.duplicate copies a reference campaign along with its Options, campaign.addContact fills it from wherever your prospects live, and campaign.start puts it live once the contacts and the email provider are set. One schedule drives all three.

The node covers those 9 operations over 2 resources. For an Emelia API endpoint outside that catalog, the HTTP Request node calls it directly and reuses the same credential through predefined authentication, so there is no second key to store anywhere.

Two habits save time while building. Every field marked required stops the node when it comes back empty, so an expression that resolves to nothing breaks the execution instead of sending half a contact. And on the two read operations, leaving Return All off means n8n stops at Limit, fine for a spot check, short for a full export. Still weighing platforms? The n8n review lays out the trade-offs, and the n8n training walks through building workflows like these.

Connect

How do you connect Emelia to n8n?

  1. 01

    Generate the API Key in Emelia

    You need an Emelia account first. Once you are in, select the avatar at the top right to open your Settings, then open API Keys and generate one. That key is the single authentication method the node and the trigger accept, so keep it somewhere safe while you set up the rest.

  2. 02

    Create the credential in n8n

    In n8n, open the Credentials menu and add an Emelia credential. A credential is the stored login n8n reuses on your behalf. Paste the API Key into the single field and save. Nothing else is asked for, since the node has no authentication selector: one key covers everything.

  3. 03

    Select it in the node and the trigger

    Drop an Emelia node on the canvas and pick the credential from the dropdown. It stays available in every other workflow, and the Emelia Trigger reads the same one. As soon as it is selected, fields like Campaign Name or ID load your real campaigns instead of asking you to type an identifier.

Triggers

What can the Emelia Trigger listen to?

Emelia Trigger is the node that starts a workflow when something happens in Emelia. It listens to 6 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Emelia account.

What you see in n8n

Every event, by family

One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.

bounced.*1
  • bounced.
    • bounced
clicked.*1
  • clicked.
    • clicked
opened.*1
  • opened.
    • opened
replied.*1
  • replied.
    • replied
sent.*1
  • sent.
    • sent
unsubscribed.*1
  • unsubscribed.
    • unsubscribed

Configuration notes

01Configure the Emelia TriggerVersion 1 of the trigger asks for two things before it runs.

Version 1 of the trigger asks for two things before it runs.

Key parameters

  • Campaign Name or ID: required, and it scopes the whole trigger. Pick one from the list. An expression such as {{ $json.field }} works too, when the campaign is decided elsewhere.
  • Events: the six boxes you tick, sent, opened, clicked, replied, bounced and unsubscribed. There is no catch-all option, so select each one you want to react to.
When to use it
any time the workflow should start from Emelia activity rather than from a schedule. Activating the workflow registers the webhook URL with Emelia, and events then arrive within seconds, with no polling loop to configure. Read the payload with {{ $json.field }} in the nodes that follow. One trigger node covers one campaign. A second sequence needs its own node, with its own selection of events, and it reuses the credential you already created for the Emelia node.
02Email RepliedThe replied event fires when Emelia records a reply on the campaign you selected in the trigger.

The replied event fires when Emelia records a reply on the campaign you selected in the trigger.

Key parameters

  • Events: tick Email Replied on its own for a workflow dedicated to answers, since every ticked event enters the same branch.
  • Campaign Name or ID: one campaign per trigger node, so a second sequence needs a second trigger.
Use cases
the most useful of the six for a sales team. Route the item to a channel, open a task, and stop the follow-up for that person by filing them somewhere quieter. If you also want the contact captured in a reusable pool, chain contactList.add right after the trigger and let the address land in the list your next sequence reads. Keep one thing in mind: the trigger only fires while the workflow is active, so a reply that arrives during an editor test goes nowhere.
03Link ClickedThe clicked event fires when Emelia records a click on a link in the campaign.

The clicked event fires when Emelia records a click on a link in the campaign.

Key parameters

  • Events: Link Clicked pairs badly with high-volume events in the same node if you want a clean branch, so give it its own trigger when the follow-up differs.
  • Campaign Name or ID: the campaign whose links you care about.
Use cases
useful as a soft signal between silence and a reply. A common build sends the item to an IF node, checks a value with {{ $json.field }}, and only then adds the person to a warmer campaign through campaign.addContact. Everyone else stays in the sequence they are already in. Nothing stops you from ticking it next to replied in a single node, as long as the branch that follows can tell the two apart from what it receives.
04Email BouncedThe bounced event fires when Emelia records a bounce on the selected campaign.

The bounced event fires when Emelia records a bounce on the selected campaign.

Key parameters

  • Events: Email Bounced is the one worth keeping on almost every workflow, because it is the event that tells you the data is wrong.
  • Campaign Name or ID: bounces are reported per campaign, so a full picture means one trigger per active sequence.
Use cases
write the address into the sheet your team cleans, and flag the source it came from. Teams running several sequences at once usually pair this event with campaign.pause so a human decides what happens next instead of the workflow deciding alone. Pair it with a dated line in the record your team actually reads, so the same address does not come back in the next import.
05Unsubscribed ContactThe unsubscribed event fires when a contact unsubscribes from the campaign.

The unsubscribed event fires when a contact unsubscribes from the campaign.

Key parameters

  • Events: Unsubscribed Contact belongs in the workflow that owns your suppression handling, on its own or next to bounced.
  • Campaign Name or ID: the sequence the person opted out of.
Use cases
the value of this one is what happens outside Emelia. Push the item to the CRM, the sheet or the tool that holds your do-not-contact record, reading whatever you need with {{ $json.field }}. The point is that the person is removed from the next campaign before anyone builds it, not after. Ticking it on every trigger you build costs nothing, and missing one costs more than it looks on paper. A second branch can file the address in your reporting sheet, so the decision stays auditable months later.
Actions

What can the Emelia node do?

The Emelia node exposes 9 operations across 2 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.

Resources × operations matrix
ResourceCreateGetGet ManyAddAdd ContactDuplicatePauseStart
Campaign✓✓✓✓✓✓✓
Contact List✓✓

Campaign

7 operations
01

Add a contact to a campaign

campaign.addContact

What you see in n8n

Notes & use cases

Pushes one contact into a campaign that already exists, so the person enters that sequence.

Key parameters

  • Campaign Name or ID: required, chosen from the list n8n loads from your account or passed as an expression such as {{ $json.field }} when the target changes per item.
  • Contact Email: required, the address to add.
  • Additional Fields: 8 optional entries, among them First Name, Last Name, Phone Number and Custom Fields, added one at a time with Add Custom Field.
Use cases
a demo request arrives, and the address joins the running campaign the same minute instead of waiting for the weekly import.
02

Create a campaign

campaign.create

What you see in n8n

Notes & use cases

Opens a new campaign under the name you give it, the empty shell the other operations then fill.

Key parameters

  • Campaign Name: required, and the only field asked for. A plain string, so an expression like {{ $json.field }} can name the campaign after the account, the month or the segment that triggered the workflow.
Use cases
onboarding a new client account. The workflow opens the campaign, names it to match your internal convention, and hands the identifier to the next node before anyone logs into Emelia.
03

Duplicate a campaign

campaign.duplicate

What you see in n8n

Notes & use cases

Copies an existing campaign into a new one, and you decide what travels with it.

Key parameters

  • Campaign Name or ID: required, the campaign used as the model.
  • New Campaign Name: required, the name of the copy.
  • Options: 4 switches, Copy Contacts, Copy Email Sequence, Copy Email Provider and Copy Global Settings. Leave Copy Contacts off to reuse the writing without carrying the old audience over.
Use cases
a reference campaign becomes the monthly template, cloned with its sequence and settings, then filled with a fresh segment.
04

Get a campaign

campaign.get

What you see in n8n

Notes & use cases

Reads back a single campaign so the rest of the workflow can branch on what Emelia holds.

Key parameters

  • Campaign ID: required. Here it is a plain text field rather than the dropdown used elsewhere in the node, so the value has to come from somewhere, usually an earlier node through {{ $json.field }}.
Use cases
right after a duplicate, to confirm the copy exists before starting it. Also handy at the top of a workflow that must not act twice on the same campaign in one run.
05

Get many campaigns

campaign.getAll

What you see in n8n

Notes & use cases

Lists the campaigns in the account, one item per campaign, ready for filtering downstream.

Key parameters

  • Return All: on, n8n walks through the pages of the API and brings back every campaign; off, it stops at Limit.
  • Limit: the maximum number of campaigns returned when Return All is off.
Use cases
the Monday inventory. Pull every campaign, keep the ones that match your naming rule, and let the workflow decide which ones deserve a pause. No required field here, so it runs as is.
06

Pause a campaign

campaign.pause

What you see in n8n

Notes & use cases

Stops a campaign that is currently sending, without touching its contacts or its sequence.

Key parameters

  • Campaign ID: required, and the campaign must be in RUNNING mode for the operation to apply. A campaign that is already stopped is not a valid target, which is worth an IF node before this one in a loop.
Use cases
a bank holiday, an incident on the product, or a bounce pattern someone wants to look at. One workflow pauses everything that matches, and a second one starts it again later.
07

Start a campaign

campaign.start

What you see in n8n

Notes & use cases

Puts a campaign into sending mode, which is the last step of any build-it-from-scratch workflow.

Key parameters

  • Campaign ID: required, and two conditions apply before it works. The email provider must be set on the campaign, and the contacts must already be loaded. Create, then add, then start, in that order.
Use cases
closing a chain that created a campaign, cloned a sequence and loaded a segment. It also restarts what an earlier pause put on hold, once the reason for the pause is gone.

Contact List

2 operations
08

Add a contact list

contactList.add

What you see in n8n

Notes & use cases

Files a contact in one of your contact lists, the reusable pool that exists outside any single campaign.

Key parameters

  • Contact List Name or ID: required, picked from the list or given as an expression.
  • Contact Email: required, the address to store.
  • Additional Fields: the same 8 optional entries as the campaign side, including Last Contacted, Last Open, Last Replied and Mails Sent when you are carrying history over from another tool.
Use cases
a migration. Every row of the old export lands in a list, dated, and the first campaign built on top of it starts with clean data.
09

Get many contact lists

contactList.getAll

What you see in n8n

Notes & use cases

Returns the contact lists in the account, which is how a workflow finds an identifier it was never told.

Key parameters

  • Return All: on, every list comes back across as many API pages as it takes; off, the node stops at Limit.
  • Limit: caps how many lists are returned.
Use cases
a lookup step. Fetch the lists, match the one whose name matches the segment in your item, then feed that identifier straight into the operation that adds the contact.
Need help

Need help automating Emelia with n8n?

A person reads every message.

FAQ

Emelia and n8n, the questions that come up

01Is the Emelia n8n integration free?
On the n8n side, yes. The Emelia node and the Emelia Trigger ship with n8n, so there is nothing to install and nothing extra to pay for. That holds on n8n Cloud, the hosted offer run by n8n, and on a self-hosted instance installed with Docker or npm under the Community Edition and its Sustainable Use license. A workflow behaves the same way in both places, which matters if you prototype on Cloud and move later. What you do need on the other side is an Emelia account, because the credential is built from an API key generated there.
02What credentials does the Emelia node need?
One API key, and that is the only supported authentication method. Create an Emelia account, select the avatar at the top right to reach your Settings, open API Keys and generate one. In n8n, add an Emelia credential from the Credentials menu and paste the key into the API Key field. The node has no authentication selector, so there is no second method to weigh up. The same credential is used by the Emelia node and by the Emelia Trigger, and once saved it is offered in the dropdown of every workflow you build afterwards, with no need to paste the key again.
03What are the limits of the Emelia node in n8n?
Three worth knowing before you build. Required fields block the node when they are empty, so an expression that resolves to nothing stops the execution rather than sending something incomplete. Pagination is manual on the two read operations: with Return All off, n8n stops at Limit, and with it on, it walks through the pages of the API until there is nothing left. Some operations expect a given state, since Pause a campaign applies to a campaign in RUNNING mode and Start a campaign needs its email provider and its contacts set. Anything outside the 9 operations goes through the HTTP Request node, which calls the Emelia API endpoint directly and reuses the same credential.
04Does the Emelia Trigger react in real time?
Yes. The trigger runs on a webhook, which is a URL that n8n exposes and Emelia calls. Activating the workflow registers that URL, and from then on each event reaches n8n within seconds. There is no polling interval to set, and no schedule to tune. You select one campaign in Campaign Name or ID and tick the events you want among the 6 available, with no catch-all option to select them all at once. One detail to plan for: the trigger only fires on an active workflow, so a test run in the editor is not the same thing as production traffic.
05n8n or Make for Emelia?
It comes down to four criteria, not to which tool is better. Hosting first: n8n runs on your own server with Docker or npm, or on n8n Cloud, while Make is hosted only. Data control follows from that, since a self-hosted instance keeps prospect addresses and campaign payloads inside your own infrastructure. Cost model next: Make bills per operation, which a cold email workflow reacting to 6 event types can consume quickly. Visual logic last, and it is mostly a matter of habit. Both platforms have an Emelia node, so the honest answer is that the decision is made on hosting and billing rather than on this integration.