Events & Webhooks
Crew emits events for all significant actions. Subscribe to these events via webhooks to build real-time integrations.Event Categories
Call Events
Events related to phone calls:| Event | Trigger |
|---|---|
call.initiated | Call started (outbound) or received (inbound) |
call.ringing | Phone is ringing |
call.answered | Call connected |
call.transferred | Call transferred to another party |
call.ended | Call terminated |
call.recording.ready | Recording is available |
call.transcription.ready | Transcript is available |
Agent Events
Events related to agent behavior:| Event | Trigger |
|---|---|
agent.intent.detected | Agent identified caller intent |
agent.action.triggered | Agent executed an action |
agent.escalation | Agent escalated to human |
agent.error | Agent encountered an error |
SMS Events
Events related to text messages:| Event | Trigger |
|---|---|
sms.received | Inbound SMS received |
sms.sent | Outbound SMS sent |
sms.delivered | SMS confirmed delivered |
sms.failed | SMS delivery failed |
Appointment Events
Events related to scheduling:| Event | Trigger |
|---|---|
appointment.created | New appointment booked |
appointment.updated | Appointment modified |
appointment.cancelled | Appointment cancelled |
appointment.confirmed | Appointment confirmed |
appointment.reminder.sent | Reminder sent |
Campaign Events
Events related to outbound campaigns:| Event | Trigger |
|---|---|
campaign.created | Campaign created |
campaign.started | Campaign began |
campaign.paused | Campaign paused |
campaign.completed | Campaign finished |
campaign.call.completed | Individual call in campaign completed |
System Events
Platform-level events:| Event | Trigger |
|---|---|
webhook.test | Test event |
workspace.updated | Workspace settings changed |
agent.updated | Agent configuration changed |
Event Payload Structure
All events follow this structure:Event Details
call.initiated
call.ended
agent.intent.detected
appointment.created
campaign.call.completed
Subscribing to Events
Create Webhook
Update Events
Wildcard Subscriptions
Subscribe to all events of a type:Handling Webhooks
Verification
Verify webhook signatures:Idempotency
Handle duplicate events using the event ID:Async Processing
Process webhooks asynchronously for reliability:Retry Policy
Failed webhooks are retried:| Attempt | Delay |
|---|---|
| 1 | Immediate |
| 2 | 30 seconds |
| 3 | 2 minutes |
| 4 | 10 minutes |
| 5 | 1 hour |
Retry Headers
Monitoring
Webhook Logs
View delivery history:Failed Events
List events that exhausted retries:Replay Events
Replay failed or historical events:Testing
Send Test Event
Local Development
Use ngrok or similar tools:Best Practices
Respond quickly
Respond quickly
Return 200 within 5 seconds. Process async.
Handle duplicates
Handle duplicates
Use event IDs for idempotency.
Verify signatures
Verify signatures
Always validate webhook signatures.
Monitor delivery
Monitor delivery
Track webhook delivery success rates.
Plan for failures
Plan for failures
Build retry logic for downstream systems.
Next Steps
- Webhooks — Setup guide
- API Overview — Full API reference
- Custom Code Nodes — Trigger custom logic