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.

Webhooks let Botdog push events to your own HTTP endpoint as they happen, so you can sync activity into your CRM, trigger downstream automations, or build internal dashboards without polling the API. When a campaign performs an action — visiting a lead’s profile, sending an invitation, receiving a reply — Botdog POSTs a JSON payload to the URL you configured. Each request is signed so you can verify it really came from Botdog.

When to use webhooks

You want to…Webhooks are a good fit
Mirror lead activity into a CRM or data warehouseYes
Notify a Slack channel when a lead repliesYes
Pull a daily report of campaign performanceNo — use the API or analytics
Build a no-code automationPrefer the Zapier integration

How it works

  1. You create a webhook in the Botdog dashboard at Settings → Integrations → Webhooks. You pick an endpoint URL, the events you want, and the scope (all campaigns or specific ones).
  2. Botdog generates a secret and shows it to you once. Store it — you’ll use it to verify signatures.
  3. When a subscribed event happens, Botdog POSTs a signed JSON body to your endpoint.
  4. Your endpoint responds with any 2xx status code to acknowledge receipt. Anything else is treated as a failure and retried.

Request format

Every delivery is an HTTP POST with:
  • Header Content-Typeapplication/json
  • Header X-Webhook-Signature — HMAC signature over the request body. See Signature verification.
  • Body — a JSON object whose shape depends on the event. See Events and payloads.
POST /your-endpoint HTTP/1.1
Host: your-app.example.com
Content-Type: application/json
X-Webhook-Signature: t=1730000000,s=9f1c…ab

{
  "id": "…",
  "eventType": "LEAD_MESSAGE_REPLIED",
  "timestamp": "2026-05-28T12:34:56.000Z",

}

Responding to a delivery

  • Reply with 2xx quickly — ideally under a few seconds. Do the heavy work asynchronously after acknowledging.
  • Treat deliveries as at-least-once — Botdog retries on failure, so your handler should be idempotent. Use the top-level id field to deduplicate.
  • Non-2xx responses are retried with exponential backoff. See Delivery and retries.

Managing webhooks

Webhooks are created and managed from the dashboard at Settings → Integrations → Webhooks. From there you can:
  • Create a webhook with a name, endpoint URL, event subscriptions, and scope.
  • Pause or resume a webhook without deleting it.
  • Send a test event to verify your endpoint receives and validates the request.
  • Inspect recent deliveries, including status code, response body, and retry attempts.
  • Rotate the secret if it may have been exposed.

Next steps