Table of Contents
- What are Webhooks?
- Getting Started
- Webhook Events
- Setup & Configuration
- Event Payloads
- Best Practices
- Testing & Debugging
- Troubleshooting
What are Webhooks?
Webhooks are HTTP callbacks that allow CallIntel LiveKit to send real-time notifications to your application when specific events occur. Instead of constantly polling our API for updates, webhooks push data to your system instantly.Key Benefits
- Real-time Updates: Receive instant notifications about call events
- Reduced Latency: No need for polling intervals
- Efficient: Only receive data when events occur
- Scalable: Handle high volumes of events asynchronously
- Reliable: Automatic retry mechanism for failed deliveries
How Webhooks Work
Getting Started
Prerequisites
- CallIntel LiveKit account with organization
- Public HTTPS URL for receiving webhooks
- Basic understanding of HTTP and JSON
Quick Setup
-
Navigate to Webhooks Settings
- Go to Organization Dashboard → Settings → Webhooks
-
Add Webhook URL
- Enter your HTTPS endpoint URL
- Example:
https://your-domain.com/webhooks/callintel
-
Select Events
- Choose which events to subscribe to
- Save configuration
-
Test Connection
- Click “Send Test Webhook”
- Verify receipt and logging
-
Start Receiving Events
- Your system is now ready to receive real-time events
Webhook Events
CallIntel LiveKit supports the following webhook event types:Call Events
call.initiated
A new call has been initiated (outbound only)
call.connected
Call has been successfully connected
call.in_progress
Call is currently in progress
call.completed
Call has been completed successfully
call.failed
Call failed to connect or was dropped
call.missed
Inbound call was not answered
Data Events
call.transcript_ready
Call transcript has been generated
call.recording_ready
Call recording is available for download
call.summary_ready
AI-generated call summary is ready
call.analysis_complete
Call analysis (sentiment, intent, etc.) is complete
Batch Events
batch.initiated
Batch call campaign has been initiated
batch.in_progress
Batch calls are currently being processed
batch.completed
All batch calls have been completed
batch.failed
Batch call campaign encountered errors
Setup & Configuration
Configure Webhook Endpoint
Your webhook endpoint must:- ✅ Be publicly accessible over HTTPS
- ✅ Accept POST requests
- ✅ Return HTTP 200 status code
- ✅ Respond within 10 seconds
- ✅ Handle duplicate events
Add Webhook URL
Via Dashboard
- Go to Organization Settings → Webhooks
- Click “Add Webhook”
- Enter webhook URL:
https://your-domain.com/webhooks/callintel - Select event types to subscribe
- Click “Save”
Via API
Webhook Settings
| Setting | Description | Default |
|---|---|---|
| URL | Your webhook endpoint | Required |
| Events | Event types to receive | All |
| Active | Enable/disable webhook | Enabled |
| Retry | Automatic retry attempts | 3 |
| Timeout | Request timeout (seconds) | 10 |
Event Payloads
Call Status Changed Event
Call Transcript Event
Batch Call Event
Best Practices
1. Verify Webhook Authenticity
Always verify that webhooks are legitimate CallIntel requests:2. Handle Duplicate Events
Events may be delivered multiple times. Use idempotency keys:3. Implement Retry Logic
Handle temporary failures gracefully:4. Respond Quickly
Your endpoint should respond as quickly as possible:5. Log All Webhooks
Maintain a log of all webhook deliveries:Testing & Debugging
Test Webhook from Dashboard
- Navigate to Organization Settings → Webhooks
- Select your webhook
- Click “Send Test Event”
- Choose event type to test
- View response status and logs
Manual Testing with curl
Monitor Webhook Logs
Via Dashboard
- Go to Organization Settings → Webhooks
- Click “View Logs”
- Filter by:
- Date range
- Event type
- Status (Success/Failed/Pending)
- Response code
Via API
Debug Webhook Issues
Use these tools to debug webhook problems:- Webhook.site - Inspect webhook requests
- RequestBin - Test webhook delivery
- ngrok - Expose local server for testing
- Postman - Simulate webhook requests
Troubleshooting
Common Issues
Webhook Not Being Delivered
Check:- ✅ Webhook URL is publicly accessible
- ✅ URL uses HTTPS (HTTP will be rejected)
- ✅ Endpoint accepts POST requests
- ✅ Firewall allows incoming connections
- ✅ Webhook is enabled in settings
Webhook Timeout
Issue: Webhook endpoint takes too long to respond Solution:- Process events asynchronously
- Respond with 202 Accepted
- Use background job queue
Duplicate Event Processing
Issue: Same event processed multiple times Solution: Implement idempotencyInvalid Signature
Issue: Webhook signature verification fails Check:- ✅ Using correct webhook secret
- ✅ Signature header present
- ✅ Not modifying request body
- ✅ Using correct hash algorithm (SHA-256)
Error Response Codes
| Code | Meaning | Action |
|---|---|---|
| 200 | Success | Event processed |
| 201 | Created | Resource created |
| 202 | Accepted | Will process asynchronously |
| 400 | Bad Request | Invalid payload format |
| 401 | Unauthorized | Invalid signature |
| 403 | Forbidden | Access denied |
| 404 | Not Found | Endpoint doesn’t exist |
| 500-599 | Server Error | Will retry automatically |
Get Support
If you’re experiencing webhook issues:- Check Logs - Review webhook delivery logs in dashboard
- Test Webhook - Send test event to verify endpoint
- Monitor Status - Check Organization Health page
- Contact Support - Email: callintel01@gmail.com
Advanced Configuration
Webhook Filters
Filter events to reduce noise:Multiple Webhooks
Register multiple endpoints for different purposes:Webhook Retry Policy
Configure retry behavior:FAQ
How long are webhooks retried?
How long are webhooks retried?
Webhooks are retried up to 3 times with exponential backoff. First retry at 60 seconds, then 300 seconds, then 900 seconds.
Can I receive webhooks on HTTP (not HTTPS)?
Can I receive webhooks on HTTP (not HTTPS)?
No, webhooks must use HTTPS for security. HTTP endpoints will be rejected.
What if my webhook endpoint is temporarily unavailable?
What if my webhook endpoint is temporarily unavailable?
How do I verify webhook authenticity?
How do I verify webhook authenticity?
Each webhook includes an
X-Callintel-Signature header containing an HMAC-SHA256 signature. Verify this against your webhook secret.Can I filter which events I receive?
Can I filter which events I receive?
Yes, when registering a webhook, you can select specific event types or use filters for more granular control.
What's the maximum payload size?
What's the maximum payload size?
Webhook payloads are limited to 10 MB. Larger payloads will be truncated or rejected.
How do I test webhooks locally?
How do I test webhooks locally?
Use ngrok to expose your local server:
ngrok http 8000, then use the generated URL as your webhook endpoint.Can I disable a webhook temporarily?
Can I disable a webhook temporarily?
Yes, toggle the “Active” switch in webhook settings to disable without deleting it.
See Also
- API Reference - Complete API documentation
- Call Management - Learn about call events
- Organization Settings - Configure webhooks
- Troubleshooting Guide - Common issues and solutions
Happy Building! 🚀 For support or questions about webhooks, contact us at callintel01@gmail.com