Webhooks
ProWebhooks let you push real-time events from RadiusOS to external services — your own API, Zapier, Make, or any HTTP endpoint.
Overview
When something happens in RadiusOS (a contact is created, a stage changes, a task is completed), a webhook sends a JSON payload to a URL you specify. This lets you integrate RadiusOS with virtually any external tool without writing custom polling code.
Webhooks are a Pro feature. Free plan users cannot configure webhook endpoints.
Setting up a webhook
Go to Settings → Webhooks
Click + New Webhook to configure an endpoint.
Enter the endpoint URL
This is the URL that will receive POST requests when events fire. Must be HTTPS.
Select events
Choose which events trigger the webhook. Options include: contact.created, contact.updated, contact.deleted, contact.stage_changed, task.created, task.completed, email.sent, email.received.
Save and test
After saving, use the "Send Test" button to fire a sample payload to your endpoint and verify it's receiving data correctly.
Payload format
Webhooks send a JSON POST request with the following structure:
```json
{
"event": "contact.stage_changed",
"timestamp": "2025-01-15T10:30:00Z",
"workspace_id": "ws_...",
"data": {
"contact_id": "...",
"from_stage": "Lead",
"to_stage": "Qualified"
}
}
```
The `data` field varies by event type. All payloads include `event`, `timestamp`, and `workspace_id`.
Retry behavior
If your endpoint returns a non-2xx status code, RadiusOS retries up to 3 times with exponential backoff (30 seconds, 2 minutes, 10 minutes). After 3 failures, the delivery is marked as failed and visible in the webhook logs.