title | sidebarTitle | description |
---|---|---|
Changelog |
Changelog |
New features, improvements, and fixes every few days |
- Specify API Traffic Channel for Organizations: You can now configure which
channel
(cluster) your API traffic will be routed to. Select between daily or weekly in your organization settings page
- Customize Tavus Voice Properties: You can now use Tavus as a voice provider under
assistant.voice
. Configure additional properties like language, recording options, and transcriptions viaassistant.voice.properties
.
-
Multilingual Support in Tool Messages: You can now use the
contents
property inToolMessageStart
,ToolMessageFailed
,ToolMessageDelayed
, andToolMessageComplete
to provide message variants for different languages. If you don't provide content for a language, the first item will be automatically translated to the active language during the conversation. -
Automatic Translation of Message Contents: For
CustomMessage
,BlockStartMessage
, andBlockCompleteMessage
, if specific content isn't provided for a language incontents
, Vapi automatically translates the first item to the active language by default. -
Removed Backchanneling Configuration: The
backchannelingEnabled
property has been removed from when creating or updatingAssistant
or `AssistantOverrides. Backchanneling is no longer configurable in assistant settings.
<Frame caption="Invite Multiple Users via Email">
<img src="/static/images/changelog/invite-multiple-users.png" alt="Invite Multiple Users via Email" />
</Frame>
2. **Simplified Subscription Status Handling**: Your subscription status no longer includes the `past-due` status, so you can streamline your subscription management without handling 'past-due' scenarios.
2. **Increased Maximum Call Duration**: The maximum allowed value for `maxDurationSeconds` has increased from 21,600 to 43,200 seconds when creating or updating `Assistant` or `AssistantOverrides`. You can now configure your assistant to handle calls lasting up to 12 hours.
3. **New Voice Provider 'tavus'**: You can now specify `tavus` as a voice provider in `Assistant.voice`, `AssistantOverrides.voice`, `Call.voice` and in the Voice Library.
4. **Subscription Status 'frozen' Added**: A new status `frozen` has been added to `Subscription.status`, indicating when a subscription is temporarily inactive.
5. **Added Subscription Coupon Codes**: You can now apply coupon codes to your subscription. Visit the [billing page](https://dashboard.vapi.ai/org/billing) to apply coupons to specific organizations within a subscription.
<Frame caption="Subscription Coupon Codes">
<img src="/static/images/changelog/subscription-coupon-codes.png" alt="Subscription Coupon Codes" />
</Frame>
2. **Detect Custom Transcriber Failures in Call End Reasons**: You can now handle cases where a custom transcriber fails during a call with `'pipeline-error-custom-transcriber-failed'`, a new `endedReason` option. This is now accessible in `Call`, `ServerMessageStatusUpdate`, and `ServerMessageEndOfCallReport`.
3. **Corrected Typo in Example Custom Voice Request**: We fixed a typo in `CustomVoice.server`, where the example request now shows how to use the `"message"` parameter instead of the misspelled `"messsage"`.
2. **Unified Server Configuration in Assistants**: You can now use the `server` property in `Assistant.server`, `AssistantOverrides.server`, and when creating or updating assistants to specify webhook settings, including URL, secret, custom headers, and timeout. This replaces the old `serverUrl` and `serverUrlSecret` properties of `Assistant`.
<Warning>Include custom headers in your webhook requests by using the `headers` property within the `server` object when creating or updating assistants.</Warning>
3. **Configure PlayHT Voice Engines**: You can now configure which PlayHT voice `model` generates voices for your application between `PlayHT2.0`, `PlayHT2.0-turbo`, and `Play3.0-mini`.
1. **Purchase Reserved Concurrency and Scale Infinitely**: You can now reserve more concurrent calls with Vapi and scale infinitely by switching to our new top up payment system on the [billing page](https://dashboard.vapi.ai/org/billing). To migrate, click "Switch to Credit Based Billing" and make a payment. Advantages include:
- **Support More Users Without Limits**: You don't need to worry about getting throttled or staying under usage limits on the conversations you can have with Vapi.
- **Predictable Budgets**: You know exactly how much you will spend on Vapi each month, and you can top up at any time as your needs grow.
- **Select Add-Ons You Need**: The credit based billing page allows you to select HIPAA compliance, dedicated Slack support, and the maximum number of concurrent calls you expect.
<Warning>This will require human input to login and migrate your account. You will not be able to revert back to the old billing system.</Warning>
2. **Updated Billing Page**: Your payments are now returned inside a table with pages on the [billing page](https://dashboard.vapi.ai/org/billing).
2. **Specify Timestamps as Strings in `/logs`**: We now expect timestamps as strings when working with logs. Please make sure to handle this accordingly in your applications.
2. **Secure Incoming SIP Phone Calls to Vapi Provided SIP Numbers**: You can now specify a `username`, `password`, and optional `realm` in SIP Invite AuthZ header, through digest authentication. Create this secure SIP number by specifying an "authentication" object with the username and password fields inside `POST /phone-number` request body. Example:
```bash
curl --location 'https://api.vapi.ai/phone-number' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {}API_KEY}}' \
--data-raw '{
"provider": "vapi",
"sipUri": "sip:{{USERNAME}}@sip.vapi.ai",
"assistantId": "{{ASSISTANT_ID}}",
"name": "example phone number label for your reference",
"authentication": {
"realm": "sip.vapi.ai",
"username": "[email protected]",
"password": "example_password"
}
}'
```
3. **Use Updated `handoff`, `callback` Steps in Blocks**: You can now use `assistant.model.steps[type=handoff]` and `assistant.model.steps[type=callback]` to control conversation flow in your assistant. Use `HandoffStep` to move to the next step linearly without returning to the previous step, ideal for sequential tasks like forms. Use `CallbackStep` to spawn a new conversation thread and return to the previous step once done, good for handling interruptions or sub-tasks within a conversation.
4. **Use Step Destinations and Assignment Mutation in Blocks**: Specify destination nodes for each step with `assistant.model.steps[type=handoff].destinations[type=step]` to direct the workflow to specific steps based on certain conditions. Update context variables in each callback step with `mutations[type=assignment]`, for example: `assistant.model.steps[type=callback].mutations[type=assignment]`