Skip to main content

October 22 to October 25, 2024

  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
Organization Settings Page

Organization Settings Page

  1. 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.
Tavus Voice Properties

Tavus Voice Properties

  1. 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.
  2. 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.
  3. 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.
  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. Click '+' after entering an email address, select the role as Editor or Admin, and click 'Invite'.
Invite Multiple Users via Email

Invite Multiple Users via Email

  1. 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.
  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.
  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 to apply coupons to specific organizations within a subscription.
Subscription Coupon Codes

Subscription Coupon Codes

  1. Apply Coupons to Subscriptions: You can now apply coupons by specifying a couponId to add to a subscription.
  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".
  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.
  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.
Include custom headers in your webhook requests by using the headers property within the server object when creating or updating assistants.
  1. 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.
Credit Based Billing

Click Here to Switch to Credit Based Billing

  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. 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.
This will require human input to login and migrate your account. You will not be able to revert back to the old billing system.
  1. Call Cost Information: You can now use call.costs[type=vapi].subType to determine if a VAPI cost is normal or an overage.
  2. Updated Billing Page: Your payments are now returned inside a table with pages on the billing page.
  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.
  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.
  1. Add Structured Outputs for OpenAI Functions in Assistant Tools: You can use OpenAI Structured Outputs by specifying a new parameter called strict as true or false when creating or using OpenAIFunctions in assistant.model.tools[type=function]. Set the name, provide a description (up to 1000 characters), and specify parameters as a JSON Schema object. See the OpenAI guide for examples.
  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:
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": "test@example.com",
    "password": "example_password"
  }
}'
  1. 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.
  2. 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]
I