Resources · n8n integration

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

Why automate

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.

Connect

How do you connect Lemlist to n8n?

  1. 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.

  2. 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.

  3. 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.

Triggers

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.*12
    emails.*10
      aircall.*5
        api.*4
          manual.*2
            attracted.*1
            • attracted.
              • attracted
            connection.*1
              contacted.*1
              • contacted.
                • contacted
              custom.*1
                hooked.*1
                • hooked.
                  • hooked
                interested.*1
                • interested.
                  • interested
                lemwarm.*1
                  not.*1
                    opportunities.*1
                      paused.*1
                      • paused.
                        • paused
                      resumed.*1
                      • resumed.
                        • resumed
                      send.*1
                        skipped.*1
                        • skipped.
                          • skipped
                        warmed.*1
                        • warmed.
                          • warmed

                        The trigger also accepts * (any event). Handy for logging, dangerous in production.

                        Configuration notes

                        01Set up the Lemlist TriggerThe 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.

                        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 contacted to sendLimitReached. 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.
                        When to use it
                        start narrow with the wildcard on a test campaign, look at the payloads, then switch to the two or three events you really need.
                        02Email events (10 events)Ten events cover the life of an email in a sequence, and this is the family most workflows start with.

                        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.
                        Use cases
                        a bounce that writes the address to a cleanup sheet, a reply that pings the account owner.
                        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.

                        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.
                        When to use it
                        an accepted invite is a warm moment; wire it to a task in your CRM rather than to yet another channel message.
                        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.

                        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.
                        Use cases
                        a failed API step that opens an incident instead of dying silently in the campaign log.
                        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.

                        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.
                        When to use it
                        route the last four to an ops channel, they are operational problems rather than sales signals.
                        Actions

                        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.

                        Resources × operations matrix
                        ResourceCreateGetGet ManyDeleteAddEnrich LeadEnrich PersonGet CreditsGet StatsUnsubscribe
                        Activity✓
                        Campaign✓✓
                        Enrichment✓✓✓
                        Lead✓✓✓✓
                        Team✓✓
                        Unsubscribe✓✓✓

                        Activity

                        1 operation
                        01

                        Get many activities

                        activity.getAll

                        What 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.
                        Use cases
                        a nightly recap of everything that moved on a campaign, written to a sheet.

                        Campaign

                        2 operations
                        02

                        Get many campaigns

                        campaign.getAll

                        What 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.
                        Use cases
                        feed the list into a Loop node, then call the stats operation on each campaign to build a weekly table without hardcoding a single ID.
                        03

                        Get campaign stats

                        campaign.getStats

                        What 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.
                        Use cases
                        a Monday report comparing last week to the one before.

                        Enrichment

                        3 operations
                        04

                        Fetches a previously completed enrichment

                        enrich.get

                        What 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 }}.
                        Use cases
                        a two stage workflow where a batch of contacts is sent for enrichment in the morning and collected an hour later, once the results are ready.
                        05

                        Enrich a lead using an email or LinkedIn URL

                        enrich.enrichLead

                        What 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.
                        Use cases
                        top up a lead imported with nothing but a first name and a company before the first email goes out.
                        06

                        Enrich a person using an email or LinkedIn URL

                        enrich.enrichPerson

                        What 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.
                        Use cases
                        qualify a form submission before deciding whether it deserves a sequence at all.

                        Lead

                        4 operations
                        07

                        Create a lead

                        lead.create

                        What 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.
                        Use cases
                        a new row in a sourcing sheet becomes a lead in the right sequence.
                        08

                        Delete a lead

                        lead.delete

                        What 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.
                        Use cases
                        a prospect who becomes a customer mid sequence, pulled out of the acquisition campaign the moment the deal is signed in your CRM.
                        09

                        Get a lead

                        lead.get

                        What 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.
                        Use cases
                        before creating a lead, look it up; if the record exists with an icebreaker already written, the workflow skips the creation branch and moves on.
                        10

                        Unsubscribe a lead

                        lead.unsubscribe

                        What 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.
                        Use cases
                        a classifier reads an incoming reply, tags it as a refusal, and this operation closes the loop without anyone opening Lemlist.

                        Team

                        2 operations
                        11

                        Get a team

                        team.get

                        What 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.

                        Use cases
                        a first step in a workflow shared between several Lemlist accounts, to confirm which team the credential actually points at before any write operation runs. It is also the quickest way to check that a freshly pasted API key works, since a wrong key fails here without touching a single campaign.
                        12

                        Get team credits

                        team.getCredits

                        What 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.

                        Use cases
                        put it at the top of a workflow that also calls enrichment operations, log the balance daily, and flag your ops channel when the number drops sharply, so a stalled enrichment run gets noticed before someone chases it by hand.

                        Unsubscribe

                        3 operations
                        13

                        Add an email to an unsubscribe list

                        unsubscribe.add

                        What 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.
                        Use cases
                        a single opt out form on your site that feeds this operation, so a person who asked to be left alone never resurfaces in next quarter's campaign.
                        14

                        Delete an email from an unsubscribe list

                        unsubscribe.delete

                        What 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.
                        Use cases
                        a contact who opted out, then came back through a demo request and explicitly agreed to be contacted again, cleared by a workflow that keeps the written trace.
                        15

                        Get many unsubscribed emails

                        unsubscribe.getAll

                        What 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.
                        Use cases
                        a monthly sync that reads the full list and flags the matching contacts in your marketing database, so an address refused in Lemlist is not emailed from another tool three weeks later.
                        Need help

                        Need help automating Lemlist with n8n?

                        A person reads every message.

                        FAQ

                        Lemlist and n8n, the questions that come up

                        01Is the Lemlist n8n integration free?
                        On the n8n side, yes. The Lemlist node and the Lemlist Trigger ship with n8n, so there is nothing to install and nothing extra to pay, whether you run n8n Cloud or self-host the Community Edition under the Sustainable Use license. A workflow behaves the same either way, and moving from one to the other does not change the node configuration. What you do need is a Lemlist account that can issue an API key, since that key is the only authentication method the two nodes support. What a Lemlist plan costs is a separate question this page does not cover.
                        02What credentials do you need to connect Lemlist to n8n?
                        One API key, and nothing else. Open your Lemlist account, go to Settings > Integrations, copy the key, then create a Lemlist credential in the Credentials menu of n8n and paste it into the API Key field. There is no OAuth option and no authentication selector on the node itself. The credential is shared: the Lemlist node, the Lemlist Trigger and any HTTP Request call using predefined authentication all pick it from the same dropdown. Create it once and reuse it across every workflow, which also means rotating the key later is a single edit rather than a hunt through the canvas.
                        03What are the limits of the Lemlist node in n8n?
                        The node covers 15 operations over 6 resources, which is the outreach core: leads, campaigns, activities, enrichment, team and unsubscribes. It does not create or edit campaigns, does not edit a sequence, and does not update a lead once created. Those calls go through the HTTP Request node, reusing the same credential through predefined authentication. The other limit is pagination: list operations return only up to Limit unless Return All is enabled, which surprises people exporting an unsubscribe list. Enrichment is asynchronous too, so plan for a wait between launching a job and fetching its result.
                        04Does the Lemlist Trigger react in real time?
                        Yes. The trigger works over a webhook, meaning n8n registers a URL with Lemlist when you activate the workflow and Lemlist calls that URL as soon as something happens. Events arrive within seconds, with no polling and no interval to configure. Two details matter in practice. A workflow left inactive has no registered webhook, so nothing arrives however carefully you ticked the events. And the Is First option limits a hook to the first occurrence of an activity per lead, which keeps a prospect opening the same email all afternoon from starting a run every time.
                        05n8n or Make for Lemlist?
                        It depends on where you want your data and how you want to pay. Make is hosted only and billed per operation, which is comfortable at low volume and predictable in its own way. n8n runs on n8n Cloud or on your own server, so prospect data can stay on infrastructure you control, and the cost model is not tied to the number of operations a workflow performs. With 47 trigger events, a busy Lemlist account generates a lot of runs, which is exactly where the two models diverge. The logic itself is visual on both sides.