Run personalized email outreach campaigns via Lemlist. Manage campaigns and sequences, track lead engagement, search people and company databases, handle tasks, and automate outreach with labels and schedules.
This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Lemlist API access yourself.
Step 1: InstallStep 2: Pair AccountStep 3: Connect Lemlist
App-specific connection GIF coming soon
text
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Lemlist API │
│ (User Chat) │ │ (OAuth) │ │ (v1) │
└─────────────────┘ └──────────────┘ └──────────────────┘
│ │ │
│ 1. Install Plugin │ │
│ 2. Pair Device │ │
│ 3. Connect Lemlist│ │
│ │ 4. Secure Token │
│ │ 5. Proxy Requests │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ SKILL │ │ Dashboard│ │ Lemlist │
│ File │ │ Auth │ │ Campaigns│
└──────────┘ └──────────┘ └──────────┘
Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.
bash
openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
Then tell the user: "OpenClaw has been restarted. Send /new as a standalone message to start a fresh chat, then ask for Lemlist again."
bash
# List campaigns
clawlink_call_tool --tool "lemlist_get_list_campaigns" --params '{}'
# Get campaign stats
clawlink_call_tool --tool "lemlist_get_campaign_stats" --params '{"campaign_id": "CAMPAIGN_ID"}'
# Get team info
clawlink_call_tool --tool "lemlist_get_team_info" --params '{}'
All Lemlist tool calls are authenticated automatically by ClawLink using the user's connected Lemlist team.
No API key is required in chat. ClawLink stores the OAuth token securely and injects it into every Lemlist API request on the user's behalf.
clawlink_begin_pairing if it is not configured yet.clawlink_list_integrations to verify the connection is active.bash
clawlink_list_integrations
Response: Returns all connected integrations. Look for lemlist in the list.
bash
clawlink_list_tools --integration lemlist
Response: Returns the live tool catalog for Lemlist.
If Lemlist tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration lemlistresult['data'] — store campaignId, sequenceId, scheduleId from responses.ToolDescriptionModelemlist_get_list_campaignsList all campaigns for the team with IDs, names, statusesReadlemlist_get_campaign_by_idGet campaign details by IDReadlemlist_get_campaign_statsGet campaign performance metrics within a date rangeReadlemlist_get_campaign_export_startStart async CSV export of all campaign statisticsWritelemlist_get_campaign_export_statusCheck status of campaign export jobReadlemlist_get_campaign_sequencesGet all sequences for a campaign with steps and conditionsReadlemlist_get_export_campaign_leadsExport campaign leads with state filtering (JSON or CSV)Readlemlist_post_create_campaignCreate a new campaign (returns campaignId, sequenceId, scheduleId)Writelemlist_patch_update_campaignUpdate campaign settings (name, stop-on behaviors, flags)Writelemlist_post_pause_campaignPause a running campaignWrite
ToolDescriptionModelemlist_get_retrieve_lead_by_emailGet lead details by email addressReadlemlist_post_create_lead_in_campaignCreate a lead and add to a campaign with optional enrichmentWritelemlist_post_mark_lead_as_interestedMark a lead as interested in all campaignsWritelemlist_post_mark_lead_as_interested_in_campaignMark a lead as interested in a specific campaignWritelemlist_post_mark_lead_as_not_interestedMark a lead as not interested in all campaignsWritelemlist_patch_mark_lead_as_not_interested_in_campaignMark a lead as not interested in a specific campaignWritelemlist_post_pause_leadPause a lead in all campaigns or a specific campaignWritelemlist_delete_unsubscribe_lead_from_campaignUnsubscribe a lead from a specific campaignWritelemlist_post_add_variables_to_leadAdd custom variables to a leadWrite
ToolDescriptionModelemlist_patch_update_sequence_stepUpdate a sequence step (subject, message, delay)Writelemlist_post_add_step_to_sequenceAdd a new step (email, LinkedIn, conditional) to a sequenceWrite
ToolDescriptionModelemlist_post_create_scheduleCreate a new schedule (returns scheduleId — store for campaign association)Writelemlist_patch_update_scheduleUpdate an existing schedule's days, time window, limitsWritelemlist_delete_delete_schedulePermanently delete a schedule by IDWritelemlist_post_associate_schedule_with_campaignAssociate a schedule with a campaignWrite
ToolDescriptionModelemlist_get_list_tasksList all pending tasks assigned to team membersReadlemlist_post_create_taskCreate a manual task associated with a contact, company, or leadWritelemlist_update_taskUpdate task assignment, scheduling, and statusWritelemlist_post_ignore_tasksMark one or more tasks as ignoredWrite
ToolDescriptionModelemlist_get_retrieve_unsubscribesList all unsubscribed peopleReadlemlist_get_get_unsubscribe_emailCheck if a specific email is unsubscribedReadlemlist_get_export_unsubscribesDownload CSV of all unsubscribed email addressesReadlemlist_post_add_unsubscribe_email_domainAdd an email or domain to the unsubscribed listWritelemlist_delete_delete_unsubscribe_emailRemove an email from the unsubscribed listWrite
ToolDescriptionModelemlist_list_labelsList all labels for inbox organizationReadlemlist_get_labelGet label details by IDReadlemlist_post_create_labelCreate a new label for inbox conversationsWrite
ToolDescriptionModelemlist_list_companiesList all companies in CRM with paginationReadlemlist_list_company_notesGet all notes for a specific companyReadlemlist_create_company_noteAdd a note to a company recordWritelemlist_search_companies_databaseSearch companies database with filters and keywordsReadlemlist_get_companies_schemaGet schema definition for company recordsRead
ToolDescriptionModelemlist_search_people_databaseSearch people database with filters, keywords, paginationReadlemlist_get_people_schemaGet schema definition for people recordsReadlemlist_get_database_filtersDiscover available search filters for people and companiesRead
ToolDescriptionModelemlist_get_contact_messagesGet all messages exchanged with a specific contactWrite
ToolDescriptionModelemlist_get_retrieve_activitiesGet recent campaign activities filtered by campaign, type, limitRead
ToolDescriptionModelemlist_get_team_infoGet team settings, members, webhooks, and enabled featuresReadlemlist_get_list_team_sendersGet all team members and their associated campaignsReadlemlist_get_userGet user details by ID including LinkedIn settings and mailboxesReadlemlist_get_user_infoGet authenticated user informationReadlemlist_get_list_watchlist_signalsGet paginated watchlist signals with filteringRead
ToolDescriptionModelemlist_get_team_creditsGet remaining credits in the teamRead
ToolDescriptionModelemlist_get_all_webhooksList all configured webhooks for the teamRead
bash
clawlink_call_tool --tool "lemlist_get_list_campaigns" \
--params '{}'
bash
clawlink_call_tool --tool "lemlist_get_campaign_stats" \
--params '{"campaign_id": "CAMPAIGN_ID", "start_date": "2024-01-01", "end_date": "2024-01-31"}'
bash
clawlink_call_tool --tool "lemlist_post_create_lead_in_campaign" \
--params '{"campaign_id": "CAMPAIGN_ID", "email": "lead@example.com", "first_name": "John"}'
bash
clawlink_call_tool --tool "lemlist_post_mark_lead_as_interested" \
--params '{"lead_id": "LEAD_ID"}'
bash
clawlink_call_tool --tool "lemlist_post_create_task" \
--params '{"contact_id": "CONTACT_ID", "title": "Follow up call", "due_date": "2024-12-15"}'
clawlink_list_integrations to confirm Lemlist is connected.clawlink_list_tools --integration lemlist to see the live catalog.clawlink_search_tools with a short query and integration lemlist.text
┌─────────────────────────────────────────────────────────────┐
│ READ OPERATIONS (Safe) │
│ list → get → search → describe → call │
│ │
│ Example: List campaigns → Get stats → Show results │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ WRITE OPERATIONS (Require Confirmation) │
│ list → get → describe → preview → confirm → call │
│ │
│ Example: Preview lead create → User approves → Execute │
└─────────────────────────────────────────────────────────────┘
clawlink_describe_tool first.whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.clawlink_preview_tool first.clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.result['data'] (e.g., result['data']['campaignId']). Store these for subsequent operations.scheduleId — store it for association with campaigns or sequences.teamId matches the intended workspace before passing to campaign-creation.Status / ErrorMeaningTool not foundThe tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration lemlist.Missing connectionLemlist is not connected. Direct the user to https://claw-link.dev/dashboard?add=lemlist.Permission errorThe authenticated user lacks permission for this operation.Campaign not foundThe campaign ID does not exist. Verify with lemlist_get_list_campaigns.Write rejectedUser did not confirm a write action. Always confirm before executing writes.
Check that the ClawLink plugin is installed: bash
openclaw plugins list
If the plugin is installed but tools are missing, tell the user to send /new as a standalone message to reload the catalog.
If a fresh chat does not help, run: bash
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
After restart, tell the user to send /new again and retry.
Powered by ClawLink — an integration hub for OpenClaw
