lemlist integration for AI agents.
lemlist integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves lemlist tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.
Real lemlist actions, managed and audited.
Your user connects lemlist once; your agent can then manage lemlist cold outreach campaigns, leads, contacts, inbox messages, enrichment, unsubscribes, and webhooks — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.
- 1
Your user grants lemlist access once (OAuth) — the token lands in the vault.
- 2
Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.
- 3
Every routed call appends a hash-chained audit record — nothing leaves your infra.
Supported lemlist tools.
113 tools are generated from the published lemlist catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.
Showing 113 tools. All published catalog entries are included in this page's server-rendered HTML.
- Delete Company
- Deletes a lemlist company. Refuses by default when contacts are still attached — pass `force=true` to detach them (the `companyId` field is unset on each contact) before deleting the company. **No CRM-side propagation:** only the lemlist record is removed. Designed for the contact-to-company remapping workflow: after reassigning the contacts of a duplicate company to the canonical one (via `POST /contacts/{idOrEmail}`), call this endpoint to drop the now-empty duplicate.
- Companiescompanies
- Disconnect Email Account
- Disconnect Email Account
- Email Accountsemail-accounts
- Delete Draft
- Soft-deletes a draft by setting its deletedAt timestamp.
- Inboxinbox
- Remove Labels from Conversation
- Removes one or more labels from one conversation.
- Inboxinbox
- Delete or Unsubscribe Lead
- Delete or Unsubscribe Lead
- Leadsleads
- Erase Values of Custom Variables on a Lead
- Erases the values of custom variables on a lead.
- Leadsleads
- Unsubscribe Lead from Campaign
- Unsubscribe Lead from Campaign
- Leadsleads
- Delete Schedule
- Delete Schedule
- Schedulesschedules
- Delete Sequence Step
- Delete Sequence Step
- Sequencessequences
- Delete Unsubscribe Email
- Delete Unsubscribe Email
- Unsubscribesunsubscribes
- Re-subscribe Contact
- Removes the unsubscribed (do-not-contact) flag from a contact.
- Unsubscribesunsubscribes
- Re-subscribe Variable
- Removes a variable from the unsubscribe list. Variables with a protected source (LEAD or ABUSE) cannot be re-subscribed.
- Unsubscribesunsubscribes
- Delete Webhook
- Delete Webhook
- Webhookswebhooks
- Export Campaign Leads
- Export leads from a campaign with filtering options. Returns leads in CSV or JSON format based on their state (e.g., contacted, interested, replied, etc.).
- Campaignscampaigns
- Get Campaign
- Get Campaign
- Campaignscampaigns
- Get Campaign Export Status
- Check the status of an asynchronous campaign export.
- Campaignscampaigns
- Get Campaign Reports
- Retrieve reports for one or multiple campaigns. Returns aggregated statistics and export status for the specified campaigns.
- Campaignscampaigns
- Get Campaign Stats
- Retrieve detailed statistics for a specific campaign, with filtering options by date, user, A/B testing, and communication channels.
- Campaignscampaigns
- Get Campaign Statutes
- Retrieves validation statutes for a campaign, including errors that block launching and warnings about daily limits, DNS issues, etc. Uses the same validation engine as the lemlist UI.
- Campaignscampaigns
- Get Many Campaigns
- Get Many Campaigns
- Campaignscampaigns
- Start Campaign Stats Export
- Start an asynchronous export of all campaign statistics. The final export result is a CSV file.
- Campaignscampaigns
- Get Company Notes
- Get Company Notes
- Companiescompanies
- Get Many Companies
- Get Many Companies
- Companiescompanies
- Export Contact List
- Exports contacts or companies from a CRM list as a CSV file. The response is streamed as `text/csv` with a `Content-Disposition: attachment` header. The exported columns depend on the `entity` type: - **contact**: firstName, lastName, email, linkedinUrl, companyName, jobTitle, phone, status, owner, campaigns, contactLists, and more. - **company**: name, domain, linkedinUrl, industry, website, status, size, owner, numberOfContacts, companyLists, and more. Custom fields are included as additional columns.
- Contactscontacts
- Get Contact
- Get Contact
- Contactscontacts
- Get Contact Lists
- Retrieves all static and dynamic contact lists for the team. Optionally filter by name.
- Contactscontacts
- Get Many Contacts
- Retrieves contacts by IDs/emails, or searches/lists contacts by name, email, contact list, campaign membership, or company link. When using `idsOrEmails`, returns an array of matching contacts directly. When using `search`, `email`, `listId`, `notInAnyCampaign`, any of the `company*` filters, or no filter at all, returns a paginated response with `data`, `total`, `limit`, and `offset` fields. You can combine filters together to narrow results (e.g. `listId` with `search`, or `notInAnyCampaign` with `companyId`). Calling the endpoint without any filter returns all contacts of the team, paginated. The `company*` filters (`companyId`, `companyDomain`, `companyLinkedinUrl`, `companySalesnavUrl`) are mutually exclusive — use only one at a time. `companyDomain` / `companyLinkedinUrl` / `companySalesnavUrl` are resolved to a `companyId` through the Companies collection; if no matching company exists, the endpoint returns an empty list with `total: 0` (not an error), which keeps automation flows simple.
- Contactscontacts
- Get CRM Filters
- Get CRM Filters
- Leadscrm
- Get Team CRM Users
- Get Team CRM Users
- Teamcrm
- Get Enrichment Result
- Get Enrichment Result
- Enrichenrich
- List Fields
- List Fields
- Fieldsfields
- Get Contact Messages
- Get Contact Messages
- Inboxinbox
- Get Draft
- Retrieves a single draft with its full content, including attachments.
- Inboxinbox
- Get Label
- Get info of a specific label.
- Inboxinbox
- Get Many Inboxes
- Get Many Inboxes
- Inboxinbox
- Get Many Labels
- List all labels available to your team.
- Inboxinbox
- List Drafts
- Lists all non-deleted drafts for a specific contact.
- Inboxinbox
- Get Campaign Leads
- Get Campaign Leads
- Leadsleads
- Get Lead by Email
- Get Lead by Email
- Leadsleads
- Get Lead by Email or ID
- Retrieve a lead using either their email address or lead ID
- Leadsleads
- Get Database Filters
- Get Database Filters
- People Databasepeople-database
- Get Campaign Schedules
- Get Campaign Schedules
- Schedulesschedules
- Get Many Schedules
- Get Many Schedules
- Schedulesschedules
- Get Schedule
- Get Schedule
- Schedulesschedules
- Get Campaign Sequences
- Get Campaign Sequences
- Sequencessequences
- Get Many Tasks
- Retrieve tasks with optional filtering and pagination. Tasks marked as `done` are excluded from results.
- Taskstasks
- Get Team Credits
- Get Team Credits
- Teamteam
- Get Team Senders
- Get Team Senders
- Teamteam
- Get Team
- Get Team
- Teamteam
- Export Unsubscribed Contacts
- Exports all contacts with their subscription status to a CSV file.
- Unsubscribesunsubscribes
- Export Unsubscribed Variables
- Exports all unsubscribed variables to a CSV file.
- Unsubscribesunsubscribes
- Export Unsubscribes
- Export Unsubscribes
- Unsubscribesunsubscribes
- Get Contact Subscription Status
- Checks whether a contact is unsubscribed (do-not-contact).
- Unsubscribesunsubscribes
- Get Many Unsubscribes
- Get Many Unsubscribes
- Unsubscribesunsubscribes
- Get Unsubscribe by Email
- Get Unsubscribe by Email
- Unsubscribesunsubscribes
- Get Unsubscribed Variable
- Retrieves a specific unsubscribed variable by its value.
- Unsubscribesunsubscribes
- List Unsubscribed Variables
- Retrieves a paginated list of all unsubscribed variables (emails, domains, LinkedIn URLs, phone numbers).
- Unsubscribesunsubscribes
- Get User Channels
- Get User Channels
- Usersusers
- Get User
- Get User
- Usersusers
- Get Signal Agent signals
- Get Signal Agent signals
- Signal Agentswatch-list
- Get Many Webhooks
- Get Many Webhooks
- Webhookswebhooks
- Update Campaign
- Update Campaign
- Campaignscampaigns
- Update Draft
- Partially updates an existing draft. Only the provided fields will be updated.
- Inboxinbox
- Update Lead in a Campaign
- Update Lead in a Campaign
- Leadsleads
- Update Values of Custom Variables of a Lead
- Update values of custom variables for a lead.
- Leadsleads
- Update Schedule
- Update Schedule
- Schedulesschedules
- Update Sequence Step
- Update Sequence Step
- Sequencessequences
- Update Task
- Update task details such as assignment, due date, title, message, priority, or completion status.
- Taskstasks
- Create Campaign
- Create Campaign
- Campaignscampaigns
- Duplicate Campaign
- Duplicate Campaign
- Campaignscampaigns
- Get Batch Campaign Stats
- Retrieve detailed statistics for multiple campaigns in a single request, with filtering options by date, user, A/B testing, and communication channels. Processes up to 100 campaigns per request.
- Campaignscampaigns
- Pause Campaign
- Pause Campaign
- Campaignscampaigns
- Start Campaign
- Start Campaign
- Campaignscampaigns
- Create Company Note
- Create Company Note
- Companiescompanies
- Add and update company
- Creates a new company or updates an existing one (upsert). If a company with the same domain, LinkedIn URL, or Sales Navigator URL already exists, it will be updated with the provided non-empty fields. Null or empty values are ignored during updates to preserve existing data. You can target an existing company directly by providing `companyId`, bypassing domain/LinkedIn matching — in that case `name` and `domain` become optional.
- Companiescompanies
- Create Contact List
- Creates a new static contact list. After creating the list, use `POST /contacts/lists/{listId}/entities` to add contacts to it.
- Contactscontacts
- Add or Remove Contacts in a List
- Adds existing CRM contacts to a static contact list, or removes them when `?action=remove` is set. - **Add** (default): send a `POST` with a `contactIds` body. Contacts already in the list are silently skipped (no duplicates) and reported in `alreadyInList`. - **Remove**: send a `POST` with `?action=remove` and a `contactIds` body. Contacts that are not in the list are silently skipped; `removedCount` reflects the associations actually removed. This only affects list membership, the contacts are not deleted from your CRM. The list must be a **static** contact list (`clt_xxx`). Dynamic lists (auto-populated by filter rules) and company lists are rejected. **Removal uses `POST ?action=remove` on purpose:** a `DELETE` request body is dropped by our stack, so `DELETE` on this path is **not supported** and returns `405 Method Not Allowed`.
- Contactscontacts
- Add and update contact
- Creates a new contact or updates an existing one (upsert). If a contact with the same email, LinkedIn URL, or Sales Navigator URL already exists, it will be updated with the provided non-empty fields. Null or empty values are ignored during updates to preserve existing data. You can target an existing contact directly by providing `contactId`, bypassing email/LinkedIn matching. You can optionally link the contact to a company by providing `companyId`, `companyDomain`, or `companyLinkedinUrl`.
- Contactscontacts
- Connect Email Account
- Connect Email Account
- Email Accountsemail-accounts
- Test Email Account
- Test Email Account
- Email Accountsemail-accounts
- Bulk Enrich Data
- Send a batch of enrichment requests for multiple entities. Maximum 500 enrichment requests per call.
- Enrichenrich
- Enrich Data
- Enrich Data
- Enrichenrich
- Enrich Lead
- Enrich Lead
- Enrichenrich
- Attach Labels to Conversations
- Attaches one or more labels to one or more conversations.
- Inboxinbox
- Create Draft
- Creates a new draft for a specific contact. The source is automatically set to "api".
- Inboxinbox
- Create Label
- Creates a new label available to the team.
- Inboxinbox
- Send Email
- Send Email
- Inboxinbox
- Send LinkedIn Message
- Send LinkedIn Message
- Inboxinbox
- Send WhatsApp Message
- Send WhatsApp Message
- Inboxinbox
- Add Custom Variables on Leads
- Add custom variables to a lead and sets values for that specific lead.
- Leadsleads
- Create Lead in Campaign
- Create Lead in Campaign
- Leadsleads
- Import Leads from CRM
- Import Leads from CRM
- Leadsleads
- Launch Lead
- Use this endpoint to launch a lead that is waiting for review, without having to enable campaign-wide auto-review. You're auto launching this specific lead, while still enforcing every other launch guard: the campaign must have no step errors, any AI variables required by the campaign must be valid for the lead, and a sender must be available. No need to enable autolaunch in the campaign. This endpoint requires an `emailPro` plan or higher.
- Leadsleads
- Mark Lead as Interested in Campaign
- Mark Lead as Interested in Campaign
- Leadsleads
- Mark Lead as Interested
- Mark a lead as interested across all campaigns
- Leadsleads
- Mark Lead as Not Interested in Campaign
- Mark Lead as Not Interested in Campaign
- Leadsleads
- Mark Lead as Not Interested
- Mark a lead as not interested across all campaigns
- Leadsleads
- Pause Lead
- Pause Lead
- Leadsleads
- Resume Paused Lead
- Resume Paused Lead
- Leadsleads
- Upload Audio for Voice Message Step
- Upload Audio for Voice Message Step
- Leadsleads
- Search Companies Database
- Search the lemlist Companies database using structured filters with pagination support. Returns comprehensive company data including technologies used, location, employee count, and other business intelligence.
- People Databasepeople-database
- Associate Schedule with Campaign
- Associate Schedule with Campaign
- Schedulesschedules
- Create Schedule
- Create Schedule
- Schedulesschedules
- Add Step to Sequence
- Add Step to Sequence
- Sequencessequences
- Create Task
- Create a manual task (opportunity) associated with a contact/company or lead.
- Taskstasks
- Ignore Tasks
- Ignore Tasks
- Taskstasks
- Add Unsubscribe Email or Domain
- Add Unsubscribe Email or Domain
- Unsubscribesunsubscribes
- Bulk Unsubscribe Variables
- Unsubscribes up to 10,000 variables in a single request.
- Unsubscribesunsubscribes
- Unsubscribe Contact
- Marks a contact as unsubscribed (do-not-contact).
- Unsubscribesunsubscribes
- Unsubscribe Variable
- Unsubscribes a single variable. This operation is idempotent — if the variable is already unsubscribed, the existing record is returned.
- Unsubscribesunsubscribes
- Add Webhook
- Add Webhook
- Webhookswebhooks
- Set Email for Campaign Export Notification
- Set an email address for a given export. When the export is done, an email with the download URL will be sent to the address provided.
- Campaignscampaigns
- Search People Database
- This endpoint allows you to query our People database. To do so, you may use the following parameters: filters (required), page (optional), size (optional), and excludes (optional). Each filter should have the following properties: filterId (filter identifier), in (list of the values you want to include), and out (list of the values you want to exclude). To know which filters you are able to use, refer to the GET Filters section. The `department` filter accepts the following values: `Sales`, `Customer service`, `Engineering`, `Marketing`, `Operations`, `Human Resources`, `Finance / Legal / Admin`, `Other`.
- People Databasepeople-database
lemlist integration, answered
- How do AI agents use lemlist through Open Connector?
- Your user connects lemlist once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes lemlist tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
- Is this a lemlist MCP server?
- Yes. Open Connector can serve lemlist as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call lemlist actions with credentials injected server-side.
- Where do lemlist credentials live?
- In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.
Give your agents lemlist — keep the keys.
Open source, self-hostable, with lemlist credentials that never leave your infrastructure. Run it from source today.