Skip to main content
The Post-Call Webhook is automatically sent to your specified webhook URL after each call is completed. This webhook includes call details, extracted variables, the transcript, and optionally the recording URL.

Webhook Configuration

To enable Post-Call Webhooks:
  1. Configure your assistant’s webhook URL in the assistant settings
  2. Enable “Post call webhook” in the assistant configuration
  3. Define the post-call variables you want the AI to extract

Request Format

The webhook is sent as a POST request to your configured URL with the following JSON payload:

Payload Structure

id
integer
Unique identifier of the call
customer_phone
string
Customer’s phone number in E.164 format (e.g. “+1234567890”) or null if not available
assistant_phone
string
Phone number used by the assistant in E.164 format or null if not available
duration
integer
Call duration in seconds
status
string
Final status of the call (e.g. “completed”, “busy”, “failed”)
extracted_variables
object
Variables extracted by the AI based on your post-call schema configuration
input_variables
object
Variables passed to the assistant before the call started
transcript
string
Full transcript of the conversation
recording_url
string
URL to download the call recording (only included if “Include recording in webhook” is enabled in assistant settings)
created_at
string
ISO 8601 timestamp of when the call was initiated
finished_at
string
ISO 8601 timestamp of when the call was completed (taken from the call record’s updated_at)
lead
object
Lead information (only included for campaign calls)
campaign
object
Campaign information (if available)

Webhook Settings

You can configure the following options for your Post-Call Webhook:
  • Send webhook only on completed: Send the webhook only for successfully completed calls
  • Include recording in webhook: Include the recording_url field in the payload
  • Custom variables: Define custom variables the AI should extract from the conversation

Important Notes

  • The fields customer_phone and assistant_phone can be null if the information is not available
  • The field recording_url is only included if you have enabled “Include recording in webhook” in your assistant settings
  • The lead object is only included for calls that are part of a campaign
  • The extracted_variables object contains the variables you defined in your assistant’s post-call schema configuration
{
  "id": 480336,
  "customer_phone": "+4915123456789",
  "assistant_phone": "+4912345678",
  "duration": 180,
  "status": "completed",
  "extracted_variables": {
    "customer_interested": true,
    "appointment_scheduled": false,
    "contact_reason": "product_inquiry",
    "follow_up_needed": true,
    "customer_budget": "10000-50000",
    "decision_maker": true,
    "next_contact_date": "2024-02-15"
  },
  "input_variables": {
    "customer_name": "Max Mustermann",
    "company": "Beispiel GmbH"
  },
  "transcript": "Assistant: Hello Mr. Mustermann! I am calling from Famulor...\nCustomer: Hello, yes I’m listening...",
  "recording_url": "https://recordings.famulor.de/call-480336.mp3",
  "created_at": "2024-01-15T10:30:00Z",
  "finished_at": "2024-01-15T10:33:00Z",
  "lead": {
    "id": 12345,
    "phone_number": "+4915123456789",
    "variables": {
      "customer_name": "Max Mustermann",
      "company": "Beispiel GmbH",
      "source": "website"
    },
    "status": "contacted",
    "created_at": "2024-01-14T09:00:00Z",
    "updated_at": "2024-01-15T10:33:00Z"
  },
  "campaign": {
    "id": 2324,
    "name": "New Customer Acquisition Q1 2024",
    "status": "in-progress",
    "allowed_hours_start_time": "09:00:00",
    "allowed_hours_end_time": "18:00:00",
    "allowed_days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
    "max_calls_in_parallel": 5,
    "max_retries": 3,
    "retry_interval": 60,
    "created_at": "2024-01-01T08:00:00Z",
    "updated_at": "2024-01-15T10:00:00Z"
  }
}