Reference · Tools

Lemlist

Manage cold outreach campaigns, leads, activities, enrichment, and unsubscribes via the Lemlist API

Action Communication v2

The Lemlist node manages cold outreach end to end: campaigns and their statistics, leads, activities, enrichment, team information and unsubscribe lists. A typical build is adding enriched leads into a campaign and monitoring their activity so replies get routed to the right rep.

Node type
Action
Parameters
37
Outputs
Output, Error
Credentials
Lemlist API

Lemlist

Manage Lemlist campaigns, leads, activities, enrichment, and unsubscribes

Overview

Lemlist is a cold outreach automation platform. This tool interacts with the Lemlist API to manage campaigns, leads, activities, team info, enrichment, and unsubscribe lists. It supports creating, deleting, and retrieving leads within campaigns; listing activities and campaigns; getting campaign statistics; enriching leads and people; and managing the global unsubscribe list.

Category: Communication
Tool Name: lemlist
Version: 2

Appearance: Icon: lucide-Mail | Color: #4B47F5

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Lemlist API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Activityactivity
Campaigncampaign
Enrichmentenrich
Leadlead
Teamteam
Unsubscribeunsubscribe

Operations

OperationValueDescription
Get ManygetAllList activities (Activity resource)
Get ManygetAllList campaigns (Campaign resource)
Get StatsgetStatsGet statistics for one campaign (Campaign resource)
GetgetRetrieve a previous enrichment by ID (Enrichment resource)
Enrich LeadenrichLeadEnrich a lead that already exists in Lemlist (Enrichment resource)
Enrich PersonenrichPersonEnrich a person from the details you supply (Enrichment resource)
CreatecreateAdd a lead to a campaign (Lead resource)
DeletedeleteRemove a lead from a campaign (Lead resource)
GetgetRetrieve a lead by email (Lead resource)
UnsubscribeunsubscribeUnsubscribe a lead from a campaign (Lead resource)
GetgetGet team information (Team resource)
Get CreditsgetCreditsGet remaining team credits (Team resource)
AddaddAdd an email to the global unsubscribe list (Unsubscribe resource)
DeletedeleteRemove an email from the global unsubscribe list (Unsubscribe resource)
Get ManygetAllList globally unsubscribed emails (Unsubscribe resource)

Parameters

Team: Get and Team: Get Credits take no parameters of their own — see All Operations.

Activity: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo5Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the activity list. Add only the filters you need.
— Campaign IDstringNoID of the campaign to retrieve activity for. Find this in Lemlist under the campaign URL or via the Campaign: Get Many operation.
— Is FirstbooleanNofalseWhether to filter for first activities only.
— Lead IDstringNoID of the lead to retrieve activities for.
— TypeoptionsNoemailsOpenedType of activity to retrieve.
Options: aircallCreated, aircallDone, aircallEnded, aircallInterested, aircallNotInterested, apiDone, apiFailed, apiInterested, apiNotInterested, attracted, connectionIssue, contacted, customDomainErrors, emailsBounced, emailsClicked, emailsFailed, emailsInterested, emailsNotInterested, emailsOpened, emailsReplied, emailsSendFailed, emailsSent, emailsUnsubscribed, hooked, interested, lemwarmPaused, linkedinInterested, linkedinInviteAccepted, linkedinInviteDone, linkedinInviteFailed, linkedinNotInterested, linkedinReplied, linkedinSendFailed, linkedinSent, linkedinVisitDone, linkedinVisitFailed, linkedinVoiceNoteDone, linkedinVoiceNoteFailed, manualInterested, manualNotInterested, notInterested, opportunitiesDone, paused, resumed, sendLimitReached, skipped, warmed
— VersionstringNov2API version for pagination. Use “v2” for page-based pagination.

Campaign: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo5Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Optional listing settings.
— VersionstringNov2API version for pagination.

Campaign: Get Stats

ParameterTypeRequiredDefaultDescription
Campaign IDstringYesID of the campaign to get stats for. Find this via the Campaign: Get Many operation or in the Lemlist campaign URL. Supports expressions like {{ $json.campaignId }}.
Start DatestringYesStart date for statistics period (ISO 8601 format). Supports expressions.
End DatestringYesEnd date for statistics period (ISO 8601 format). Supports expressions.
TimezonestringYesTimezone for the statistics period (IANA timezone identifier). Supports expressions.

Enrichment: Get

ParameterTypeRequiredDefaultDescription
Enrichment IDstringYesID of the enrichment to retrieve. Supports expressions.

Enrichment: Enrich Lead

ParameterTypeRequiredDefaultDescription
Lead IDstringYesID of the lead to enrich. Supports expressions.
Find EmailbooleanNofalseWhether to find verified email.
Verify EmailbooleanNofalseWhether to verify existing email.
LinkedIn EnrichmentbooleanNofalseWhether to run LinkedIn enrichment.
Find PhonebooleanNofalseWhether to find phone number.

Enrichment: Enrich Person

ParameterTypeRequiredDefaultDescription
Find EmailbooleanNofalseWhether to find verified email.
Verify EmailbooleanNofalseWhether to verify existing email.
LinkedIn EnrichmentbooleanNofalseWhether to run LinkedIn enrichment.
Find PhonebooleanNofalseWhether to find phone number.
Additional FieldscollectionNo{}The details Lemlist matches the person on. Supply at least enough to identify them.
— EmailstringNoKnown email address for the person.
— First NamestringNoFirst name of the person.
— Last NamestringNoLast name of the person.
— LinkedIn URLstringNoLinkedIn profile URL for the person.
— Company NamestringNoCompany the person works for.
— Company DomainstringNoDomain of the person’s company.

Lead: Create

ParameterTypeRequiredDefaultDescription
Campaign IDstringYesID of the campaign to add the lead to. Find this via the Campaign: Get Many operation or in the Lemlist campaign URL. Supports expressions.
EmailstringNoEmail of the lead to create. Supports expressions like {{ $json.email }}.
Additional FieldscollectionNo{}Optional lead attributes. Add only the ones you need.
— Company NamestringNoCompany name of the lead.
— Company DomainstringNoCompany domain of the lead.
— DeduplicatebooleanNofalseWhether to skip insert if this email is already present in another campaign.
— Find EmailbooleanNofalseWhether to find verified email.
— Find PhonebooleanNofalseWhether to find phone number.
— First NamestringNoFirst name of the lead.
— IcebreakerstringNoIcebreaker text for the lead.
— Job TitlestringNoJob title of the lead.
— Last NamestringNoLast name of the lead.
— LinkedIn EnrichmentbooleanNofalseWhether to run LinkedIn enrichment.
— LinkedIn URLstringNoLinkedIn URL of the lead.
— PhonestringNoPhone number of the lead.
— Picture URLstringNoPicture URL of the lead.
— Verify EmailbooleanNofalseWhether to verify existing email.

Lead: Delete

ParameterTypeRequiredDefaultDescription
Campaign IDstringYesID of the campaign to remove the lead from. Supports expressions.
EmailstringNoEmail of the lead to delete. Supports expressions.

Lead: Get

ParameterTypeRequiredDefaultDescription
EmailstringNoEmail of the lead to retrieve. Supports expressions.

Lead: Unsubscribe

ParameterTypeRequiredDefaultDescription
Campaign IDstringYesID of the campaign to unsubscribe the lead from. Supports expressions.
EmailstringNoEmail of the lead to unsubscribe. Supports expressions.

Unsubscribe: Add

ParameterTypeRequiredDefaultDescription
EmailstringNoEmail to add to the global unsubscribe list. Supports expressions.

Unsubscribe: Delete

ParameterTypeRequiredDefaultDescription
EmailstringNoEmail to remove from the global unsubscribe list. Supports expressions.

Unsubscribe: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo5Max number of results to return. (shown when Return All is false)

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

The Lemlist response is merged into the incoming item JSON at the top level, so the fields you sent in pass through and binary data is forwarded.

OperationOutput items
activity / getAll, campaign / getAll, unsubscribe / getAllFans out — one output item per record. With Return All on, every page is fetched; otherwise up to Limit records. A run that matches nothing produces no output items for that input, so the branch can be empty.
campaign / getStatsOne item — the statistics for the requested window.
enrich / get, enrichLead, enrichPersonOne item — the enrichment record. Enrichment is asynchronous at Lemlist, so a start request returns the enrichment’s identifiers; use Enrichment: Get to read the finished result.
lead / create, delete, get, unsubscribeOne item — the lead record Lemlist returns for the action.
team / get, getCreditsOne item — the team record or the remaining credit counts.

Usage Examples

  • List all campaigns
  • Add a lead to a campaign
  • Get campaign statistics
  • Enrich a lead with LinkedIn data
  • Unsubscribe an email address

Example Configuration

List recent activities filtered by campaign and type:

{
  "type": "lemlist",
  "parameters": {
    "resource": "activity",
    "operation": "getAll",
    "returnAll": false,
    "limit": 50,
    "filters": {
      "campaignId": "cam_abc123",
      "type": "emailsOpened",
      "isFirst": true,
      "version": "v2"
    }
  }
}

Get statistics for one campaign over a date range:

{
  "type": "lemlist",
  "parameters": {
    "resource": "campaign",
    "operation": "getStats",
    "campaignId": "cam_abc123",
    "startDate": "2024-01-01T00:00:00Z",
    "endDate": "2024-01-31T23:59:59Z",
    "timezone": "America/New_York"
  }
}

Add a fully described lead to a campaign:

{
  "type": "lemlist",
  "parameters": {
    "resource": "lead",
    "operation": "create",
    "campaignId": "cam_abc123",
    "email": "{{ $json.email }}",
    "additionalFields": {
      "firstName": "John",
      "lastName": "Doe",
      "companyName": "Example Corp",
      "companyDomain": "example.com",
      "jobTitle": "Marketing Director",
      "linkedinUrl": "https://linkedin.com/in/johndoe",
      "findEmail": true,
      "verifyEmail": true,
      "linkedinEnrichment": true,
      "deduplicate": true,
      "icebreaker": "I noticed your recent post about marketing automation"
    }
  }
}

Enrich a person from the details you already hold:

{
  "type": "lemlist",
  "parameters": {
    "resource": "enrich",
    "operation": "enrichPerson",
    "findEmail": true,
    "verifyEmail": true,
    "linkedinEnrichment": true,
    "findPhone": false,
    "additionalFields": {
      "firstName": "Jane",
      "lastName": "Smith",
      "companyName": "Tech Startup Inc",
      "companyDomain": "techstartup.com",
      "linkedinUrl": "https://linkedin.com/in/janesmith"
    }
  }
}

Enrich a lead that already exists in Lemlist:

{
  "type": "lemlist",
  "parameters": {
    "resource": "enrich",
    "operation": "enrichLead",
    "leadId": "lead_xyz789",
    "findEmail": true,
    "verifyEmail": true,
    "linkedinEnrichment": true,
    "findPhone": true
  }
}

Check the team’s remaining credits:

{
  "type": "lemlist",
  "parameters": {
    "resource": "team",
    "operation": "getCredits"
  }
}

Add an address to the global unsubscribe list:

{
  "type": "lemlist",
  "parameters": {
    "resource": "unsubscribe",
    "operation": "add",
    "email": "unsubscribe@example.com"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage Lemlist cold outreach campaigns, leads, activities, enrichment, team info, and unsubscribe lists.

Common Patterns

Campaign management workflow

  1. Get all campaigns to find the target campaign ID
  2. Get campaign statistics for performance analysis
  3. Create new leads in the campaign
  4. Monitor activities for engagement tracking

Lead enrichment workflow

  1. Create a lead with basic information
  2. Enrich the lead with additional data (LinkedIn, phone, email verification)
  3. Monitor lead activities
  4. Handle unsubscribes if needed

Bulk operations

When processing multiple items, use the maxConcurrency parameter to control the rate of API calls and avoid rate limiting.

Important

  • Collection parameters use a flat object structure
  • The operation parameter is always required and must match the selected resource
  • Campaign IDs can be found via the Campaign “getAll” operation or from Lemlist campaign URLs
  • Email addresses are case-sensitive and must be valid
  • ISO 8601 date format is required for date parameters
  • Always check display conditions — parameters only appear when their conditions are met
  • Lead-level unsubscribe is not the same as the global list. lead / unsubscribe stops one campaign; unsubscribe / add suppresses the address everywhere.

Frequently asked questions

What does a normal campaign workflow look like?

Get all campaigns to find the target campaign ID, pull its statistics for performance analysis, create leads in the campaign, then monitor activities for engagement tracking.

How does lead enrichment fit in?

Create the lead with basic information, run enrichment to add LinkedIn, phone and email verification data, then monitor the resulting activities.

Can it manage unsubscribes?

Yes — unsubscribe list management is supported, which matters for compliance when syncing suppression data between systems.

How do I react to outreach events as they happen?

Use the Lemlist Trigger for inbound events such as replies, and this node for the actions that follow.

Build with the Lemlist node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Lemlist API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.