Webhooks
Webhooks allow your applications to receive real-time notifications when events occur in Crew. Use them to sync data, trigger workflows, and build integrations.How Webhooks Work
Setting Up Webhooks
Via Dashboard
1
Navigate to Webhooks
Go to Settings → Webhooks
2
Add Endpoint
Click Add Webhook and enter your URL
3
Select Events
Choose which events to receive
4
Save and Test
Save the webhook and send a test event
Via API
Event Types
Call Events
| Event | Description |
|---|---|
call.started | Call initiated |
call.answered | Call connected |
call.ended | Call terminated |
call.transferred | Call transferred |
call.recording.ready | Recording available |
call.transcription.ready | Transcript available |
SMS Events
| Event | Description |
|---|---|
sms.received | Inbound SMS received |
sms.sent | Outbound SMS delivered |
sms.failed | SMS delivery failed |
Agent Events
| Event | Description |
|---|---|
agent.intent_detected | Intent identified |
agent.action_triggered | Action executed |
agent.escalation | Escalation triggered |
Appointment Events
| Event | Description |
|---|---|
appointment.booked | New appointment created |
appointment.cancelled | Appointment cancelled |
appointment.confirmed | Appointment confirmed |
appointment.rescheduled | Appointment moved |
Campaign Events
| Event | Description |
|---|---|
campaign.started | Campaign began |
campaign.completed | Campaign finished |
campaign.call_completed | Individual call completed |
Payload Format
Standard Structure
Call Ended Example
SMS Received Example
Webhook Security
Signature Verification
Every webhook includes a signature header for verification:Timestamp Validation
Reject old events to prevent replay attacks:Retry Logic
Crew retries failed webhook deliveries:| Attempt | Delay |
|---|---|
| 1 | Immediate |
| 2 | 30 seconds |
| 3 | 2 minutes |
| 4 | 10 minutes |
| 5 | 1 hour |
Failure Conditions
Webhooks are retried if:- Your endpoint returns a 5xx status
- Your endpoint times out (>30 seconds)
- Connection cannot be established
- Your endpoint returns 2xx (success)
- Your endpoint returns 4xx (client error)
Best Practices
Respond quickly
Respond quickly
Return 200 immediately, process asynchronously. Long processing causes timeouts.
Handle duplicates
Handle duplicates
Use the event
id for idempotency. You may receive the same event twice.Verify signatures
Verify signatures
Always validate the X-Crew-Signature header before processing.
Log everything
Log everything
Log all received webhooks for debugging and audit purposes.
Use HTTPS
Use HTTPS
Only use HTTPS endpoints. HTTP endpoints are rejected.
Testing Webhooks
Test Events
Send a test event to verify your endpoint:Local Development
Use tools like ngrok for local testing:Webhook Logs
View delivery history in the dashboard:- Go to Settings → Webhooks
- Click on a webhook endpoint
- View Delivery Logs
Managing Webhooks
List Webhooks
Update Webhook
Delete Webhook
Pause/Resume Webhook
Next Steps
- API Overview — Full API documentation
- Events — Detailed event reference
- Authentication — Secure your integrations