
Developers
API reference
Outbound webhooks
Outbound webhooks push Pulse events to your own systems in near-real-time. Use them to sync customer data to your warehouse, notify Slack on campaign completion, or trigger downstream automation.
Adding a destination
- Go to Integrations → Outbound webhooks → + New destination.
- Give the destination a name and URL.
- Pick the events to subscribe to (or
*for all). ) - Copy the generated signing secret — you'll use it to verify deliveries.
Delivery format
POST https://your-endpoint.com/pulse
Content-Type: application/json
X-Pulse-Event: order_completed
X-Pulse-Signature: hmac-sha256 of body using your secret
{
"event_type": "order_completed",
"workspace_id": "uuid",
"payload": { ... },
"sent_at": "2026-05-10T14:03:05Z"
}Signature verification
Compute HMAC-SHA256 over the raw request body using the destination's secret, then compare to the X-Pulse-Signature header.
import crypto from 'node:crypto'
function verify(body, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex')
return crypto.timingSafeEqual(
Buffer.from(signature, 'hex'),
Buffer.from(expected, 'hex')
)
}Delivery log
Every delivery attempt is recorded with the HTTP status, response snippet, and timestamp. If a delivery fails, use the Replay button to retry it manually.
Testing
Click Test on any destination to deliver a synthetic ping event through the same pipeline.
Common event types
customer.created,customer.updatedcampaign.sent,campaign.completedjourney.entered,journey.exitedorder_created,order_completed,order_refundedemail_bounced,email_complained,unsubscribed