diff --git a/fern/assistants/examples/docs-agent.mdx b/fern/assistants/examples/docs-agent.mdx index fd2b1c896..60fe88040 100644 --- a/fern/assistants/examples/docs-agent.mdx +++ b/fern/assistants/examples/docs-agent.mdx @@ -137,7 +137,8 @@ Guidelines: // Configure voice settings voice={ "provider": "vapi", - "voiceId": "Harry" + "version": 2, + "voiceId": "Elliot" }, // Configure transcription transcriber={ @@ -229,7 +230,7 @@ Guidelines: 3. Configure the assistant: - **Name**: `Docs agent` - **Model**: Claude Sonnet 4 (Anthropic) - - **Voice**: Harry (Vapi) + - **Voice**: Elliot (Vapi) - **First Message**: `Hey I'm Harry, a support agent. How can I help you today? You can ask me questions about Vapi, how to get started or our documentation.` - **System Prompt**: Use a helpful documentation assistant prompt with guidelines for using the docsquery tool 4. Add the `docsquery` tool in the Tools section @@ -274,7 +275,8 @@ Guidelines: // Configure voice settings voice: { provider: "vapi", - voiceId: "Harry" + version: 2, + voiceId: "Elliot" }, // Configure transcription transcriber: { @@ -341,7 +343,8 @@ Guidelines: // Configure voice settings voice={ "provider": "vapi", - "voiceId": "Harry" + "version": 2, + "voiceId": "Elliot" }, // Configure transcription transcriber={ diff --git a/fern/assistants/pronunciation-dictionaries.mdx b/fern/assistants/pronunciation-dictionaries.mdx index e1f830d22..328fbd3c5 100644 --- a/fern/assistants/pronunciation-dictionaries.mdx +++ b/fern/assistants/pronunciation-dictionaries.mdx @@ -241,8 +241,9 @@ Cartesia pronunciation dictionaries use a `text` and `alias` format. Each entry ```json { "voice": { - "voiceId": "Elliot", "provider": "vapi", + "version": 2, + "voiceId": "Elliot", "pronunciationDictionary": [ { "pronunciationDictId": "pdict_abc123" diff --git a/fern/calls/call-features.mdx b/fern/calls/call-features.mdx index fed5b8a6a..c24e6dc5e 100644 --- a/fern/calls/call-features.mdx +++ b/fern/calls/call-features.mdx @@ -159,7 +159,8 @@ curl -X POST 'https://aws-us-west-2-production1-phone-call-websocket.vapi.ai/742 "name": "new_assistant", "voice": { "provider": "vapi", - "voiceId": "Neha" + "version": 2, + "voiceId": "Elliot" }, } }, diff --git a/fern/calls/voicemail-detection.mdx b/fern/calls/voicemail-detection.mdx index f8f7fff66..1869e387a 100644 --- a/fern/calls/voicemail-detection.mdx +++ b/fern/calls/voicemail-detection.mdx @@ -123,7 +123,8 @@ This configuration optimizes for fast detection and professional voicemail deliv "name": "Sales Outreach Assistant", "voice": { "provider": "vapi", - "voiceId": "Paige" + "version": 2, + "voiceId": "Elliot" }, "model": { "model": "gpt-4o", @@ -183,7 +184,8 @@ const salesAssistant = await vapi.assistants.create({ voice: { speed: 0.9, provider: "vapi", - voiceId: "Paige" + version: 2, + voiceId: "Elliot" }, model: { model: "gpt-4o", @@ -224,7 +226,8 @@ sales_assistant = client.assistants.create( name="Sales Outreach Assistant", voice={ "provider": "vapi", - "voiceId": "Paige" + "version": 2, + "voiceId": "Elliot" }, model={ "model": "gpt-4o", @@ -267,6 +270,7 @@ Optimized for high-accuracy detection and detailed voicemail messages: "name": "Customer Support Assistant", "voice": { "provider": "vapi", + "version": 2, "voiceId": "Elliot" }, "model": { @@ -306,6 +310,7 @@ const supportAssistant = await vapi.assistants.create({ name: "Customer Support Assistant", voice: { provider: "vapi", + version: 2, voiceId: "Elliot" }, model: { @@ -342,7 +347,8 @@ Balanced configuration for appointment confirmations with fallback voicemail: "name": "Appointment Reminder Assistant", "voice": { "provider": "vapi", - "voiceId": "Rohan" + "version": 2, + "voiceId": "Elliot" }, "model": { "model": "gpt-4o", diff --git a/fern/providers/voice/vapi-voices/legacy-migration.mdx b/fern/providers/voice/vapi-voices/legacy-migration.mdx index 30e39c341..543424235 100644 --- a/fern/providers/voice/vapi-voices/legacy-migration.mdx +++ b/fern/providers/voice/vapi-voices/legacy-migration.mdx @@ -49,7 +49,7 @@ If you're currently using one of the voices that are staying, no action is requi ## Replacement voice mapping -We've selected replacement voices from ElevenLabs using their voice matching tool to find the closest match in tone and style. These voices are priced similarly to your existing voice. +We've selected replacement voices that closely match the tone and style of each retired legacy voice. These voices are priced similarly to your existing voice. **Option 1 was the default fallback.** If your assistant was auto-switched and you'd prefer a different voice, you can still manually update to any other available voice — check out our [New Vapi Voices](#new-vapi-voices) below. @@ -90,7 +90,7 @@ These are separate from the replacement voices listed above — they won't be us - We used ElevenLabs' voice matching tool to find the most appropriate replacements for each legacy voice based on tone, style, and characteristics. Replacements should not change your pricing. + We selected the most appropriate replacements for each legacy voice based on tone, style, and characteristics. Replacements should not change your pricing. @@ -116,7 +116,4 @@ These are separate from the replacement voices listed above — they won't be us No. Elliot, Savannah, Rohan, Leo, Zoe, Mia, Jess, Zac, Dan, Leah, and Tara are continuing and are not being retired. If you're using one of these voices, no action is required. - - Replacement voices should work out of the box with any of the ElevenLabs models. - diff --git a/fern/security-and-privacy/PCI.mdx b/fern/security-and-privacy/PCI.mdx index 4aed23785..5cb75529c 100644 --- a/fern/security-and-privacy/PCI.mdx +++ b/fern/security-and-privacy/PCI.mdx @@ -90,8 +90,9 @@ Here's a complete squad configuration that demonstrates this approach: ] }, "voice": { - "voiceId": "Elliot", - "provider": "vapi" + "provider": "vapi", + "version": 2, + "voiceId": "Elliot" }, "transcriber": { "model": "nova-2", @@ -137,8 +138,9 @@ Here's a complete squad configuration that demonstrates this approach: } }, "voice": { - "voiceId": "Elliot", - "provider": "vapi" + "provider": "vapi", + "version": 2, + "voiceId": "Elliot" }, "transcriber": { "model": "nova-2", @@ -191,8 +193,9 @@ Here's a complete squad configuration that demonstrates this approach: ] }, "voice": { - "voiceId": "Elliot", - "provider": "vapi" + "provider": "vapi", + "version": 2, + "voiceId": "Elliot" }, "transcriber": { "model": "nova-2", diff --git a/fern/security-and-privacy/recording-consent-plan.mdx b/fern/security-and-privacy/recording-consent-plan.mdx index dff59c8f6..0bc5e8555 100644 --- a/fern/security-and-privacy/recording-consent-plan.mdx +++ b/fern/security-and-privacy/recording-consent-plan.mdx @@ -79,8 +79,9 @@ Add the recording consent plan to your assistant's `compliancePlan`: "type": "stay-on-line", "message": "For quality and training purposes, this call may be recorded. Please stay on the line if you agree to being recorded, or hang up if you do not consent.", "voice": { - "voiceId": "Neha", - "provider": "vapi" + "provider": "vapi", + "version": 2, + "voiceId": "Elliot" }, "waitSeconds": 3 } @@ -97,8 +98,9 @@ Add the recording consent plan to your assistant's `compliancePlan`: "type": "verbal", "message": "This call may be recorded for quality and training purposes. Do you agree to being recorded? Please say 'yes' if you agree or 'no' if you decline.", "voice": { - "voiceId": "Neha", - "provider": "vapi" + "provider": "vapi", + "version": 2, + "voiceId": "Elliot" }, "declineToolId": "09dd39cc-75f0-45eb-ace3-796ee3aa9c1e" } diff --git a/fern/squads.mdx b/fern/squads.mdx index af316eb7c..d46948f6e 100644 --- a/fern/squads.mdx +++ b/fern/squads.mdx @@ -79,6 +79,7 @@ To override the configuration of a saved assistant without modifying the underly "name": "Appointment Booking", "voice": { "provider": "vapi", + "version": 2, "voiceId": "Elliot", }, }, @@ -88,6 +89,7 @@ To override the configuration of a saved assistant without modifying the underly "assistantOverrides": { "voice": { "provider": "vapi", + "version": 2, "voiceId": "Elliot", }, } @@ -107,6 +109,7 @@ You may also define inline tools via `assistantOverrides` through the `tools:app "name": "Appointment Booking", "voice": { "provider": "vapi", + "version": 2, "voiceId": "Elliot", }, }, @@ -152,6 +155,7 @@ Note: This is `squadOverrides` for the [`assistant-request`](api-reference/webho "name": "Appointment Booking", "voice": { "provider": "vapi", + "version": 2, "voiceId": "Elliot", }, }, @@ -163,6 +167,7 @@ Note: This is `squadOverrides` for the [`assistant-request`](api-reference/webho "memberOverrides": { "voice": { "provider": "vapi", + "version": 2, "voiceId": "Elliot", }, } @@ -180,5 +185,3 @@ Note: This is `squadOverrides` for the [`assistant-request`](api-reference/webho **Engineer context carefully** - Use [context engineering](/tools/handoff#context-engineering) to control what conversation history is passed between assistants. As the context grows throughout the call, you may want to limit message history to reduce tokens, improve performance, and prevent context poisoning. Utilize [variable extraction](/tools/handoff#variable-extraction) to save information and generate summaries during a handoff to pass to other assistants. - - diff --git a/fern/tools/client-side-websdk.mdx b/fern/tools/client-side-websdk.mdx index cca52c8e5..ce9ba1a08 100644 --- a/fern/tools/client-side-websdk.mdx +++ b/fern/tools/client-side-websdk.mdx @@ -125,7 +125,7 @@ function App() { }, ], }, - voice: { provider: 'vapi', voiceId: 'Elliot' }, + voice: { provider: 'vapi', version: 2, voiceId: 'Elliot' }, transcriber: { provider: 'deepgram', model: 'nova-2', language: 'en' }, name: 'Alex - Test', firstMessage: 'Hello.',