Skip to main content
Webhooks let your systems react to platform events without polling. When an event happens in one of your client workspaces, SiteSpeak sends a signed POST request to your endpoint. Manage endpoints under Agency > Webhooks in your dashboard, or via the Agency API.

Events

Each endpoint can subscribe to specific events or receive all of them. Endpoints subscribed to all events also receive event types added in the future. Two behaviors to know:
  • lead.captured fires the first time a visitor leaves contact details. Repeat submissions and identify calls for the same visitor do not fire it again.
  • A handoff request that includes contact details fires escalation.created only, not both events. The escalation payload carries the same visitor contact fields.

Payload

Every request body has the same envelope:
  • id is unique per delivery and stays the same across retries, so you can deduplicate.
  • team_id is the client workspace the event happened in.
  • external_reference is the billing reference you set on the client workspace, so you can map events straight to your own billing system.
  • data is event-specific. escalation.created adds last_message and inbox_url.

Verifying signatures

Every request includes these headers: Your webhook secret is shown once when you create the endpoint. Verify each request by computing the HMAC over the raw body and comparing:
Node.js
PHP
Reject requests with a missing or invalid signature.

Delivery and retries

  • Respond with any 2xx status within 15 seconds to acknowledge a delivery. Redirects are not followed.
  • A failed delivery is attempted up to 5 times in total: the initial delivery plus 4 retries after 30 seconds, 2 minutes, 10 minutes, and 1 hour. A delivery that exhausts its attempts gets a last error ending in (retries exhausted).
  • The last 30 days of delivery attempts are visible under Agency > Webhooks and via the deliveries endpoint, including response status and the last error.
  • To change an endpoint’s URL or event subscriptions, use the update endpoint; the signing secret stays the same. Deleting and recreating an endpoint generates a new secret.
Use the Test button in the dashboard (or the test endpoint) to send a signed ping event and confirm your endpoint and signature verification work end to end.

Ready to automate your customer service with AI?

Join over 1000+ businesses, websites and startups automating their customer service and other tasks with a custom trained AI agent.
Last modified on August 18, 2026