Provider-specific requirements
Use Lemlist for multi-channel outbound campaigns (email + LinkedIn). Full campaign lifecycle management is available.- Keep activation behind enrichment/verification gates — only push contacts that have been validated.
- Resolve campaign IDs from
lemlist_list_campaignsbefore any write operation. - Insert contacts in batches of 10–25 and re-check campaign stats after writes.
- Always review in Lemlist UI before starting campaigns — use the
web_urlreturned by create/update operations.
Workflow
- Create or list campaigns before adding contacts.
- Add sequence steps (email, LinkedIn invite, LinkedIn DM) to define the outreach flow.
- Add contacts in small batches (10–25), then check stats to verify.
- Review in Lemlist UI before starting — use the
web_urlreturned by create/update operations. - Monitor via activities and inbox threads.
Quick Reference
Campaigns
Sequences
Leads
Activities
Inbox
Unsubscribes
Response Shape Contract
Deepline wraps all provider payloads in a standard result envelope:{ data, meta }.
lemlist_list_campaigns→result.datais an array of{ id, name, status }.lemlist_get_campaign_stats→result.datacontains{ sent, opened, clicked, replied, bounced }.lemlist_get_campaign_sequences→result.datais keyed by sequence ID, each with astepsarray.lemlist_export_campaign_leads→result.datais an array of lead objects withemail,firstName,lastName,state.lemlist_add_to_campaign→result.datacontains{ pushed, failed, errors }.lemlist_create_campaign/lemlist_update_campaign→result.dataincludesweb_urlfor UI review.
Key Notes
- Step types:
email,linkedinInvite,linkedinSend,linkedinVisit,manual,phone,api,whatsappMessage,conditional,sendToAnotherCampaign - Delays are in days for both
add_sequence_stepandupdate_sequence_step(0 = immediate, 2 = 2 days). Do not pass seconds or hours. - Deep links: Campaign mutations return
web_url— always review in Lemlist UI before starting campaigns. - Lead states for export:
all,contacted,interested,notInterested,emailsBounced,paused,emailsSent,emailsOpened,emailsReplied - Activity types:
emailsSent,emailsOpened,emailsClicked,emailsReplied,emailsBounced,emailsUnsubscribed
Gotchas
- Delay unit: Always days. Passing
172800thinking “seconds” will result in a> 1500 daysAPI error. - Inbox operations require user/mailbox IDs:
send_emailneedssend_user_id,send_user_email, andsend_user_mailbox_id. List inbox first to discover these values. - Sequence writes: Prefer adding/updating sequence steps while campaigns are still draft/paused to avoid campaign-state edge cases.
- Lead deduplication: Validation rejects duplicate emails and duplicate
linkedin_urlvalues within the same batch. Across batches, Lemlist can reject duplicates (for example 409 conflicts), which surface inresult.data.errors. - Lead timezone: Set the native field with
contacts[].timezoneusing an IANA name.custom_fields.timezoneis a separate custom variable. if both use that key, the dedicated timezone takes precedence. Local-time sending also requires timezone-based scheduling on the campaign. - Exact custom-field readback: Lemlist HTML-escapes a bare
&as&in custom field values containing an HTML tag. plain-text values are stored exactly. - Lead removal:
lemlist_delete_leadwithoutaction: "remove"unsubscribes the lead. Pass the action explicitly to remove it from the campaign.
Find an applicable action
Confirm your effective workspace, then search the live catalog:Inspect the selected contract
Replace<returned-tool-id> with the identifier returned by discovery:
Prepare one reviewed input
Use one authorized record that matches the inspected schema. Preserve its source identity and define the result you will accept. Open the action reference for its payload and response shape. Provider-backed execution can incur usage or external effects. For reusable logic, follow Write Plays. For direct-call recovery, use Tool execution recovery.Continue only when the workspace, provider, required fields, acceptance rule, and applicable price are understood. Keep unavailable access separate from no-result evidence.