|
1 | 1 | --- |
2 | | -title: Changelog |
3 | | -subtitle: New features, improvements, and fixes every few days |
4 | | -slug: changelog |
| 2 | +title: "Changelog" |
| 3 | +sidebarTitle: "Changelog" |
| 4 | +description: "New features, improvements, and fixes every few days" |
5 | 5 | --- |
6 | 6 |
|
| 7 | +# October 22 to October 25, 2024 |
7 | 8 |
|
8 | | -# October 7 to October 8, 2024 |
| 9 | +1. **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](https://dashboard.vapi.ai/org/settings) |
9 | 10 |
|
10 | | -1. **New GPT-4o Model Support for Azure OpenAI**: You can now specify the `gpt-4o-2024-08-06` model in the `models` field when configuring Azure OpenAI credentials. Use this model to access the latest GPT-4 operational capabilities in your applications. |
| 11 | +<Frame caption="Organization Settings Page"> |
| 12 | + <img src="/static/images/changelog/organization-settings-page.png" alt="Organization Settings Page" /> |
| 13 | +</Frame> |
11 | 14 |
|
12 | | -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. |
| 15 | +2. **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 via `assistant.voice.properties`. |
13 | 16 |
|
| 17 | +<Frame caption="Tavus Voice Properties"> |
| 18 | + <img src="/static/images/changelog/tavus-voice.png" alt="Tavus Voice Properties" /> |
| 19 | +</Frame> |
14 | 20 |
|
15 | | -# October 6 to October 7, 2024 |
| 21 | +3. **Multilingual Support in Tool Messages**: You can now use the `contents` property in `ToolMessageStart`, `ToolMessageFailed`, `ToolMessageDelayed`, and `ToolMessageComplete` 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. |
16 | 22 |
|
17 | | -1. **Add Structured Outputs for OpenAI Functions in Assistant Tools**: You can use [OpenAI Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs) by specifying a new parameter called `strict` as true or false when creating or using `OpenAIFunction`s in `assistant.model.tools[type=function]`. Set the `name`, provide a `description` (up to 1000 characters), and specify `parameters` as a [JSON Schema object](https://json-schema.org/understanding-json-schema). See the [OpenAI guide](https://platform.openai.com/docs/guides/function-calling) for examples. |
| 23 | +4. **Automatic Translation of Message Contents**: For `CustomMessage`, `BlockStartMessage`, and `BlockCompleteMessage`, if specific content isn't provided for a language in `contents`, Vapi automatically translates the first item to the active language by default. |
18 | 24 |
|
19 | | -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: |
20 | | -```bash |
21 | | -curl --location 'https://api.vapi.ai/phone-number' \ |
22 | | ---header 'Content-Type: application/json' \ |
23 | | ---header 'Authorization: Bearer {}API_KEY}}' \ |
24 | | ---data-raw '{ |
25 | | - "provider": "vapi", |
26 | | - "sipUri": "sip:{{USERNAME}}@sip.vapi.ai", |
27 | | - "assistantId": "{{ASSISTANT_ID}}", |
28 | | - "name": "example phone number label for your reference", |
29 | | - "authentication": { |
30 | | - "realm": "sip.vapi.ai", |
31 | | - |
32 | | - "password": "example_password" |
33 | | - } |
34 | | -}' |
35 | | -``` |
| 25 | +5. **Removed Backchanneling Configuration**: The `backchannelingEnabled` property has been removed from when creating or updating `Assistant` or `AssistantOverrides. Backchanneling is no longer configurable in assistant settings. |
36 | 26 |
|
37 | | -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. |
38 | 27 |
|
39 | | -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]` |
| 28 | +<AccordionGroup> |
| 29 | + <Accordion title="October 19 to October 22, 2024"> |
| 30 | + 1. **Invite Multiple Users via Email**: You can now invite up to 100 users at once by providing a list of email addresses inside your [org users page](https://dashboard.vapi.ai/org/users). Click `'+'` after entering an email address, select the role as *Editor* or *Admin*, and click `'Invite'`. |
| 31 | + |
| 32 | + <Frame caption="Invite Multiple Users via Email"> |
| 33 | + <img src="/static/images/changelog/invite-multiple-users.png" alt="Invite Multiple Users via Email" /> |
| 34 | + </Frame> |
| 35 | + |
| 36 | + 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. |
| 37 | + </Accordion> |
| 38 | + |
| 39 | + <Accordion title="October 16 to October 19, 2024"> |
| 40 | + 1. **Custom Transcriber Support**: You can now integrate your own transcription service by using `CustomTranscriber` at `assistant.transcriber`, `call.squad.members.assistant.transcriber`, and `call.squad.members.assistantOverrides.transcriber`. Provide your custom transcription server details via `server.url` to receive real-time transcriptions during calls. |
| 41 | + |
| 42 | + 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. |
| 43 | + |
| 44 | + 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. |
| 45 | + |
| 46 | + 4. **Subscription Status 'frozen' Added**: A new status `frozen` has been added to `Subscription.status`, indicating when a subscription is temporarily inactive. |
| 47 | + |
| 48 | + 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. |
| 49 | + |
| 50 | + <Frame caption="Subscription Coupon Codes"> |
| 51 | + <img src="/static/images/changelog/subscription-coupon-codes.png" alt="Subscription Coupon Codes" /> |
| 52 | + </Frame> |
| 53 | + </Accordion> |
| 54 | + |
| 55 | + <Accordion title="October 13 to October 16, 2024"> |
| 56 | + 1. **Apply Coupons to Subscriptions**: You can now apply coupons by specifying a `couponId` to add to a subscription. |
| 57 | + |
| 58 | + 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`. |
| 59 | + |
| 60 | + 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"`. |
| 61 | + |
| 62 | + </Accordion> |
| 63 | + <Accordion title="October 10 to October 13, 2024"> |
| 64 | + 1. **New Call Transfer Modes Added**: you can now wait for an operator to speak first before providing a transfer message or summary when transferring calls to a new destination with `TransferPlan`. Configure this through *transferPlan.mode=`'warm-transfer-wait-for-operator-to-speak-first-and-then-say-message'`* or *transferPlan.mode=`'warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary'`* inside the request body of `POST /assistant` or `PATCH /assistant`. |
| 65 | + |
| 66 | + 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`. |
| 67 | + |
| 68 | + <Warning>Include custom headers in your webhook requests by using the `headers` property within the `server` object when creating or updating assistants.</Warning> |
| 69 | + |
| 70 | + 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`. |
| 71 | + </Accordion> |
| 72 | + <Accordion title="October 9 to October 10, 2024"> |
| 73 | + <a href="https://dashboard.vapi.ai/org/billing" target="_blank"> |
| 74 | + <Frame caption="Click Here to Switch to Credit Based Billing"> |
| 75 | + <img src="/static/images/changelog/credit-based-billing-oct-10.png" alt="Credit Based Billing" /> |
| 76 | + </Frame> |
| 77 | + </a> |
| 78 | + |
| 79 | + 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: |
| 80 | + |
| 81 | + - **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. |
| 82 | + - **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. |
| 83 | + - **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. |
| 84 | + |
| 85 | + <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> |
| 86 | + </Accordion> |
| 87 | + <Accordion title="October 8 to October 9, 2024"> |
| 88 | + 1. **Call Cost Information**: You can now use `call.costs[type=vapi].subType` to determine if a VAPI cost is `normal` or an `overage`. |
| 89 | + |
| 90 | + 2. **Updated Billing Page**: Your payments are now returned inside a table with pages on the [billing page](https://dashboard.vapi.ai/org/billing). |
| 91 | + </Accordion> |
| 92 | + <Accordion title="October 7 to October 8, 2024"> |
| 93 | + 1. **New GPT-4o Model Support for Azure OpenAI**: You can now specify the `gpt-4o-2024-08-06` model in the `models` field when configuring Azure OpenAI credentials. Use this model to access the latest GPT-4 operational capabilities in your applications. |
| 94 | + |
| 95 | + 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. |
| 96 | + </Accordion> |
| 97 | + <Accordion title="October 6 to October 7, 2024"> |
| 98 | + 1. **Add Structured Outputs for OpenAI Functions in Assistant Tools**: You can use [OpenAI Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs) by specifying a new parameter called `strict` as true or false when creating or using `OpenAIFunction`s in `assistant.model.tools[type=function]`. Set the `name`, provide a `description` (up to 1000 characters), and specify `parameters` as a [JSON Schema object](https://json-schema.org/understanding-json-schema). See the [OpenAI guide](https://platform.openai.com/docs/guides/function-calling) for examples. |
| 99 | + |
| 100 | + 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: |
| 101 | + ```bash |
| 102 | + curl --location 'https://api.vapi.ai/phone-number' \ |
| 103 | + --header 'Content-Type: application/json' \ |
| 104 | + --header 'Authorization: Bearer {}API_KEY}}' \ |
| 105 | + --data-raw '{ |
| 106 | + "provider": "vapi", |
| 107 | + "sipUri": "sip:{{USERNAME}}@sip.vapi.ai", |
| 108 | + "assistantId": "{{ASSISTANT_ID}}", |
| 109 | + "name": "example phone number label for your reference", |
| 110 | + "authentication": { |
| 111 | + "realm": "sip.vapi.ai", |
| 112 | + |
| 113 | + "password": "example_password" |
| 114 | + } |
| 115 | + }' |
| 116 | + ``` |
| 117 | + |
| 118 | + 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. |
| 119 | + |
| 120 | + 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]` |
| 121 | + </Accordion> |
| 122 | +</AccordionGroup> |
0 commit comments