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 usUse Cases
Why integrate with Lemlist
Common scenarios for SaaS companies building Lemlist integrations for their customers.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
How It Works
From zero to integrated
Go live with Lemlist in under an hour. No boilerplate, no maintenance burden.
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.
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.
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.
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.
From the Blog
Lemlist integration guides
Deep dives, architecture guides, and practical tutorials for building Lemlist integrations.
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.