Lemlist Automation
Helps your agent automate multichannel marketing campaigns in Lemlist. It manages leads, personalizes messages, and exports data.
What it does
This tool automates bulk email sending through Lemlist. You can manage campaigns, add contacts, personalize messages, and track unsubscribes.
When to use it
- ✓To send marketing emails to many customers.
- ✓To add new people to an existing sales campaign.
- ✓To stop emailing someone who has requested to be removed.
Example of what to ask your AI
“Add 100 leads to the 'Summer Sale' campaign with their emails and names.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool connects to Lemlist to perform actions like creating campaigns, adding contacts, or removing people. It uses specific commands for each task.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add ComposioHQ/awesome-claude-skills --skill Lemlist AutomationOr download just the file:
curl -L https://raw.githubusercontent.com/ComposioHQ/awesome-claude-skills/master/composio-skills/lemlist-automation/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Lemlist Automation
Automate your Lemlist multichannel outreach workflows -- manage campaigns, enroll leads at scale, enrich with custom variables, export campaign data, and clean up unsubscribes.
Toolkit docs: composio.dev/toolkits/lemlist
Setup
- Add the Composio MCP server to your client:
https://rube.app/mcp - Connect your Lemlist account when prompted (API key authentication)
- Start using the workflows below
Core Workflows
1. List and Discover Campaigns
Use LEMLIST_GET_LIST_CAMPAIGNS to enumerate all campaigns by status, with pagination support.
Tool: LEMLIST_GET_LIST_CAMPAIGNS
Inputs:
- status: "running" | "draft" | "archived" | "ended" | "paused" | "errors" (optional)
- limit: integer (max 100, default 100)
- offset: integer (pagination offset)
- sortBy: "createdAt"
- sortOrder: "asc" | "desc"
Important: The response may be wrapped as {campaigns: [...], pagination: {...}} instead of a flat list. Always extract from the campaigns key.
2. Get Campaign Details
Use LEMLIST_GET_CAMPAIGN_BY_ID to validate campaign configuration before writes.
Tool: LEMLIST_GET_CAMPAIGN_BY_ID
Inputs:
- campaignId: string (required) -- e.g., "cam_A1B2C3D4E5F6G7H8I9"
3. Enroll Leads into a Campaign
Use LEMLIST_POST_CREATE_LEAD_IN_CAMPAIGN to add leads with optional email finding, phone lookup, and LinkedIn enrichment.
Tool: LEMLIST_POST_CREATE_LEAD_IN_CAMPAIGN
Inputs:
- campaignId: string (required)
- email: string (required)
- firstName, lastName, companyName, companyDomain: string (optional)
- jobTitle, phone, linkedinUrl, icebreaker: string (optional)
- deduplicate: boolean (prevents cross-campaign duplicates)
- findEmail, findPhone, verifyEmail, linkedinEnrichment: boolean (optional)
- timezone: string (IANA format, e.g., "America/New_York")
Bulk pattern: Chunk leads into batches of ~50 and checkpoint progress between batches.
4. Add Custom Variables to a Lead
Use LEMLIST_POST_ADD_VARIABLES_TO_LEAD to enrich leads with personalization fields after enrollment.
Tool: LEMLIST_POST_ADD_VARIABLES_TO_LEAD
Inputs:
- leadId: string (required) -- internal Lemlist lead ID (NOT email)
- company: string (required) -- must match your company name in Lemlist
- variables: object (required) -- key-value pairs, e.g., {"score": "42", "color": "yellow"}
Important: This is NOT an upsert -- attempting to add variables that already exist will fail. Resolve the internal leadId via LEMLIST_GET_RETRIEVE_LEAD_BY_EMAIL if you only have the email address.
5. Export Campaign Leads
Use LEMLIST_GET_EXPORT_CAMPAIGN_LEADS to download leads with state filtering for reporting or QA.
Tool: LEMLIST_GET_EXPORT_CAMPAIGN_LEADS
Inputs:
- campaignId: string (required)
- (supports state filtering and JSON/CSV output)
6. Unsubscribe Lead from Campaign
Use LEMLIST_DELETE_UNSUBSCRIBE_LEAD_FROM_CAMPAIGN to stop outreach by removing a lead from a campaign.
Tool: LEMLIST_DELETE_UNSUBSCRIBE_LEAD_FROM_CAMPAIGN
Inputs:
- campaignId: string (required)
- leadId or email: string (required)
Known Pitfalls
| Pitfall | Detail |
|---|---|
| Wrapped campaign list | LEMLIST_GET_LIST_CAMPAIGNS may return {campaigns: [...], pagination: {...}} instead of a flat array. Always extract from the campaigns key. |
| Cross-campaign deduplication | LEMLIST_POST_CREATE_LEAD_IN_CAMPAIGN with deduplication enabled fails with HTTP 500 "Lead already in other campaign" -- disable deduplication for intentional cross-campaign enrollment. |
| Bulk import failures | Chunk bulk imports to ~50 per batch with checkpoints to avoid losing partial progress on intermittent failures. |
| Invalid leadId | LEMLIST_POST_ADD_VARIABLES_TO_LEAD returns HTTP 400 "Invalid leadId" when using an email as the leadId -- resolve the internal ID via LEMLIST_GET_RETRIEVE_LEAD_BY_EMAIL first. |
| Variable collisions | LEMLIST_POST_ADD_VARIABLES_TO_LEAD is not an upsert. Adding keys that already exist returns HTTP 400 "Variables X already exist". |
Quick Reference
| Tool Slug | Description |
|---|---|
LEMLIST_GET_LIST_CAMPAIGNS |
List all campaigns with status filter and pagination |
LEMLIST_GET_CAMPAIGN_BY_ID |
Get detailed campaign info by ID |
LEMLIST_POST_CREATE_LEAD_IN_CAMPAIGN |
Create and enroll a lead into a campaign |
…
FAQ
How do I add multiple people at once?
You can add people in batches of about 50 at a time to avoid issues and ensure progress is saved.
What happens if I try to add information that already exists for a person?
If you try to add custom information that already exists for a contact, the action will fail. You need to check beforehand or use the lookup function to get the correct contact ID.
How do I know if a person is already in another campaign?
The tool can check if a person is already in another campaign to avoid duplicates. If you intentionally want to add them to multiple campaigns, you can disable this check.
Details
Original description by the author
Automate Lemlist multichannel outreach -- manage campaigns, enroll leads, add personalization variables, export campaign data, and handle unsubscribes via the Composio MCP integration.
Popularity
- GitHub stars
- 77k
- Ranking position
- #1306
- License
- —
- Updated
- 9/18/2026
Comments
- …
More skills from this repository
artifacts-builder
Helps your agent build complex user interfaces. It uses modern technologies to create rich, interactive web pages.
ComposioHQ/awesome-claude-skills
brand-guidelines
Helps your agent apply official brand colors and fonts to materials. It's useful for maintaining visual identity in any piece that needs to look like the company's.
ComposioHQ/awesome-claude-skills
canvas-design
Lets your agent create original visual art in .png and .pdf. Use it when the user asks to create a poster, art, or other static design.
ComposioHQ/awesome-claude-skills
changelog-generator
Helps your agent create user-facing release notes from code commits. It transforms technical information into easy-to-understand text.
ComposioHQ/awesome-claude-skills
Similar skills
benchmark
Helps your agent measure code speed and performance. It's useful for ensuring things are fast and finding slowness issues.
affaan-m/ECC
content-hash-cache-pattern
Lets your agent use content hashes to cache file processing results. This avoids repeated processing and auto-invalidates the cache when content changes. Useful for speeding up slow tasks.
affaan-m/ECC
parallel-execution-optimizer
Makes your agent speed up complex tasks by breaking them into smaller parts and running them in parallel. It ensures everything is verified at the end.
affaan-m/ECC