JavaScript SDK: swarmhit.campaigns.leads.setInterest(campaignId, leadId, params)
Sets the lead's label in this campaign, or clears it with null.
A label set here is never changed by AI; with none, AI labels the
lead's next reply (when the campaign has aiInterestEnabled).
interest still works as before labels: interested or
not_interested, and null clears the label. Pass one of the two.
Only the label is editable here. Update lead fields and
customVariables via PATCH /leads/{id} — they're shared across
every campaign the lead is in.
Authorization
bearerAuth An API key created on the Access tokens page.
In: header
Path Parameters
The lead's id.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
label, or interest as before labels: one of the two. Only the label
is editable on a lead's campaign membership. Update lead fields and
customVariables via PATCH /leads/{id}.
label, or interest as before labels: one of the two. Only the label
is editable on a lead's campaign membership. Update lead fields and
customVariables via PATCH /leads/{id}.
Response Body
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/campaigns/string/leads/string" \ -H "Content-Type: application/json" \ -d '{ "label": "out_of_office" }'{ "data": { "campaignId": "string", "leadId": "string", "senderId": "string", "linkedinAccountId": "string", "emailAccountId": "string", "emailProvider": "google", "whatsappAccountId": "string", "status": "pending", "stage": "pending", "firstName": "string", "lastName": "string", "headline": "string", "company": "string", "picture": "string", "profileUrl": "string", "publicIdentifier": "string", "email": "string", "openProfile": true, "customVariables": { "property1": "string", "property2": "string" }, "label": "interested", "labelBy": "manual", "labelAt": "2019-08-24T14:15:22Z", "interest": "interested", "interestBy": "manual", "currentStepId": "string", "waitUntil": "2019-08-24T14:15:22Z", "waitReason": "company_limit", "pausedReason": "user", "heldBy": { "campaignId": "string", "campaignName": "string", "senderName": "string" }, "invitationSentAt": "2019-08-24T14:15:22Z", "invitationAccepted": true, "invitationAcceptedAt": "2019-08-24T14:15:22Z", "invitationWithdrawnAt": "2019-08-24T14:15:22Z", "invitationSentWithoutNote": true, "messageSentAt": "2019-08-24T14:15:22Z", "lastReplyAt": "2019-08-24T14:15:22Z", "emailOpenedAt": "2019-08-24T14:15:22Z", "emailClickedAt": "2019-08-24T14:15:22Z", "finishedAt": "2019-08-24T14:15:22Z", "error": "string", "createdAt": "2019-08-24T14:15:22Z", "history": [ {} ] }}Retry a lead in a campaign POST
**JavaScript SDK:** [`swarmhit.campaigns.leads.retry(campaignId, leadId)`](/smart-api/sdk/methods#campaigns.leads) Re-queues a lead for the executor, clearing its error and wait. Meant for a `failed` or stuck lead: the status is not checked, so any lead is put back in the queue.
Stop a lead in a campaign for good POST
**JavaScript SDK:** [`swarmhit.campaigns.leads.stop(campaignId, leadId)`](/smart-api/sdk/methods#campaigns.leads) Terminally stops the lead's sequence (status becomes `stopped`) so the executor never contacts it again. The lead stays in the campaign with its history intact; use `DELETE /campaigns/{id}/leads/{leadId}` to remove it entirely. Not resumable. No-op on a lead that is already done, failed or replied.