Get the (almost) daily changelog
  1. Minimax Voice Provider Integration and Error Handling: You can now use MinimaxVoice as a voice provider in your assistants and workflows, with support for Minimax credentials for seamless authentication and integration. Additionally, calls can now terminate with Minimax-specific error reasons such as pipeline-error-minimax-voice-failed and call.in-progress.error-vapifault-minimax-voice-failed. This gives you access to customizable voice characteristics like pitch, speed, and emotion for more natural-sounding conversations.

  2. AssemblyAI Transcriber Updates: The AssemblyAITranscriber configuration has been simplified:

    • The enableUniversalStreamingApi property has been removed.
    • The formatTurns property now defaults to true and no longer depends on the universal streaming API setting.
    • Several properties have updated descriptions and defaults, with references to the deprecated universal streaming API removed.
  3. Enhanced Chat and Session Events: New message types have been added for handling chat and session events: chat.created, chat.deleted, session.created, session.updated, and session.deleted. These events are available in both ClientMessage and ServerMessage objects, giving you better control over interactive conversations.

  4. Expanded API Request Tool Capabilities: The ApiRequestTool now supports PUT, PATCH, and DELETE HTTP methods alongside the existing GET and POST methods. This enables your tools to perform full CRUD operations on external APIs.

  5. Targeted Call Analysis: You can now specify outcomeIds in your AnalysisPlan to calculate specific outcomes during call analysis. This allows for more focused analytics based on your defined metrics and KPIs.

  1. Custom headers for custom LLM models: You can now add custom headers to both Custom LLM Models and Workflow Custom Models (including in assistants, squads, and workflows). This lets you send custom HTTP headers—such as for authentication or extra metadata—when Vapi calls your custom LLM API. The headers property overrides default headers (except Authorization, which should be set via your custom-llm credential).

Use Transient Tools in Conversation Nodes

  1. Add Transient Tools to Conversation Nodes with tools: You can now define transient tools directly within a Conversation Node using Call.workflow.nodes[type=conversation].tools. This allows for the customization of tools specific to a conversation without altering global tool configurations.

  2. Incorporate Existing Tools into Conversation Nodes with toolIds: You can now reference existing tools in a Conversation Node by listing their IDs using the toolIds property. This enables the reuse of predefined tools across different nodes and workflows for consistency and easier maintenance.

This allows you to mix transient, node-specific tools with existing tools within a ConversationNode. Learn more about how to use this in the Conversation Node documentation.

  1. Addition of model property to Workflows: You can now set a default language model for your workflows using Workflow.model. This simplifies configuration by allowing you to specify the model once for the entire workflow instead of at each node.

  2. Removal of westus2 region from Azure credentials: The westus2 region is no longer supported in Azure credential configurations. Update your Azure credentials to use a different region to maintain access to Azure services.

The following OpenAI models have been removed and are no longer available: gpt-4.5-preview, o1-preview, and o1-preview-2024-09-12.
Update your workflows to use supported models to avoid interruptions.

  1. Standardized ‘Provider Resources’ API Summaries and Tags: The API endpoints for provider resources now have clearer summaries and are grouped under the Provider Resources tag, making them easier to find and understand.

  2. Added 'westus2' Azure Region Support: You can now specify 'westus2' as a region when configuring Azure credentials, allowing access to services in this new region.

  3. Removed 'trial' Subscription Type: The 'trial' option has been removed from subscription types; ensure your application no longer uses 'trial' and updates to valid subscription types.

  1. Define Hooks at Workflow Level: You can now define call-level hooks using Workflow.hooks to trigger actions on call events.

  2. New Actions Available in Hooks: Hooks support new actions like say, tool, transfer, and function, providing more options to define what happens when a hook is triggered.

  3. Hooks Triggered by Additional Events: Hooks can now be set to trigger on new events such as Call.ending, Customer.speech.timeout, Customer.speech.interrupted, and Assistant.speech.interrupted, giving you more flexibility in handling different call scenarios.

  4. Conditional Hook Execution with Filters: You can use the CallHookFilter to specify conditions under which a hook should trigger, allowing for precise control over hook activation based on call data.

  5. Enhanced Prompt Configuration in Actions: With SayHookAction, you can configure prompts as a string or an array of messages, providing flexibility in how messages are delivered to callers.

Web Chat Support for Assistants

Create web-based chat sessions with your assistants using the new Web Chat integration with OpenAI Web Chat Requests. Accept user input as strings or message arrays and manage conversations with session and customer information.

  1. Inworld TTS Voice Provider Integration: You can now customize which language Inworld Voices use like English, Chinese, and Korean. You can also set the TTS model and toggle voice caching with cachingEnabled.
Inworld Voice Configuration
  1. Additional Customer Information Fields: You can now include email and externalId fields when creating customers. You can also disable the E164 number format check with numberE164CheckEnabled – setting it to false lets you use non-E164 numbers like 1234 or abc, useful for dialing non-standard numbers on SIP trunks. This lets you store extra contact information and link customers to external systems.

  2. schedulePlan No Longer Required in Campaigns: You can now create campaigns without specifying a schedulePlan.

Behavior Change: The Chat.assistantOverrides property now only supports variable substitution in chat contexts, limiting its functionality compared to previous versions.

Custom Models, Enhanced Campaigns, and MCP Tool Improvements

Custom Model Support in Workflows

Bring your own hosted LLMs and Google Gemini models to workflows with new WorkflowCustomModel and WorkflowGoogleModel objects. Control payload structure for advanced integrations and expand your model choices beyond OpenAI.

Google Model Configuration
Enhanced Campaign Analytics

Gain deeper insight into campaign performance with new call counters including callsCounterQueued, callsCounterScheduled, callsCounterInProgress, and callsCounterEndedVoicemail for comprehensive campaign tracking.

MCP Tool Protocols and Metadata

Flexible tool integrations with new McpToolMetadata field. Select between Server-Sent Events (sse) or Streamable HTTP (shttp) protocols for tool communication.

  1. Multilingual LMNT Voice Support: The LMNTVoice and FallbackLMNTVoice objects now support a language property (ISO 639-1 or auto) for selecting or auto-detecting spoken language in synthesized voices.

  2. Assistant Overrides in Chats: The assistantOverrides property is now available in Chat, CreateChatDTO, and OpenAIResponsesRequest, allowing you to dynamically override assistant settings and template variables per chat session.

  3. New API Endpoints and Objects: Added POST /workflow/generate endpoint for workflow generation with tool IDs, plus new objects including GenerateWorkflowDTO and enhanced CreateMcpToolDTO/UpdateMcpToolDTO with metadata support.

  4. Include Messages in Server Response from Transfer Requests: When transferring calls, you can now include a message to communicate with users during the process with ServerMessageResponse.message.message.

Breaking Change: The 'aws-sts' type is no longer supported in OAuth2AuthenticationPlan. If you’re currently using this type in your OAuth2 authentication configurations, you’ll need to update it to avoid errors.

Support for 'Inworld' Voice Provider

You can now use Inworld as a voice provider by selecting Inworld in your configuration. You can also route your InWorld credentials under Settings > Integrations. Finally, there are new Call.endedReason codes to help you better understand why calls ended due to Inworld voice issues.

Inworld Voice Configuration
  1. HMAC Authentication for Webhook Credentials: Secure your webhooks with HMAC authentication by configuring Assistant.credentials.authenticationPlan with HMACAuthenticationPlan, providing an alternative to OAuth2.

  2. Detailed Call End Reasons for Inworld Voice: New endedReason codes provide more insight when calls end due to Inworld voice issues.

Breaking Change: The codeSwitchingEnabled property has been removed from Deepgram transcribers. If you’re currently using this property in your Deepgram transcriber configurations, you’ll need to remove it to avoid errors.

Org Concurrency Limit Deprecated: The concurrencyLimit field in Org, CreateOrgDTO, and UpdateOrgDTO is now marked as deprecated.