Skip to main content
PATCH
Update lead

Authorizations

x-api-key
string
header
default:YOUR_API_KEY
required

Path Parameters

id
string
required

Body

application/json
name
string

The lead's name

company
string

The lead's company

statusNote
string

A free-text status note

customField1
string

Custom field 1

customField2
string

Custom field 2

customField3
string

Custom field 3

customAttributes
object

Custom key-value attributes (replaces the existing object)

Response

id
string
required

The unique identifier of the lead

name
string
required

The name of the lead

Example:

"Jane Doe"

linkedinProfile
string
required

The LinkedIn profile URL of the lead

Example:

"https://www.linkedin.com/in/jane-doe"

hasReplied
boolean
required

Whether the lead has replied

hasUnreadReply
boolean
required

Whether the lead has an unread reply

isSkipped
boolean
required

Whether the lead was skipped

createdAt
string<date-time>
required

When the lead was created

updatedAt
string<date-time>
required

When the lead was last updated

events
object[]
required

Chronological event history for the lead

company
string | null

The lead's company

job
string | null

The lead's job title

campaignId
string | null

The campaign this lead belongs to, if any

listId
string | null

The list this lead belongs to, if any

campaignStatus
string | null

The campaign's status when this lead was added to it. It is not updated as the lead moves through its sequence, so it does not show whether the lead's sequence is still running, has finished, failed or was stopped. For that, read the lead's events on GET /v1/leads/{id}: WORKFLOW_CLEANUP means the sequence finished, WORKFLOW_FAILED means it failed, and stoppedAt is set when it was stopped through the API.

skippedReason
string | null

Why the lead was skipped, if applicable

location
string | null

The lead's location

lastMessage
string | null

The most recent message in the conversation

chatId
string | null

Id of the lead’s standard LinkedIn conversation — the id that POST /v1/conversations/{id}/reply expects. Null until Botdog has linked one; POST /v1/messages does not need it, and records it on first use.

statusNote
string | null

A free-text status note

customField1
string | null
customField2
string | null
customField3
string | null
customAttributes
object | null

Custom key-value attributes supplied when the lead was added

invitedAt
string<date-time> | null

When the invite was sent

connectedAt
string<date-time> | null

When the lead connected

repliedAt
string<date-time> | null

When the lead replied

withdrawnAt
string<date-time> | null

When the invitation was withdrawn

stoppedAt
string<date-time> | null

When the lead was stopped, if it was. This is the authoritative confirmation that a stop took effect: it is written only after the lead’s sequence has been torn down, so a non-null value means no further steps — including any message already waiting on a delay — can run. Poll this after DELETE /v1/leads/{id} rather than the stopped flag on the stop response.

senderUserId
string | null

The Botdog user whose LinkedIn account contacts this lead: for a team-campaign lead, the teammate it is assigned to; otherwise the lead’s owner. Null for a team-campaign lead no teammate has picked up yet.

Example:

"user_abc123"