SKILL.md
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")
