Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.botdog.co/llms.txt

Use this file to discover all available pages before exploring further.

When you create a webhook, you subscribe to one or more of the event types below. Each event is delivered as a JSON POST to your endpoint with a signed header.

Supported events

Event typeHuman labelSent when…
LEAD_PROFILE_VISITEDProfile visitedBotdog visits a lead’s LinkedIn profile as part of a campaign step.
LEAD_INVITATION_SENTInvitation sentA connection invitation is sent to a lead.
LEAD_INVITATION_ACCEPTEDInvitation acceptedA lead accepts a connection invitation from your account.
LEAD_MESSAGE_SENTMessage sentAn outbound message is sent to a lead.
LEAD_MESSAGE_REPLIEDReceived a replyA lead replies to one of your messages.

Shared fields

Every payload includes the following base fields:
FieldTypeDescription
idstringUnique delivery id. Use it to deduplicate retries.
timestampstring (ISO 8601)When Botdog generated the event.
eventTypestringOne of the values from the table above.
humanReadableEventNamestringFriendly label, e.g. "Invitation sent".
campaignIdstringThe campaign that produced the event.
campaignNamestringThe campaign’s display name at delivery time.
botdogUserIdstringThe Botdog user the action was performed under.
botdogUserEmailstringEmail of that Botdog user.
botdogUserLinkedinPublicUrlstringLinkedIn URL of that Botdog user.
All lead events (every event except those tagged CAMPAIGN_* in future versions) also include contact fields:
FieldTypeDescription
contactNamestringFull name from the lead’s LinkedIn profile.
contactLinkedinUrlstringThe lead’s public LinkedIn URL.
contactEmailsstring[]Known email addresses for the lead (may be empty).
contactPhonesstring[]Known phone numbers for the lead (may be empty).
contactCompanyNamestringCurrent company from the lead’s LinkedIn profile.
Per-event fields are documented below.

LEAD_PROFILE_VISITED

Sent when Botdog visits a lead’s profile as part of a campaign step. Extra fields
FieldTypeDescription
visitedAtstring (ISO 8601)When the visit took place.
Example payload
{
  "id": "evt_8d2a1f0c",
  "eventType": "LEAD_PROFILE_VISITED",
  "humanReadableEventName": "Profile visited",
  "timestamp": "2026-05-28T12:34:56.000Z",
  "campaignId": "cmp_01H…",
  "campaignName": "Q2 DACH founders",
  "botdogUserId": "usr_01H…",
  "botdogUserEmail": "you@example.com",
  "botdogUserLinkedinPublicUrl": "https://www.linkedin.com/in/your-handle",
  "contactName": "Ada Lovelace",
  "contactLinkedinUrl": "https://www.linkedin.com/in/adalovelace",
  "contactEmails": ["ada@example.com"],
  "contactPhones": [],
  "contactCompanyName": "Analytical Engines Ltd.",
  "visitedAt": "2026-05-28T12:34:56.000Z"
}

LEAD_INVITATION_SENT

Sent when a connection invitation is sent to a lead. Extra fields
FieldTypeDescription
sentAtstring (ISO 8601)When the invitation was sent.
messagestring | nullThe note included with the invitation, if any.
Example payload
{
  "id": "evt_92b41cd5",
  "eventType": "LEAD_INVITATION_SENT",
  "humanReadableEventName": "Invitation sent",
  "timestamp": "2026-05-28T12:35:10.000Z",
  "campaignId": "cmp_01H…",
  "campaignName": "Q2 DACH founders",
  "botdogUserId": "usr_01H…",
  "botdogUserEmail": "you@example.com",
  "botdogUserLinkedinPublicUrl": "https://www.linkedin.com/in/your-handle",
  "contactName": "Ada Lovelace",
  "contactLinkedinUrl": "https://www.linkedin.com/in/adalovelace",
  "contactEmails": ["ada@example.com"],
  "contactPhones": [],
  "contactCompanyName": "Analytical Engines Ltd.",
  "sentAt": "2026-05-28T12:35:10.000Z",
  "message": "Hi Ada — would love to connect."
}

LEAD_INVITATION_ACCEPTED

Sent when a lead accepts your connection invitation. Extra fields
FieldTypeDescription
acceptedAtstring (ISO 8601)When the acceptance was detected.
Example payload
{
  "id": "evt_a17bcd03",
  "eventType": "LEAD_INVITATION_ACCEPTED",
  "humanReadableEventName": "Invitation accepted",
  "timestamp": "2026-05-29T09:02:31.000Z",
  "campaignId": "cmp_01H…",
  "campaignName": "Q2 DACH founders",
  "botdogUserId": "usr_01H…",
  "botdogUserEmail": "you@example.com",
  "botdogUserLinkedinPublicUrl": "https://www.linkedin.com/in/your-handle",
  "contactName": "Ada Lovelace",
  "contactLinkedinUrl": "https://www.linkedin.com/in/adalovelace",
  "contactEmails": ["ada@example.com"],
  "contactPhones": [],
  "contactCompanyName": "Analytical Engines Ltd.",
  "acceptedAt": "2026-05-29T09:02:31.000Z"
}

LEAD_MESSAGE_SENT

Sent when an outbound message is delivered to a lead on LinkedIn. Extra fields
FieldTypeDescription
sentAtstring (ISO 8601)When the message was sent.
messagestringThe message body.
Example payload
{
  "id": "evt_b3e1f240",
  "eventType": "LEAD_MESSAGE_SENT",
  "humanReadableEventName": "Message sent",
  "timestamp": "2026-05-29T10:15:00.000Z",
  "campaignId": "cmp_01H…",
  "campaignName": "Q2 DACH founders",
  "botdogUserId": "usr_01H…",
  "botdogUserEmail": "you@example.com",
  "botdogUserLinkedinPublicUrl": "https://www.linkedin.com/in/your-handle",
  "contactName": "Ada Lovelace",
  "contactLinkedinUrl": "https://www.linkedin.com/in/adalovelace",
  "contactEmails": ["ada@example.com"],
  "contactPhones": [],
  "contactCompanyName": "Analytical Engines Ltd.",
  "sentAt": "2026-05-29T10:15:00.000Z",
  "message": "Thanks for connecting, Ada! Curious if you've explored…"
}

LEAD_MESSAGE_REPLIED

Sent when a lead replies to one of your messages. Extra fields
FieldTypeDescription
repliedAtstring (ISO 8601)When the reply was received.
messagestringThe reply body.
Example payload
{
  "id": "evt_c44d8e91",
  "eventType": "LEAD_MESSAGE_REPLIED",
  "humanReadableEventName": "Received a reply",
  "timestamp": "2026-05-29T15:48:22.000Z",
  "campaignId": "cmp_01H…",
  "campaignName": "Q2 DACH founders",
  "botdogUserId": "usr_01H…",
  "botdogUserEmail": "you@example.com",
  "botdogUserLinkedinPublicUrl": "https://www.linkedin.com/in/your-handle",
  "contactName": "Ada Lovelace",
  "contactLinkedinUrl": "https://www.linkedin.com/in/adalovelace",
  "contactEmails": ["ada@example.com"],
  "contactPhones": [],
  "contactCompanyName": "Analytical Engines Ltd.",
  "repliedAt": "2026-05-29T15:48:22.000Z",
  "message": "Hey — happy to chat. Tuesday afternoon work for you?"
}

Field stability

  • Field additions are non-breaking. Botdog may add new fields to existing payloads as features ship. Treat unknown fields as forward-compatible and ignore them.
  • Removals or renames are breaking and will be announced in the Changelog.
  • Test event payloads sent from the dashboard’s Send test event action use the same shape as production deliveries, with stub contact data.