Webhooks let you react to testimonial events in any external system. We POST a JSON payload to a URL you choose whenever something happens โ a new testimonial arrives, one gets approved, one gets deleted. Wire it up to Zapier, Make, n8n, or your own backend.
Add a webhook
- Go to Dashboard โ Integrations โ Automations.
- Find the space you want to add a webhook to and click + Add Webhook.
- Fill in:
- URL โ the endpoint that will receive the POST. Must be HTTPS.
- Events โ tick the events you want to subscribe to (see below).
- Save. We'll show you the signing secret once โ copy it to verify incoming webhooks.
Supported events
testimonial.createdโ a new testimonial submitted or importedtestimonial.approvedโ a testimonial moved to approved statustestimonial.updatedโ any edit to a testimonialtestimonial.deletedโ a testimonial was removedform.submittedโ a collection form was filled out (fires before approval)import.completedโ a scrape or bulk import finished
Verifying the signature
Every request includes an X-VT-Signature header โ a SHA-256 HMAC of the request body signed with your webhook secret. Verify it server-side to ensure the request actually came from us:
const expected = crypto
.createHmac('sha256', WEBHOOK_SECRET)
.update(rawBody)
.digest('hex')
if (signature !== expected) return res.status(401).end()
Delivery logs
Click View logs on any webhook to see the last 100 delivery attempts โ request body, response code, response body, timestamp. Failed deliveries (non-2xx status) are retried 5 times with exponential backoff.
Pause or delete
Toggle Enabled off to pause a webhook without losing the config. Click Delete to remove permanently.