Skip to content

Sales Enablement

Lemlist
API integration

Ship Sales Enablement features without building the integration. Full Lemlist API access via Proxy, normalized data through Unified APIs, and 80+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
Lemlist

Use Cases

Why integrate with Lemlist

Common scenarios for SaaS companies building Lemlist integrations for their customers.

01

Power autonomous AI SDR agents with live Lemlist outreach

AI sales agent platforms can use Truto to push AI-researched prospects and generated copy directly into active Lemlist campaigns on behalf of the correct sender, enabling fully autonomous outbound sequences without manual intervention.

02

Route intent-triggered leads to the right sales rep's sequence

Intent data and job-change tracking platforms can match prospects to the correct Lemlist user via Truto's Unified User Directory API, ensuring automated enrollments send from the right rep's mailbox for maximum relevance and deliverability.

03

Sync CRM contacts into Lemlist sequences from a single pane of glass

Niche and vertical CRMs can offer one-click sequence enrollment by pushing contacts into Lemlist campaigns through Truto, giving their users outbound automation without leaving the CRM.

04

Build unified sales performance dashboards across outreach tools

Revenue intelligence and BI platforms can pull Lemlist campaign analytics alongside data from other sales tools via Truto, giving revenue leaders a consolidated view of outbound performance metrics.

05

Pause outreach automatically when deals progress

Pipeline management tools can react to deal-stage changes by removing or pausing prospects in Lemlist sequences via Truto, preventing awkward cold emails from reaching prospects who are already in active conversations.

What You Can Build

Ship these features with Truto + Lemlist

Concrete product features your team can ship faster by leveraging Truto’s Lemlist integration instead of building from scratch.

01

Rep-aware lead routing for outbound enrollment

Map your platform's users to Lemlist Users and Workspaces via Truto's Unified User Directory API so leads are always enrolled under the correct SDR's sender identity.

02

Workspace and team member sync

Automatically import and keep in sync the Lemlist Team (Workspace) structure and its Users so your product reflects the customer's real sales org.

03

One-click sequence enrollment from your UI

Let your users select a contact in your app and push them into a specific Lemlist campaign with pre-populated custom variables — no tab-switching required.

04

AI-generated icebreaker injection

Pass AI-written personalization fields like custom icebreakers or research summaries as dynamic variables when adding leads to Lemlist campaigns through Truto.

05

Engagement-driven lead scoring updates

Listen for Lemlist activity events like email replies and LinkedIn interactions via webhooks, then update lead scores and trigger alerts inside your product in real time.

06

Outbound activity timeline in your CRM

Surface Lemlist send, open, reply, and bounce events on your product's contact timeline so users see the full engagement history without leaving your app.

SuperAI

Lemlist AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_lemlist_teams

Get the lemlist team associated with the authenticated account. Returns: _id, userIds, createdBy, createdAt, hooks, beta, slackWebhook, invitedUsers, agency, pictureId, example.

list_all_lemlist_team_senders

List team senders in lemlist with their associated campaigns. Returns: userId, campaigns. An optional state filter narrows results by campaign state (running, paused, draft, ended, archived, errors).

list_all_lemlist_team_credits

Get the lemlist team credit balance and its breakdown by source. Returns: credits, details, example.remaining with total, freemium, subscription, gifted, and paid credit counts.

list_all_lemlist_team_crm_users

List CRM integrations connected by team users in lemlist. Returns: userId, crm, example. No required parameters.

get_single_lemlist_user_by_id

Get a single lemlist user by id. Returns the user object including _id, email, role, linkedIn connection status and limits, and associated mailboxes with provider and warmup settings. Required: id.

list_all_lemlist_campaigns

List all lemlist campaigns with optional filtering by status and sorting. Returns: _id, name, labels, createdAt, createdBy, status, archived, isEnded, hasError. Supports filtering by status (running, draft, archived, ended, paused, errors) and sorting by createdAt.

create_a_lemlist_campaign

Create a new lemlist campaign. Returns the created campaign object including _id, name, sequenceId, scheduleIds, teamId, state, createdAt, and CRM configuration.

get_single_lemlist_campaign_by_id

Get a single lemlist campaign by id. Returns the campaign object including _id, name, labels, createdAt, createdBy, status, state, scheduleIds, and CRM configuration. Required: id.

update_a_lemlist_campaign_by_id

Update a lemlist campaign's configuration including name, stop conditions, and tracking settings. Returns: name, stopOnEmailReplied. Required: id.

lemlist_campaigns_pause

Pause a running lemlist campaign. Returns: _id, state. Required: campaign_id.

list_all_lemlist_campaigns_reports

Retrieve campaign report export status from lemlist, optionally filtered by campaign IDs. Returns a status object containing campaignId, campaignName, status, startedAt, endedAt, progress, total, and a download url for the exported report file.

list_all_lemlist_campaign_sequences

List all sequences for a lemlist campaign, returned as a map keyed by sequence id. Each sequence value includes _id, steps (each with _id, type, delay, emailTemplateId, index, message, and a conditions array for branching steps), level, parentId, and conditionalStepIndex. Required: campaign_id.

list_all_lemlist_campaign_schedules

List all schedules associated with a lemlist campaign. Returns: _id, name, secondsToWait, timezone, start, end, weekdays, teamId, createdBy, createdAt. Required: campaign_id.

create_a_lemlist_campaign_schedule

Associate a schedule with a lemlist campaign. Returns: scheduleId, campaignId. Required: campaign_id, schedule_id.

list_all_lemlist_campaign_stats

Get lemlist campaign statistics for a specific campaign, optionally filtered by date range and timezone. Returns: leadTotal, leadToLaunch, leadReadyToSend, leadInProgress, leadCompleted, sentCount, deliveredCount, openedCount, clickedCount, repliedCount, interestedCount. Required: campaign_id.

lemlist_campaign_stats_list_v_2

Get lemlist campaign statistics via the v2 API, with optional filters for date range, sender, A/B variant, and channels. Returns: _id, name, labels, createdAt, createdBy, status. Required: campaign_id.

list_all_lemlist_schedules

List all lemlist schedules. Returns: _id, name, secondsToWait, timezone, start, end, weekdays, teamId, createdBy, createdAt. Sorting is limited to the createdAt field.

create_a_lemlist_schedule

Create a new schedule in lemlist. Returns the created schedule including _id, name, secondsToWait, timezone, start, end, weekdays, public, teamId, createdBy, and createdAt.

get_single_lemlist_schedule_by_id

Get a single lemlist schedule by id. Returns: _id, name, secondsToWait, timezone, start, end, weekdays, teamId, createdBy, createdAt, public. Required: id.

update_a_lemlist_schedule_by_id

Update a lemlist schedule by id. Returns the updated schedule including _id, name, secondsToWait, timezone, start, end, weekdays, public, teamId, createdBy, and createdAt. Required: id.

delete_a_lemlist_schedule_by_id

Delete a lemlist schedule by id. Returns: _id. Required: id.

create_a_lemlist_sequence_step

Add a step to a lemlist sequence. Returns the created step including its _id, type, delay, emailTemplateId, and message. Required: sequence_id.

update_a_lemlist_sequence_step_by_id

Update a step in a lemlist sequence. Returns the updated step including its _id, type, delay, emailTemplateId, and message. Required: id, sequence_id.

delete_a_lemlist_sequence_step_by_id

Delete a step from a lemlist sequence. Returns: ok. Required: id, sequence_id.

get_single_lemlist_lead_by_id

Get a single lemlist lead by id. Returns: email, firstName, lastName, picture, phone, linkedinUrl, companyName, companyDomain, icebreaker, jobTitle, _id, isPaused, campaignId, emailStatus. Required: id.

lemlist_leads_search

Search for a lemlist lead by email or id. Returns: email, firstName, lastName, picture, phone, linkedinUrl, companyName, companyDomain, icebreaker, jobTitle, _id, isPaused, campaignId, emailStatus. At least one of email or id must be supplied.

create_a_lemlist_campaign_lead

Create a new lead in a lemlist campaign by email address. Returns: campaignId, campaignName, email, firstName, lastName, picture, phone, linkedinUrl, companyName, companyDomain, icebreaker, jobTitle, _id, isPaused, leadUrl. Required: campaign_id, email.

update_a_lemlist_campaign_lead_by_id

Update a lead in a lemlist campaign, such as setting the preferred contact method. Returns: campaignId, campaignName, email, firstName, lastName, picture, phone, linkedinUrl, companyName, companyDomain, icebreaker, jobTitle, preferredContactMethod, _id, isPaused, leadUrl. Required: id, campaign_id.

lemlist_campaign_leads_bulk_delete

Unsubscribe a lead from a lemlist campaign by email address. Returns: email, firstName, lastName, picture, phone, linkedinUrl, companyName, companyDomain, icebreaker, jobTitle, _id, isPaused, campaignId. Required: campaign_id, email.

create_a_lemlist_leads_start

Resume a paused lead in lemlist by start_id. Returns an array of lead objects each containing _id, email, firstName, lastName, isPaused, and campaignId. Required: start_id.

create_a_lemlist_leads_pause

Pause a lead in lemlist across all campaigns or within a specific campaign. Returns an array of lead objects including _id, email, firstName, lastName, companyName, campaignId, and isPaused (set to true). Optional: campaignId to limit the pause to a single campaign. Required: pause_id.

create_a_lemlist_leads_interested

Mark a lead as interested in lemlist by lead ID or email. Returns an array of lead objects including _id, email, firstName, lastName, companyName, campaignId, and isPaused. Required: lead_id_or_email.

create_a_lemlist_leads_notinterested

Mark a lemlist lead as not interested using the lead's id or email address. Returns an array of updated lead records including _id, email, firstName, lastName, companyName, companyDomain, isPaused, and campaignId for each campaign the lead belongs to. Required: lead_id_or_email.

create_a_lemlist_lead_interested

Mark a lemlist lead as interested in a specific campaign. Returns the lead object including _id, email, firstName, lastName, phone, companyName, companyDomain, jobTitle, isPaused, and campaignId. Required: campaign_id, lead_id_or_email.

create_a_lemlist_lead_notinterested

Mark a lemlist lead as not interested in a specific campaign. Returns the lead object including _id, email, firstName, lastName, companyName, and campaignId. Required: campaign_id, lead_id_or_email.

create_a_lemlist_lead_variable

Add custom variables to a lemlist lead. Variable names and values (e.g. company, preferredContactMethod) are passed as query parameters. Returns: ok. Required: lead_id.

lemlist_lead_variables_bulk_update

Update custom variables on a lemlist lead. Variable names and values (e.g. favoriteColor, company) are passed as query parameters. Returns: ok. Required: lead_id.

lemlist_lead_variables_bulk_delete

Delete custom variables from a lemlist lead. Variable names (e.g. company, favoriteColor) are passed as query parameters to identify which variables to remove. Returns an empty 204 response on success. Required: lead_id.

create_a_lemlist_leads_audio

Upload an audio file to a lemlist voice message step. Returns: ok, status.

list_all_lemlist_hooks

List all webhooks in your lemlist workspace. Returns: _id, targetUrl, createdAt, zapId, campaignId, type.

create_a_lemlist_hook

Create a new webhook in lemlist to receive real-time event callbacks. Returns: _id, targetUrl, createdAt, type, campaignId, zapId.

delete_a_lemlist_hook_by_id

Delete a webhook from your lemlist workspace by id. Returns: _id, targetUrl, createdAt, type, campaignId, zapId. Required: id.

list_all_lemlist_unsubscribes

List lemlist unsubscribes. Returns: _id, createdAt, value, source, example.

get_single_lemlist_unsubscribe_by_id

Get a single lemlist unsubscribe by id. Returns: _id, createdAt, value, source. Required: id.

create_a_lemlist_unsubscribe

Add an email or domain to the lemlist unsubscribe list. Returns: _id, createdAt, value, source. Required: unsubscribe_id.

delete_a_lemlist_unsubscribe_by_id

Delete a lemlist unsubscribe by id. Returns an empty 204 response on success. Required: id.

list_all_lemlist_unsubs_exports

Export unsubscribe records from lemlist. Returns an array of unsubscribe objects including _id, createdAt, value, and source.

get_single_lemlist_enrich_by_id

Get a single lemlist enrichment result by id. Returns: enrichmentId, enrichmentStatus, input, data, example. Required: id.

create_a_lemlist_enrich

Create a lemlist enrichment to find verified emails, verify existing emails, find phone numbers, or run LinkedIn enrichment. Returns: id. At least one enrichment action (findEmail, findPhone, linkedinEnrichment, or verifyEmail) must be enabled.

create_a_lemlist_lead_enrich

Enrich a lemlist lead by triggering email search, email verification, LinkedIn enrichment, or phone number lookup. Returns: id. Required: lead_id.

list_all_lemlist_export_starts

Start a campaign stats export in lemlist. Returns the export job object including _id, id, campaignId, status, startedAt, progressType, progress, and total. Required: campaign_id.

list_all_lemlist_export_status

Get the status of a campaign export in lemlist. Returns the export status object including ok, id, teamId, campaignId, campaignName, status, startedAt, endedAt, progress, total, and the download url. Required: campaign_id, export_id.

lemlist_export_emails_bulk_update

Export a lemlist campaign's send status for a specific email address. Returns: ok, status. Required: campaign_id, export_id, email.

list_all_lemlist_export_leads

Export leads from a lemlist campaign, optionally filtered by lead state. Returns lead records with email, firstName, lastName, _id, campaignId, emailStatus, companyName, companyDomain, jobTitle, phone, linkedinUrl, picture, icebreaker, isPaused. Supports json or csv output format. Required: campaign_id.

list_all_lemlist_crm_filters

List CRM filters from lemlist. Returns: id, name. Results can be narrowed by CRM name, connected user ID, or Salesforce filter type (lead, contact, report).

create_a_lemlist_leads_import

Import leads from a CRM into a lemlist campaign. Returns: ok. Required: campaign_id.

list_all_lemlist_activities

List lemlist activities with optional filters by activity type, campaign, lead, or version. Returns: _id, type, emailId, messageId, emailTemplateId, isFirst, stopped, createdAt, bot, teamId, leadId, campaignId, sequenceId, sequenceStep, createdBy, sendUserId, totalSequenceStep, sendUserName, sendUserEmail, sendUserMailboxId, sendUserMailboxProviderId, leadFirstName, leadLastName, leadEmail,…

lemlist_enrichments_bulk_create

Create bulk enrichment requests in lemlist by submitting an array of enrichment jobs with input data (LinkedIn URL, email, company name, domain, first/last name) and desired enrichment types. Returns an array of enrichment results, each containing id, metadata, and error (on failed items). Enrichment types include find_email, find_phone, verify, and linkedin_enrichment.

list_all_lemlist_database_filters

List lemlist database filters available for the People database. Returns: filterId, description, mode, type, helper, example.

create_a_lemlist_database_people

Search the lemlist people database by applying filter criteria in the request body. Returns: results, total, took, search, limitation, team. No required parameters.

list_all_lemlist_schema_peoples

Retrieve the people schema definition in lemlist, describing the field structure for person records including lead_id, full_name, country, experiences, education, skills, interests, and lead_quality_score. Returns: example.

create_a_lemlist_database_company

Search the lemlist companies database by applying filters such as technologies, country, or industry to find matching company records. Returns: company_id, company_name, company_website_url, company_domain, company_industry, company_location, techno_used_array, and additional company attributes.

list_all_lemlist_schema_companies

Get the companies schema from lemlist's people database, describing all available company attributes and their types. Returns: example.

list_all_lemlist_tasks

List lemlist tasks. Returns each task with _id, type, leadId, campaignId, contactId, dueDate, and userId.

create_a_lemlist_task

Create a new task in lemlist. Returns the created task object including _id, type, leadId, campaignId, contactId, dueDate, and userId.

lemlist_tasks_bulk_update

Update an existing task in lemlist. Returns the updated task object including _id, type, leadId, campaignId, contactId, dueDate, and userId.

create_a_lemlist_tasks_ignore

Ignore lemlist tasks associated with a lead. Returns an empty 204 response on success.

list_all_lemlist_inboxes

List lemlist inbox conversations. Returns: _id, opportunities, lastActivityAt, createdBy, teamId, contactId, users, createdAt, channels, haveReplies, lastRepliedAt, lastRepliedChannel, example.

get_single_lemlist_inbox_by_id

Get messages for a lemlist inbox contact conversation by id. Returns: _id, type, messageId, cc, createdAt, teamId, leadId, campaignId, sendUserId, sendUserName, sendUserEmail, sendUserMailboxId, leadEmail, contactId, message, subject, attachments. Required: id.

create_a_lemlist_inbox_email

Send an email from a lemlist inbox to a contact or lead. Returns: ok. Provide the sender's user ID/email/mailbox, the recipient's contactId or leadId, a subject, a message body, and an optional cc list.

create_a_lemlist_inbox_linkedin

Send a LinkedIn message to a lead or contact in lemlist. Returns: ok.

create_a_lemlist_inbox_whatsapp

Send a WhatsApp message to a contact in lemlist. Returns: ok.

list_all_lemlist_contacts

List lemlist contacts. Returns: _id, teamId, email, fullName, fields, campaigns, ownerId, createdAt, createdBy.

get_single_lemlist_contact_by_id

Get a single lemlist contact by id or email. Returns: _id, teamId, email, fullName, fields, campaigns, ownerId, createdAt, createdBy. Required: id.

lemlist_lemwarms_start

Start lemwarm email warmup for a specific mailbox in lemlist. Returns: ok. Required: user_mailbox_id.

lemlist_lemwarms_pause

Pause lemwarm email warmup for a specific mailbox in lemlist. Returns: ok. Required: user_mailbox_id.

list_all_lemlist_lemwarm_settings

Get lemwarm warm-up settings and deliverability diagnostics for a specific mailbox in lemlist. Returns: warmEmailRampup, warmEmailMax, activeAt, warmNextEmailAt, lastWarmAt, deliverability. Required: user_mailbox_id.

lemlist_lemwarm_settings_bulk_update

Update lemwarm warm-up settings for a specific mailbox in lemlist. Returns: ok. Required: user_mailbox_id.

list_all_lemlist_companies

List lemlist companies with optional search, sorting, and field selection. Returns: createdAt. Max 100 per page.

list_all_lemlist_company_notes

List notes for a lemlist company. Returns: _id, note, createdAt. Supports optional sorting by createdAt in ascending or descending order. Required: company_id.

create_a_lemlist_company_note

Create a note on a lemlist company. Returns: _id, note, createdAt. Required: company_id.

Why Truto

Why use Truto’s MCP server for Lemlist

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Lemlist

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Users

The User object represents a User.

View Docs

Workspaces

Workspaces represent concepts like teams, workspaces, projects in apps that support them

View Docs

How It Works

From zero to integrated

Go live with Lemlist in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Lemlist account

Use Truto’s frontend SDK to connect your customer’s Lemlist account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Lemlist

Truto’s Proxy API is a 1-to-1 mapping of the Lemlist API. You call us, we call Lemlist, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Lemlist’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Lemlist on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What authentication method does Lemlist's API use?

Lemlist supports Basic Auth (using an API key) and OAuth. Truto handles the auth flow for you, so your end users can connect their Lemlist accounts without your team managing tokens or credentials directly.

What Unified APIs does Truto offer for Lemlist?

Truto currently maps Lemlist to the Unified User Directory API, covering Users and Workspaces (Lemlist Teams). This lets you resolve which rep and team a lead should be routed to. Additional tools and unified models can be built on request.

Can I push leads into Lemlist campaigns through Truto?

Lemlist's API supports adding leads to campaigns with custom variables. While specific Truto tools for this are built on request, the integration can be scoped to cover lead creation, campaign enrollment, and dynamic variable injection based on your needs.

How does Truto handle Lemlist's rate limits and pagination?

Truto abstracts away API-specific quirks including rate limiting and pagination. When you query Users or Workspaces through the Unified User Directory API, Truto manages retries and page cursors so your code doesn't have to.

Can I receive real-time engagement events from Lemlist?

Lemlist supports webhook subscriptions for events like emailsSent, emailsOpened, emailsReplied, emailsBounced, and linkedinInterested. Truto can be configured to relay these events to your application — contact the team to scope this for your use case.

What if I need Lemlist API coverage beyond Users and Workspaces?

Truto builds additional tools and unified model mappings on request. Common asks include campaign management, lead enrollment, activity polling, and enrichment endpoints. Reach out to scope what you need and Truto will build it.

Lemlist

Get Lemlist integrated into your app

Our team understands what it takes to make a Lemlist integration successful. A short, crisp 30 minute call with folks who understand the problem.