Draft for owner review. Not indexed until approved.

Help

Webhooks

A Voxpanda webhook sends a signed JSON POST to your URL the moment something happens in your workspace, such as a published post, a new comment or an automated reply. Use it to connect Voxpanda to Zapier, Make, n8n, a CRM or your own server. Owners and admins manage webhooks in API & MCP, under Webhooks.

Add a webhook

  1. Open API & MCP in the menu.
  2. In Webhooks, enter the Endpoint URL. It must start with https://.
  3. Add a Description so your team knows what the endpoint is for.
  4. Tick the Events you want.
  5. Select Add webhook.
  6. Copy the signing secret. It starts with whsec_ and is shown only once.

Send test queues a webhook.test event so you can check your receiver before real events arrive.

Events

Event Sent when
post.published a post goes live on a channel
post.failed a post could not be published after its retries
comment.received a new comment arrives on one of your posts
message.received a new direct message arrives
mention.received your brand is mentioned or tagged
automation.triggered a keyword automation matches a comment or DM, with the result (sent, partly sent, failed or skipped) and the reason
video.ready a vertical video has finished rendering
repurpose.done a repurpose job has written its posts

What a delivery looks like

Every delivery is a POST with a JSON body:

{
  "id": "6f1c0d6e-1d1a-4b51-9d0e-3f1a5c0d9e21",
  "event": "comment.received",
  "created_at": "2026-10-25T04:05:19Z",
  "workspace_id": "…",
  "brand_id": "…",
  "data": { "platform": "instagram", "kind": "comment", "author": "sari", "text": "How much is it?" }
}

The request carries three headers:

  • Voxpanda-Event: the event name.
  • Voxpanda-Delivery: the delivery id. It stays the same when Voxpanda retries, so use it to skip duplicates.
  • Voxpanda-Signature: t=<unix time>,v1=<signature>.

Verify the signature

The signature is an HMAC-SHA256, in hex, of the text t.body: the t value, a dot, and the raw request body. The key is your full whsec_ secret. Reject requests older than 5 minutes.

import crypto from 'node:crypto';

function verify(secret, rawBody, header) {
  const parts = Object.fromEntries(header.split(',').map((p) => p.split('=')));
  if (Math.abs(Date.now() / 1000 - Number(parts.t)) > 300) return false;
  const mac = crypto.createHmac('sha256', secret).update(`${parts.t}.${rawBody}`).digest('hex');
  return mac.length === parts.v1.length && crypto.timingSafeEqual(Buffer.from(mac), Buffer.from(parts.v1));
}

Use the raw body as received. Parsing the JSON and printing it again changes the bytes and the signature no longer matches.

Answer quickly

Reply with any 2xx status within 10 seconds. Voxpanda does not follow redirects and reads at most 4 KB of your response. Do slow work after you answer.

Retries and automatic turn-off

Attempt When
1 right away
2 1 minute later
3 5 minutes later
4 30 minutes later
5 2 hours later
6 6 hours later

After the sixth failed attempt the delivery is marked Gave up. When an endpoint fails 25 times in a row, Voxpanda turns it off and shows the reason. Fix your receiver, then select Turn on. The failure count resets.

Rotate the secret

Select New secret to create a new signing secret. The old one stops working at once, so update your receiver right after.

Questions

Which Voxpanda plans include webhooks?

Webhooks are part of every active workspace. Each workspace can have up to 5 webhook endpoints, and only owners and admins can add them.

What happens when my server is down?

Voxpanda tries a failed delivery 5 more times, after 1 minute, 5 minutes, 30 minutes, 2 hours and 6 hours. After 25 failed deliveries in a row the endpoint turns itself off until you turn it on again.

Can a webhook point to a local address?

No. The URL must use https on port 443. Addresses such as localhost, .local, .internal and private IP ranges are refused when you save and checked again before each delivery.

Can I see what Voxpanda sent?

Yes. History on each endpoint shows the last 50 deliveries from the past 30 days with the event, the HTTP status, the time it took and any error, and Send again queues a copy.

© 2026 Voxpanda Features Pricing About Contact Security Help Terms Privacy Refunds Acceptable use Cookies Data deletion DPA Bahasa Indonesia