What are Post-Call Webhooks?
Post-call webhooks are HTTP notifications that Bland AI automatically sends to your server after a phone call completes. Think of them as real-time alerts that deliver call data directly to your application, enabling you to:- Process call outcomes immediately - Trigger follow-up actions based on call results
- Integrate with your CRM or database - Automatically update customer records with call transcripts and extracted data
- Build custom analytics - Track call performance and agent effectiveness
- Create automated workflows - Send emails, create tickets, or update dashboards based on call data
- Access rich call data - Get complete transcripts, extracted variables, call duration, and more
About This Tutorial
This tutorial will help you set up and test your Bland AI webhooks for both inbound and outbound phone calls.Step 1: Create your test webhook
For testing purposes, we’ll use Webhook.site to create a temporary webhook endpoint. Webhook.site generates instant webhook URLs with no setup required and captures all incoming requests so you can see webhook deliveries in real-time. When you visit Webhook.site, it automatically provides you a unique webhook URL that will capture any HTTP requests sent to it. This is perfect for testing before you implement your own webhook endpoint.
Step 2: Configure webhook for inbound calls
Navigate to Inbound Numbers
- Open your Bland AI developer portal
- Go to the Inbound Phone Numbers page from the sidebar
Configure Your Webhook

- Find your phone number in the list of inbound numbers
- Click to expand the Advanced section of your inbound number details
- Locate the webhook field - this is where you’ll configure your post-call webhook
- Paste your webhook URL - Use the Webhook.site URL from Step 1
- Click “Test Webhook” - This sends a test payload to verify your webhook is working
webhook_events
parameter in our Send Call API documentation.
Step 3: Verify webhook test
Navigate back to your Webhook.site page and check if the test webhook fired correctly. You’ll know it worked because a new HTTP request will appear in the list.
- Double-check that you provided the correct URL
- Make sure there are no extra spaces or characters
Step 4: Test with a live phone call
Now test with an actual phone call:- Call your inbound phone number and have a conversation with your AI agent
- End the call completely
- Return to Webhook.site and you should see a new webhook delivery with the complete call data
- Inspect the payload to see the full transcript, call duration, and other call metadata
Step 5: Configure webhooks for outbound calls
Outbound calls handle webhooks differently than inbound calls. You have two options for configuring webhooks:Option 1: Per-call webhook (Recommended)
When making API calls to create outbound calls, include thewebhook
parameter in your request:
Option 2: Dashboard configuration
You can also configure a webhook when creating outbound calls in the dashboard:- Navigate to the Send Call page in your developer portal
- Click to expand the Advanced section (similar to inbound numbers)
- Add your webhook URL to the webhook field
- Send your call
Testing your outbound webhook
- Create a test call using the API with your webhook URL
- Wait for the call to complete
- Check Webhook.site for the incoming webhook payload
- Verify the payload contains your outbound call data
Webhook Payload Examples
Understanding the structure of webhook payloads helps you build better integrations. Here are examples of the actual data your webhook endpoint will receive:Standard Post-Call Webhook
This is the immediate webhook sent right after a call completes:View Standard Post-Call Webhook Payload
View Standard Post-Call Webhook Payload
Delayed Webhook with Citations and Corrected Transcript
When you enable citation extraction, you can choose to delay the post-call webhook until citations are processed. This combined webhook includes all call data plus citation information and corrected transcripts:View Delayed Webhook with Citations Payload
View Delayed Webhook with Citations Payload
Key Differences
Standard Post-Call Webhook:- Sent immediately after call completion
- Contains call metadata, transcripts, and basic variables
- No citations or corrected transcript
- Sent after post-call processing (30-60 seconds later)
- Includes enhanced
corrected_transcript
with improved formatting, accuracy, speaker labels, and confidence scores - Contains detailed
citations
array with extracted variables linked to specific utterances
Error Message Reference
All possible values for theerror_message
field in post-call webhooks. Note that webhook delivery uses HTTP status codes separately from call outcome errors.
Webhook HTTP Status Codes
Successful Webhook Delivery:200
- Webhook delivered successfully (regardless of call outcome)2xx
- Any 2xx status indicates successful webhook delivery
4xx
- Client errors (invalid webhook URL, authentication issues)429
- Rate limiting (webhook endpoint receiving too many requests)5xx
- Server errors (webhook endpoint unavailable or internal errors)
Call Error Messages
The following error messages appear in theerror_message
field within successfully delivered webhook payloads:
Successful Calls
null
- Call completed successfully
Call Connection Failures
HTTP Status: 200 (All call failures result in successful webhook delivery with error details in the payload)"Call failed."
- Base failure message"Call failed. The number you dialed is not found."
- Invalid/disconnected number (SIP 404)"Call failed. The number you dialed is temporarily unavailable."
- Network/carrier issues (SIP 480)"Call failed. The number you dialed is busy. Please try again later."
- Line busy (SIP 486)"Call failed. Service Provider Blocked Call due to Spam or Number Reputation. Try a different number."
- Carrier blocked (SIP 608)
System Errors
HTTP Status: 200 (System errors result in successful webhook delivery with error details in the payload)"A database error occurred. Please contact support."
- Internal database error"Unable to start call. Check the call details error_message for more details."
- Call dispatch failure"unknown"
- Fallback error message
Important Notes
- Webhook Delivery vs Call Outcome: HTTP status codes indicate webhook delivery success (200 = delivered), while call errors are embedded in the payload
- Retry Logic: Failed webhook deliveries (4xx/5xx) trigger automatic retries with exponential backoff
- SIP Mapping: Call connection failures map from SIP response codes to user-friendly error messages
- Error Handling: Your webhook endpoint should return 2xx status codes to confirm receipt, regardless of how you process the call data