Collected Variables (Slots) now available in Post-call Webhooks and Call APIs

The collected_variables field is now included in post-call webhook payloads and call API responses. This field contains collected variables (slots) from your conversation flows, allowing you to access user-provided information programmatically.

Example Response:

1{
2 "collected_variables": {
3 "agent-id": {
4 "user_name": {
5 "value": "Julian",
6 "collected": true
7 },
8 "appointment_date": {
9 "value": "2025-10-28",
10 "collected": true
11 },
12 "user_email": {
13 "value": null,
14 "collected": false
15 }
16 }
17 }
18}

Updated endpoints:

EndpointTitle
GET /callsGet all calls
GET /calls/{call_id}Get a call

Post-call Webhook:

The collected_variables field is now included in the post-call webhook payload when configured.

Notes:

  • Each variable has a value (the collected data) and collected (boolean indicating successful collection)
  • The collected_variables field may be null if not available for a specific call
  • Variables are keyed by agent ID, then by variable name

PII Redaction API parameter

A new redact_pii parameter has been added to the Agent endpoints, allowing you to enable PII (Personally Identifiable Information) redaction via the API.

Updated endpoints:

EndpointTitle
POST /assistantsCreate an agent
PUT /assistants/{model_id}Update an agent

When redact_pii is set to true, sensitive data is automatically removed from transcripts, post-call webhook payloads, and internal logs. Redacted data types include:

  • Credit card numbers, expiration dates, and CVVs
  • Social security numbers
  • Names, email addresses, phone numbers, and physical addresses

See Security & Compliance for more information.


Phone Numbers API enhancements

New endpoints have been added and existing endpoints have been updated for managing phone numbers.

New endpoints:

EndpointTitle
GET /numbers/{phone_number_slug}Get a phone number
POST /custom-numbersImport phone number
PATCH /numbers/{phone_number_slug}Update a phone number
DELETE /numbers/{phone_number_slug}Delete a phone number
  • Get a phone number: Retrieve detailed information about a specific phone number, including SIP configuration, capabilities, and attached assistants.
  • Import phone number: Import custom phone numbers for direct SIP dialing scenarios.
  • Update a phone number: Modify phone number configuration including friendly name and SIP settings.
  • Delete a phone number: Remove a phone number from your workspace. For purchased phone numbers, this also cancels the monthly subscription.

Updated endpoints:

EndpointTitle
GET /numbersList phone numbers
  • List phone numbers: Now includes pagination information (total_records, limit, offset) in the response.

GPT-5.2 is now supported

Added GPT-5.2 support for agents.

EndpointTitle
POST /assistantsCreate an agent
PUT /assistants/:model_idUpdate an agent
1"agent": {
2 "llm": "gpt-5.2"
3 }

New parameter: message_before_action_starts for custom actions

Custom actions now support an optional message_before_action_starts parameter that allows you to specify a message the agent will speak before the action is triggered.

What is it? This optional string parameter lets you set a custom message that the agent will say before executing a custom action, providing better user experience and context during action execution.

EndpointTitle
POST /actionsCreate an action
PUT /actions/{action_id}Update an action
1"CUSTOM_ACTION": {
2 "http_mode": "GET",
3 "url": "https://example.com/api",
4 "message_before_action_starts": "Let me check that for you"
5 }

New parameter: telephony_ringing_duration

The Get a Call API now includes a new response parameter: telephony_ringing_duration.

What is it? This parameter represents the total time (in seconds) that the call spent ringing on the telephony network before being answered or disconnected.



Simulations Updates

Based on user feedback, we have made changes to Simulations with a comprehensive set of new endpoints to manage Test Cases, Test Suites, and Simulation Sessions programmatically.

Key changes:

  • Test suites are attached to specific agents and can only run on the agent they were designed for
  • Test case generation now supports flow builder agents
  • All of your previously created Agent-based tests will now be grouped into a Test Suite.
  • Your Custom test cases will also be grouped, based on the most recently updated agent on your workspace. These changes are designed to make your test management clearer and more organised.
  • Scenarios are separate entities used when generating test cases to ensure coverage of specific situations

Simulation cases

Simulation suites

Simulation runs and sessions

EndpointTitle
POST /simulationsStart a simulation
GET /simulationsList simulations
GET /simulations/{simulation_id}Get a simulation
GET /simulations/sessionsList simulation sessions
GET /simulations/session/{simulation_session_id}Get a simulation session

Upcoming Changes

The following changes are planned for simulation case CRUD endpoints:

Field Deprecation:

  • The type field in simulation case payloads is deprecated and will be removed in a future version. Please remove this field from your API requests.

New Required Fields: In upcoming releases, the following fields will become mandatory:

  • suite_id — Test suite identifier. All simulation cases must be associated with a suite.
  • base_agent_id — The agent ID the test case is based on. This ensures proper association between test cases and agents.

Please update your integrations to include these fields to ensure compatibility with future API versions.

Read more about the feature here.

Analytics Export: Date-Time Parameters

The from_date and to_date parameters in the analytics export endpoint now accept datetime values instead of date-only values, allowing for more precise time-based filtering.

Changes:

  • from_date and to_date parameters now use date-time format instead of date format
  • Both parameters accept ISO 8601 datetime strings (e.g., 2025-11-25T14:30:00Z)
EndpointTitle
GET /analyticsAnalytics export

GPT-5.1 is now supported

Added GPT-5.1 support for agents.

EndpointTitle
POST /assistantsCreate an agent
PUT /assistants/:model_idUpdate an agent
1"agent": {
2 "llm": "gpt-5.1"
3 }

Knowledge Base Sources: Content field added

Added a new content field to the knowledge base sources endpoint to provide text content directly when adding text sources.

  • PDF/Web sources: Use url field with a link to the hosted file or webpage
  • Text sources: Use content field to provide text directly
EndpointTitle
POST /knowledge_base/:knowledge_base_id/sourcesAttach document to source

List Calls Response Update

The GET /v2/calls endpoint now returns additional call metadata and pagination information to provide more comprehensive call details.

EndpointTitle
GET /v2/callsList calls

New Fields:

  • pagination object with total_records, limit, and offset for paginated responses
  • judge_results — Call quality judging results
  • agents_used — Array of agents used during the call
  • executed_actions — Actions executed during the call
  • type_of_call — Call direction (inbound/outbound)
  • error_message — Error details if call failed
  • call_status — Current status of the call
  • labels — Array of labels associated with the call
  • agent_phone_number — Phone number used by the agent
  • deployment_type — Type of deployment
  • name — Name of the call recipient

Removed Fields:

  • timeline, recording_sid, and voice_engine_type are no longer returned