- Home
- Resources
- Integrations
- Lemlist
Lemlist n8n integrationAutomate Lemlist with n8n.
Your outreach data should not stop at the Lemlist dashboard. The node exposes 15 operations across 6 resources, from creating a lead to pulling campaign stats, and the trigger listens to 47 events in 19 families. The Lemlist n8n integration suits sales teams who want replies handled the minute they land.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Lemlist n8n integration actually give you?
The Lemlist n8n integration links your cold outreach campaigns to every other tool you run, through two nodes that ship with n8n. The Lemlist node calls the Lemlist API for you: 15 operations spread over 6 resources (Activity, Campaign, Enrichment, Lead, Team, Unsubscribe). The Lemlist Trigger listens to 47 events over a webhook, which is simply a URL that Lemlist calls the moment something happens in a campaign.
Start with replies, because that is where outreach leaks. Subscribe the trigger to emailsReplied, pass the payload to a classifier, and route the positive ones to a channel in Slack while the polite refusals go straight to unsubscribe.add. Nobody reopens the dashboard to sort a morning of replies by hand.
Second pattern: feeding campaigns. A prospect list lands in Google Sheets, n8n reads the new rows, runs enrich.enrichPerson to fill in the missing email or phone, then calls lead.create with the campaign picked in the dropdown. Turn on Deduplicate and the same address never lands in two sequences.
Third pattern: reporting that updates itself. Once a week, campaign.getAll lists the campaigns, campaign.getStats pulls the numbers for a date window, and the result is written to a sheet or pushed into Mautic so the marketing side sees the same figures as the sales side.
Where the node stops, the HTTP Request node takes over. Creating a campaign, editing a sequence or editing an existing lead are not in the catalogue, so you call those endpoints with HTTP Request and reuse the same Lemlist credential through predefined authentication. No second key to manage.
Two limits worth knowing before you build. The Lead resource covers create, get, delete and unsubscribe, nothing else, so a mid-sequence field update goes through HTTP Request. And list operations are paginated: leave Return All off and n8n stops at Limit, which is fine for a preview and wrong for an export. If you want the wider picture on the platform itself, the n8n review and the n8n training cover the parts that are not Lemlist specific.
How do you connect Lemlist to n8n?
- 01
Grab your Lemlist API key
Both nodes authenticate the same way, and the catalogue lists a single supported method: an API key. Open your Lemlist account and go to Settings > Integrations, where the key is displayed. Copy it somewhere safe for the next step. There is no OAuth flow and no authentication selector on the node, so this key is the only thing standing between n8n and your campaigns.
- 02
Create the credential once in n8n
In n8n, open the Credentials menu and create a Lemlist credential, then paste the value into the API Key field and save. A credential lives outside the workflow: create it once and every Lemlist node in every workflow offers it in its dropdown, including the Lemlist Trigger. The same credential also works for HTTP Request calls to endpoints the node does not cover.
- 03
Select it on the node, then activate
Drop a Lemlist node on the canvas, pick the credential, then choose a resource and an operation. If you also want to listen to campaign activity, add the Lemlist Trigger and tick the events you care about. Activating the workflow is what registers the webhook URL with Lemlist, so a trigger left in draft receives nothing, no matter how well it is configured.
What can the Lemlist Trigger listen to?
Lemlist Trigger is the node that starts a workflow when something happens in Lemlist. It listens to 47 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Lemlist 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.
linkedin.*12emails.*10aircall.*5api.*4manual.*2attracted.*1attracted.attracted
connection.*1contacted.*1contacted.contacted
custom.*1hooked.*1hooked.hooked
interested.*1interested.interested
lemwarm.*1not.*1opportunities.*1paused.*1paused.paused
resumed.*1resumed.resumed
send.*1skipped.*1skipped.skipped
warmed.*1warmed.warmed
The trigger also accepts * (any event). Handy for logging, dangerous in production.
Configuration notes
01Set up the Lemlist Trigger
The Lemlist Trigger receives events over a webhook: when you activate the workflow, n8n registers its URL with Lemlist, and every matching event arrives within seconds instead of being fetched on a schedule.
Key parameters
- Event: the list of 47 events to subscribe to, from
contactedtosendLimitReached. A wildcard entry (*) subscribes the workflow to everything at once, handy while you explore what Lemlist actually sends. - Campaign Name or ID (in Options): restricts the hook to a single campaign, picked from the list or set with an expression such as
{{ $json.campaignId }}. - Is First: fires only the first time a given activity happens for a lead, so a prospect who opens the same email six times does not start six workflow runs.
02Email events (10 events)
Ten events cover the life of an email in a sequence, and this is the family most workflows start with.
Key parameters
- Emails Sent (
emailsSent), Emails Opened (emailsOpened), Emails Clicked (emailsClicked): the engagement side, useful for scoring a lead before a human touches it. - Emails Replied (
emailsReplied), Emails Interested (emailsInterested), Emails Not Interested (emailsNotInterested): the outcome side, where a reply becomes a task, a deal or a removal. - Emails Bounced (
emailsBounced), Emails Send Failed (emailsSendFailed), Emails Failed (emailsFailed): three separate failure signals, worth subscribing to together so nothing slips through. - Emails Unsubscribed (
emailsUnsubscribed): the opt out, to mirror into your CRM the same day.
03LinkedIn events (12 events)
The largest family of the catalogue, twelve events, tracks the LinkedIn steps of a multichannel sequence from profile visit to voice note.
Key parameters
- LinkedIn Visit Done (
linkedinVisitDone) and LinkedIn Visit Failed (linkedinVisitFailed): the profile visit step succeeded or did not run. - LinkedIn Invite Done (
linkedinInviteDone), LinkedIn Invite Failed (linkedinInviteFailed), LinkedIn Invite Accepted (linkedinInviteAccepted): the connection request and its answer, the moment most teams want a notification. - LinkedIn Sent (
linkedinSent), LinkedIn Send Failed (linkedinSendFailed), LinkedIn Replied (linkedinReplied): direct messages and their answers. - LinkedIn Voice Note Done (
linkedinVoiceNoteDone) and LinkedIn Voice Note Failed (linkedinVoiceNoteFailed): the voice note step, plus LinkedIn Interested (linkedinInterested) and LinkedIn Not Interested (linkedinNotInterested) for the qualification.
04Call, API and manual events (11 events)
Three families describe what happens outside email and LinkedIn: calls placed through Aircall, custom API steps, and the qualifications a human records by hand.
Key parameters
- Aircall Created (
aircallCreated), Aircall Ended (aircallEnded), Aircall Done (aircallDone): the call step from creation to completion, five events in total with Aircall Interested (aircallInterested) and Aircall Not Interested (aircallNotInterested). - Api Done (
apiDone) and Api Failed (apiFailed): an API step of the sequence ran or broke, the pair to watch when your own service is part of the campaign. - Api Interested (
apiInterested), Manual Interested (manualInterested), Manual Not Interested (manualNotInterested): qualification coming from the API or from a person, useful because the same outcome reaches you through different paths.
05Lead lifecycle and account health (14 events)
The remaining families are single events, and they split in two groups: where a lead stands in the funnel, and whether the sending side is healthy.
Key parameters
- Contacted (
contacted), Hooked (hooked), Attracted (attracted), Warmed (warmed): the channel agnostic funnel stages, easier to sync to a CRM than a dozen granular events. - Interested (
interested), Not Interested (notInterested), Opportunities Done (opportunitiesDone), Skipped (skipped): the outcomes, including the lead the sequence stepped over. - Paused (
paused) and Resumed (resumed): a sequence put on hold and restarted. - Connection Issue (
connectionIssue), Custom Domain Errors (customDomainErrors), Send Limit Reached (sendLimitReached), Lemwarm Paused (lemwarmPaused): the alerting family, the one nobody sets up until the day a campaign goes quiet.
What can the Lemlist node do?
The Lemlist node exposes 15 operations across 6 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Delete | Add | Enrich Lead | Enrich Person | Get Credits | Get Stats | Unsubscribe |
|---|---|---|---|---|---|---|---|---|---|---|
| Activity | ✓ | |||||||||
| Campaign | ✓ | ✓ | ||||||||
| Enrichment | ✓ | ✓ | ✓ | |||||||
| Lead | ✓ | ✓ | ✓ | ✓ | ||||||
| Team | ✓ | ✓ | ||||||||
| Unsubscribe | ✓ | ✓ | ✓ |
Operations index
Activity
1 operationGet many activities
activity.getAllWhat you see in n8n
Notes & use cases
Returns the activity feed of the account, one item per recorded action: an open, a reply, an accepted invite, a failed send. The readable counterpart of the trigger, for workflows that look backwards.
Key parameters
- Return All: on, n8n walks every page of the feed; off, it stops at Limit.
- Type (in the Filters collection): narrows the feed to one activity type, with the same 47 values as the trigger.
- Campaign Name or ID and Lead ID: scope the feed to one campaign or one prospect.
- Is First: keeps only the first occurrence of each activity.
Campaign
2 operationsGet many campaigns
campaign.getAllWhat you see in n8n
Notes & use cases
Lists the campaigns of the account with their identifiers. Most teams use it as the first step of a loop, since almost every other operation needs a campaign ID rather than a campaign name.
Key parameters
- Return All: enabled, every campaign comes back page after page; disabled, Limit caps the list.
- Version (in Filters): targets a specific API version when your account needs it.
Get campaign stats
campaign.getStatsWhat you see in n8n
Notes & use cases
Pulls the performance figures of one campaign over a date window. Four fields are required here, more than anywhere else in the node, because the API needs an unambiguous period.
Key parameters
- Campaign Name or ID: the campaign to measure, picked from the list or passed as
{{ $json.campaignId }}from the previous node. - Start Date and End Date: the window boundaries, in the format shown by the placeholder (
e.g. 2024-09-03 00:00:00Z). - Timezone: the zone the window is read in, such as
Europe/Paris. Skip it and the run fails, since the field is required.
Enrichment
3 operationsFetches a previously completed enrichment
enrich.getWhat you see in n8n
Notes & use cases
Retrieves the result of an enrichment that already ran. Enrichment is asynchronous: the enrich operations start the job, this one collects what came back, so it usually sits after a Wait node.
Key parameters
- Enrichment ID: the identifier of the enrichment to retrieve, normally taken from the output of the operation that launched it with an expression like
{{ $json.id }}.
Enrich a lead using an email or LinkedIn URL
enrich.enrichLeadWhat you see in n8n
Notes & use cases
Launches an enrichment on a lead that already exists in Lemlist, using the data attached to it. The four toggles decide what the job looks for, and each one is a separate search.
Key parameters
- Lead ID: the identifier of the lead to enrich, required, usually coming from a previous node.
- Find Email and Verify Email: look for a professional address, then check it before it is used in a sequence.
- Find Phone: adds a phone number to the record.
- LinkedIn Enrichment: completes the profile from LinkedIn.
Enrich a person using an email or LinkedIn URL
enrich.enrichPersonWhat you see in n8n
Notes & use cases
Same enrichment engine, but on a person who is not yet a lead in a campaign. Nothing is required: you describe the person with whatever you have, and the operation works from there.
Key parameters
- Email, First Name, Last Name (in Additional Fields): the identity you start from.
- LinkedIn Url: often the most reliable single input.
- Company Name and Company Domain: the employer side, which helps when several people share a name.
- Find Email, Verify Email, Find Phone, LinkedIn Enrichment: the four searches to run.
Lead
4 operationsCreate a lead
lead.createWhat you see in n8n
Notes & use cases
Adds a prospect to a campaign, which is where the sequence starts for that person. The lead and its personalization fields are created in the same call.
Key parameters
- Campaign Name or ID: the campaign the lead is created under, required, from the dropdown or an expression.
- Email: the address of the lead, in the form
name@email.com. - Deduplicate (in Additional Fields): blocks the insert if the address already exists in another campaign.
- First Name, Company Name, Job Title, Icebreaker: the variables your templates use.
- Find Email, Verify Email, Find Phone: enrich on the way in.
Delete a lead
lead.deleteWhat you see in n8n
Notes & use cases
Removes a prospect from a campaign. The sequence stops for that person and the record leaves the campaign, which is stronger than an unsubscribe and not reversible from the workflow.
Key parameters
- Campaign Name or ID: the campaign the lead is removed from, required, because the same address can exist in several campaigns.
- Email: the address to delete, passed as
{{ $json.email }}when it comes from a CRM or a form.
Get a lead
lead.getWhat you see in n8n
Notes & use cases
Fetches a single prospect and its fields as Lemlist stores them. Handy as a guard clause: check what is already there before writing anything.
Key parameters
- Email: the address of the lead to retrieve. The field is not marked required, so an empty value makes the operation run without the filter you expected. Set it explicitly, most often from the trigger payload.
Unsubscribe a lead
lead.unsubscribeWhat you see in n8n
Notes & use cases
Stops the sequence for a prospect inside one campaign while keeping the record in place, unlike the delete operation. This is the polite exit, and the one to use when a reply says no.
Key parameters
- Campaign Name or ID: the campaign to unsubscribe the lead from, required; a lead present in three campaigns needs three calls.
- Email: the address concerned, generally read from the event that triggered the workflow.
Team
2 operationsGet a team
team.getWhat you see in n8n
Notes & use cases
Returns the team attached to the credential, with its identifier and its settings as the API exposes them. No parameter to fill: the API key already says which team it belongs to.
Get team credits
team.getCreditsWhat you see in n8n
Notes & use cases
Reads the credit balance of the team, exactly as the API reports it. No parameter to fill: the response reflects whatever plan and usage the account currently has.
Unsubscribe
3 operationsAdd an email to an unsubscribe list
unsubscribe.addWhat you see in n8n
Notes & use cases
Puts an address on the account wide unsubscribe list. Broader than unsubscribing a lead from one campaign: the address is excluded going forward, whichever campaign tries to reach it.
Key parameters
- Email: the address to add to the unsubscribes, in the form
name@email.com, usually taken from the event payload.
Delete an email from an unsubscribe list
unsubscribe.deleteWhat you see in n8n
Notes & use cases
Takes an address back off the unsubscribe list, which makes it reachable again by future campaigns. Rare, deliberate, and worth logging somewhere your team can audit.
Key parameters
- Email: the address to delete from the unsubscribes. Nothing else is asked, so an expression pointing at the wrong field removes the wrong person.
Get many unsubscribed emails
unsubscribe.getAllWhat you see in n8n
Notes & use cases
Exports the addresses currently on the unsubscribe list. The reference list when you need to reconcile Lemlist with a CRM or a newsletter tool.
Key parameters
- Return All: on, the whole list comes back page by page; off, Limit decides how many addresses you get.
Need help automating Lemlist with n8n?
A person reads every message.

