with one click
lemlist
Create campaigns, add leads, or track email outreach in Lemlist
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Create campaigns, add leads, or track email outreach in Lemlist
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Read or update contacts, opportunities, notes, and conversations in GoHighLevel
Save or retrieve records from Airtable bases
Send emails, SMS, or manage contacts via Brevo (formerly Sendinblue)
Manage bookings, availability, and event types in Cal.com
Check availability, create scheduling links, or list upcoming events in Calendly
Create or update tasks and lists in ClickUp
| name | lemlist |
| display_name | Lemlist |
| description | Create campaigns, add leads, or track email outreach in Lemlist |
| auth_type | api_key |
| category | marketing |
When the user wants their voice agent to add callers as leads to Lemlist outreach campaigns. Common triggers:
Check connection via check_connection("lemlist").
If not connected: Use secret("lemlist") in tool scripts. The system
will automatically emit the correct action card based on the platform
configuration. Do NOT emit action cards manually.
Discover campaigns (Lemlist supports auto-discovery):
api_call("lemlist", "GET", "/campaigns") → list campaigns with IDs and namesUse the real campaign ID in the tool config.
{
"name": "lemlist.add_lead",
"description": "Add a caller as a lead to a Lemlist campaign",
"params": [
{"name": "campaign_id", "description": "Lemlist campaign ID", "type": "string", "required": true},
{"name": "email", "description": "Lead's email address", "type": "string", "required": true},
{"name": "first_name", "description": "Lead's first name", "type": "string", "required": false},
{"name": "last_name", "description": "Lead's last name", "type": "string", "required": false},
{"name": "company_name", "description": "Lead's company name", "type": "string", "required": false}
],
"script": "let key = secret('lemlist');\nlet body = {email: email};\nif (first_name) body.firstName = first_name;\nif (last_name) body.lastName = last_name;\nif (company_name) body.companyName = company_name;\nlet resp = http_post_h('https://api.lemlist.com/api/campaigns/' + campaign_id + '/leads/' + encodeURIComponent(email), body, {'Authorization': 'Bearer ' + key, 'Content-Type': 'application/json'});\nif (resp.status >= 200 && resp.status < 300) { return 'Lead added to campaign.'; }\nthrow new Error(`Lemlist ${resp.status}: ${resp.body}`);",
"side_effect": true
}
secret("lemlist") for credentialsapi_call to discover campaign IDs instead of asking the userthrow using resp.status/resp.body