JavaScript SDK: swarmhit.campaigns.leads.add(campaignId, params)
Adds leads from a leads array of { profileUrl, ... } objects (or
{ email, ... } when the workspace has the email channel, { phone, ... }
with the WhatsApp channel, see LeadInput), or imports a whole lead list with listId. The workspace lead is upserted
from the fields you pass and enrolled in one call — you don't need to
create leads separately first. Adding makes no LinkedIn call; at first
contact, LinkedIn's firstName, lastName, headline and picture
replace the values you sent (other fields are kept). Leads already in
the campaign are skipped, and so are items with neither a valid
profileUrl nor (with the email channel) a valid email nor (with the
WhatsApp channel) a phone with its country code. Leads on the
workspace blocklist are not enrolled, nor left on the campaign's own
list, and count as blocklisted; leads an exclusion rule keeps out are
not enrolled and count as excluded. Max 1000 leads per request.
A leads array returns { inserted, excluded, blocklisted, listId }
(skipped items are not counted); a listId import returns { inserted, skipped, excluded, blocklisted, listId, listName }, where skipped
counts the list's leads already in the campaign.
Every enrolled lead is also saved to the campaign's own list, created
on the first enrollment and named "'s leads" (exposed
as listId on the campaign). That list and the campaign stay in step:
adding leads to it enrolls them, removing leads from it removes them
from the campaign. Leads imported with listId keep their source list
too. The response's listId is the campaign's own list for a leads
array, or the source list for a listId import.
Authorization
bearerAuth An API key created on the Access tokens page.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/campaigns/string/leads" \ -H "Content-Type: application/json" \ -d '{ "leads": [ { "profileUrl": "https://www.linkedin.com/in/jane-doe", "firstName": "Jane", "lastName": "Doe" }, { "profileUrl": "https://www.linkedin.com/in/john-roe", "company": "Acme", "customVariables": { "plan": "enterprise" } } ] }'{ "data": { "inserted": 0, "excluded": 0, "blocklisted": 0, "skipped": 0, "listId": "string", "listName": "string" }}Update a lead PATCH
**JavaScript SDK:** [`swarmhit.leads.update(leadId, params)`](/smart-api/sdk/methods#leads) Edit a lead's fields and/or replace its manual `tags`.
A lead's progress in a campaign GET
**JavaScript SDK:** [`swarmhit.campaigns.leads.get(campaignId, leadId)`](/smart-api/sdk/methods#campaigns.leads) Returns the lead's progress in this campaign, including its full step `history`.