API Reference
Post-Call Webhook
Webhook sent after a call is completed containing extracted variables and call data
On this page
The Post-Call Webhook is automatically sent to your specified webhook URL after each call is completed. This webhook contains call details, extracted variables, transcript, and optionally the recording URL.
Webhook Configuration
To enable post-call webhooks:
- Configure your assistant's webhook URL in the assistant settings
- Enable "Post call webhook" in the assistant configuration
- Define post-call variables that the AI should extract
Request Format
The webhook is sent as a POST request to your configured URL with the following JSON payload:
Payload Structure
idinteger
Unique identifier of the call
customer_phonestring
Phone number of the customer in E.164 format (e.g., "+1234567890") or null if not available
assistant_phonestring
Phone number used by the assistant in E.164 format or null if not available
durationinteger
Duration of the call in seconds
statusstring
Final status of the call (e.g., "completed", "busy", "failed")
extracted_variablesobject
Variables extracted by AI based on your post-call schema configuration
input_variablesobject
Variables that were passed to the assistant before the call started
transcriptstring
Full transcript of the conversation
recording_urlstring
URL to download the call recording (only included if "Include recording in webhook" is enabled in assistant settings)
created_atstring
ISO 8601 timestamp when the call was initiated
finished_atstring
ISO 8601 timestamp when the call was completed (uses updated_at from the call record)
leadobject
Lead information (only included for campaign calls)
transfersarray
List of transfer calls made during this call (only included if the call has transfers)
{
"id": 12345,
"customer_phone": "+1234567890",
"assistant_phone": "+1987654321",
"duration": 125,
"status": "completed",
"extracted_variables": {
"status": true,
"summary": "Customer interested in product demo",
"lead_quality": "high",
"next_action": "schedule_demo"
},
"input_variables": {
"customer_name": "John Doe",
"product_interest": "Pro Plan"
},
"transcript": [
{
"text": "Hello! This is Sarah from VoxLink. How are you today?",
"type": "transcript",
"sender": "bot",
"timestamp": 1756812511.315143
},
{
"text": "Hi, I'm doing well, thanks for calling.",
"type": "transcript",
"sender": "human",
"timestamp": 1756812514.104436
},
{
"text": "I'm calling to tell you about our new product features.",
"type": "transcript",
"sender": "bot",
"timestamp": 1756812522.918859
},
{
"text": "That sounds interesting, tell me more.",
"type": "transcript",
"sender": "human",
"timestamp": 1756812525.234567
}
],
"formatted_transcript": "AI: Hello! This is Sarah from VoxLink. How are you today?\nCustomer: Hi, I'm doing well, thanks for calling.\nAI: I'm calling to tell you about our new product features.\nCustomer: That sounds interesting, tell me more.",
"recording_url": "https://app.voxlink.ai/storage/recordings/call-12345.mp4",
"created_at": "2025-01-15T10:30:00.000000Z",
"finished_at": "2025-01-15T10:32:05.000000Z",
"transfers": [
{
"id": 12346,
"status": "completed",
"transfer_to": "+1555123456",
"duration": 85,
"carrier_cost": 0.0156,
"transcript": null,
"formatted_transcript": "",
"created_at": "2025-01-15T10:31:00.000000Z",
"finished_at": "2025-01-15T10:32:25.000000Z"
}
],
"lead": {
"id": 789,
"phone_number": "+1234567890",
"variables": {
"source": "website",
"interest_level": "high"
},
"status": "contacted",
"call_tries": 2,
"created_at": "2025-01-15T09:00:00.000000Z",
"updated_at": "2025-01-15T10:32:05.000000Z",
"campaign": {
"id": 456,
"name": "Product Demo Campaign",
"status": "active",
"allowed_hours_start_time": "09:00",
"allowed_hours_end_time": "17:00",
"allowed_days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
"max_calls_in_parallel": 5,
"max_retries": 3,
"retry_interval": 60,
"created_at": "2025-01-15T08:00:00.000000Z",
"updated_at": "2025-01-15T08:00:00.000000Z"
}
}
}
Webhook Settings
You can configure the following options for your post-call webhook:
- Send webhook only on completed: Only send the webhook for successfully completed calls
- Include recording in webhook: Include the
recording_urlfield in the payload - Custom variables: Define custom variables that the AI should extract from the conversation
Important Notes
- The
customer_phoneandassistant_phonefields can benullif the information is not available - The
recording_urlfield is only included if you have enabled "Include recording in webhook" in your assistant settings - The
leadobject is only included for calls that are part of a campaign - The
transfersarray is only included for calls that have transfer calls associated with them - The
extracted_variablesobject will contain the variables you defined in your assistant's post-call schema configuration
Related guides
API Reference
Introduction
Welcome to the VoxLink API
Read guide →API Reference
Authentication
Learn how to authenticate your API requests
Read guide →API Reference
Get current user
Get the authenticated user's profile information
Read guide →API Reference
List assistants
List all assistants for the authenticated user with pagination
Read guide →