Enroll Lead In Campaign
Enroll a contact in a campaign by its slug, creating the contact if it is new. Every call returns a complete verdict: added, already enrolled, or skipped with a reason. The operation is idempotent, so calling it repeatedly with the same input is always safe.
Example prompt: Enroll the contact john-doe in the gtm-engineers-apr26 campaign
{
"verdict": "added",
"crispy_id": "c_8f21",
"campaign": "gtm-engineers-apr26"
}What you can build
Parameters
Inputs accepted by add_lead.
| Name | Type | Description |
|---|---|---|
| campaign | string | Campaign slug (e.g. 'gtm-engineers-apr26'). Use list_campaigns to see available campaigns. |
| lookup | object | Structured contact identifier. Resolver picks the highest-priority field per RESOLVER-09 (crispy_id > linkedin_provider_id > external_id > linkedin_url > email). |
| first_name | string | First name (written on create if contact is new) |
| last_name | string | Last name |
string | Email address | |
| company | string | Company name |
| title | string | Job title |
| linkedin_url | string | [Deprecated: use lookup.linkedin_url] |
Related tools
Get Campaign Details
Fetch one LinkedIn campaign with state, stats, health, and outreach config, or list all campaigns. Parallel slice loading via the include parameter.
Add Or Update Lead
Add or update a LinkedIn lead by profile URL. Creates the contact if new, updates status, notes, tags, and custom attributes if it already exists.
Get Full Contact Picture
Get the complete LinkedIn contact picture in one call: identifiers, campaigns, messages, connection events, company, lead score, and next-best-action.
Search Saved Leads
Search your saved LinkedIn leads and contacts by name, status, tags, or company. Filter to new, contacted, replied, or qualified leads in one call.
The complete LinkedIn API. Ready when you are.
Connect your first LinkedIn profile in under 5 minutes. Every tool, every seat, no feature gates. Safe limits, warm-up, and full permission control built in.