Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Official Lemlist API integration for sales automation and multichannel outreach. Use this skill when users want to: - Manage campaigns (create, list, pause,...
Official Lemlist API integration for sales automation and multichannel outreach. Use this skill when users want to: - Manage campaigns (create, list, pause,...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Interact with the Lemlist API to manage campaigns, leads, sequences, schedules, activities, inbox, webhooks, unsubscribes, exports, and enrichment. Full endpoint reference: references/api-endpoints.md Official API docs: https://developer.lemlist.com/api-reference
Log in to Lemlist Go to Settings > Integrations > API Keys Create a new key โ copy immediately, shown only once
Add to ~/.openclaw/openclaw.json: { "skills": { "entries": { "lemlist": { "apiKey": "your-lemlist-api-key" } } } } Alternative explicit format: { "skills": { "entries": { "lemlist": { "env": { "LEMLIST_API_KEY": "your-lemlist-api-key" } } } } }
Run: Get my Lemlist team info
Forward the key explicitly: { "agents": { "defaults": { "sandbox": { "docker": { "env": ["LEMLIST_API_KEY"] } } } } }
Base URL: https://api.lemlist.com/api Basic Auth with empty username (colon before key is mandatory): Authorization: Basic base64(:LEMLIST_API_KEY)
Use this pattern for all API calls: import urllib.request, os, json, base64 API_KEY = os.environ["LEMLIST_API_KEY"] AUTH = base64.b64encode(f":{API_KEY}".encode()).decode() BASE = "https://api.lemlist.com/api" def api(path, method="GET", data=None): body = json.dumps(data).encode() if data else None req = urllib.request.Request(f"{BASE}{path}", data=body, method=method) req.add_header("Authorization", f"Basic {AUTH}") req.add_header("User-Agent", "OpenClaw/1.0") if data: req.add_header("Content-Type", "application/json") return json.load(urllib.request.urlopen(req))
DomainKey endpointsTeamGET /team, /team/members, /team/credits, /team/sendersCampaignsGET/POST /campaigns, PATCH /campaigns/:id, POST pause/startSequencesGET /campaigns/:id/sequences, POST/PATCH/DELETE stepsLeads (campaign)GET/POST/PATCH/DELETE /campaigns/:id/leads/:idOrEmailLeads (global)GET /leads, POST pause/start/interested/notinterestedLead variablesPOST/PATCH/DELETE /leads/:id/variablesActivitiesGET /activities (filter: campaignId, type)SchedulesCRUD /schedules, POST /campaigns/:id/schedulesUnsubscribesGET /unsubscribes, POST/DELETE /unsubscribes/:valueWebhooksGET/POST/DELETE /hooks (max 200/team)InboxGET /inbox, POST email/linkedin/whatsapp/smsInbox labelsCRUD /inbox/labels, assign via /conversations/labels/:contactIdCompaniesGET /companies, /companies/:id/notesContactsGET /contacts, /contacts/:idOrEmailExportsGET /campaigns/:id/export (sync), /export/start (async)EnrichmentPOST /leads/:id/enrich, GET /enrich/:id, POST /enrich (batch)TasksGET/POST/PATCH /tasks, POST /tasks/ignoreLemwarmPOST start/pause, GET/PATCH settings via /lemwarm/:mailboxId For request/response details, read references/api-endpoints.md.
Params: offset (default 0), limit (max 100), page (1-based, overrides offset). Paginated responses include pagination: { totalRecords, currentPage, nextPage, totalPage }. Some older endpoints return a plain array.
cam_ campaign, lea_ lead, skd_ schedule, seq_ sequence, tea_ team, usr_ user.
User-Agent required โ set User-Agent: OpenClaw/1.0, Python's default UA is blocked by Cloudflare (403) Basic Auth format โ empty username mandatory: base64(":key"), not base64("key") No campaign deletion โ only pause via API Email encoding โ @ โ %40 in URL path params Webhook auto-deletion โ 404/410 response silently removes the webhook No rate limiting โ the public API does not throttle Variable deletion โ DELETE /leads/:id/variables deletes vars, not the lead Sync vs async export โ /export returns CSV directly, /export/start + poll for large volumes Limits โ 100 items/page, 200 webhooks/team, 100 API keys/team
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.