Web SDK and Temporary assistant configs
# support
s
Hi! I'm currently working on a major Vapi integration and I have some questions that I haven't found answers to in the documentation. The task is to use the Web SDK to create a new temporary assistant for each new call, since dynamic values ​​need to be used from call to call. Somewhere to change the prompt, somewhere the voice, language, etc. The question is, is it possible to create a temporary assistant EXACTLY the same as through the Dashboard using the Web SDK? Because all day long I've been getting errors about one or another parameter not being in this library or something being out of date. I can't find the full list of temporary assistant configurations. In short, I need real help, because I've been struggling for half a day and can't figure out how to get out of this situation. I need a solution that will allow me to work with each call as dynamically as possible. The main problems arise with the Messaging section, Stop/Start Speaking Plans and some parameters for other sections. Maybe, maybe - I just can't find the right keys for these variables. In general, I want to get at least an answer to the question of what are the limits between creating an assistant via the dashboard and via the Web SDK, and ideally get a list of all possible parameters and how exactly I can specify them for a temporary assistant. Thank you!
v
You can create a temporary assistant for each call using the Web SDK by passing a configuration object to
vapi.start()
, following the same structure as the "Create Assistant" API.
This allows you to set dynamic values like prompt, voice, and language per call. For a full list of possible parameters, refer to the [API reference for creating an assistant](https://docs.vapi.ai/api-reference/assistants/create-assistant). You can also use
assistantOverrides
for dynamic variables. However, not every dashboard feature may be available or fully supported in the Web SDK, especially for advanced options like Messaging or custom speaking plans, which could explain the errors you're seeing. Could you share a specific parameter or error message that is blocking you right now? This will help me provide more targeted guidance. Sources: - [Vapi Web SDK documentation](https://docs.vapi.ai/sdk/web) - [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant) - [Dynamic Variables](https://docs.vapi.ai/assistants/dynamic-variables)
s
Copy code
{
  "message": [
    "assistant.property variables should not exist",
    "assistant.property predefined should not exist",
    "assistant.voice.property styleExaggeration should not exist",
    "assistant.functions.each value in nested property functions must be either object or array",
    "assistant.messagePlan.property voicemailMessage should not exist",
    "assistant.messagePlan.property endCallMessage should not exist",
    "assistant.startSpeakingPlan.property onPunctuationSeconds should not exist",
    "assistant.startSpeakingPlan.property onNoPunctuationSeconds should not exist",
    "assistant.startSpeakingPlan.property onNumberSeconds should not exist",
    "assistant.stopSpeakingPlan.property numberOfWords should not exist"
  ],
  "error": "Bad Request",
  "statusCode": 400
}
v
To avoid "should not exist" errors, only include properties supported by the [Create Assistant API](https://docs.vapi.ai/api-reference/assistants/create-assistant) when using the Web SDK. Here’s a minimal example of a valid temporary assistant config:
Copy code
js
vapi.start({
  name: "My Temp Assistant",
  model: { provider: "openai", model: "gpt-3.5-turbo" },
  voice: { provider: "playht", voiceId: "jennifer" },
  transcriber: { provider: "deepgram", model: "nova-2", language: "en-US" }
});
Tip: Omit fields like
variables
,
predefined
,
styleExaggeration
, and nested
voicemailMessage
or `onPunctuationSeconds`—these are not supported in the Web SDK and will cause errors. For the full list of allowed fields, refer to the [API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant). Sources: - [Vapi Web SDK documentation](https://docs.vapi.ai/sdk/web) - [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant)
s
It is important for me to get an EXACT answer to the question, and not to communicate with an AI that does not know this and refers to documentation that is not fully described. I need to get an exact list of possible assistant configurations or exact differences to understand what I can use and what I can not. Because I tried to use a pre-created assistant in the dashboard and change the necessary parameters in each call - but without success, because I did not find an answer to the question of how I can change the prompt and other parameters. So as i understand All available parametrs listed on https://docs.vapi.ai/api-reference/assistants/create right?
v
You are correct: the [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant) is the authoritative list of fields you can use for temporary assistants in the Web SDK. However, not every field from the dashboard or API is supported—some advanced or nested properties will cause errors. Actionable example:
Copy code
js
vapi.start({
  name: "My Temp Assistant",
  model: { provider: "openai", model: "gpt-3.5-turbo" },
  voice: { provider: "playht", voiceId: "jennifer" },
  transcriber: { provider: "deepgram", model: "nova-2", language: "en-US" }
});
Tip: If you get a "should not exist" error, remove that field from your config. Always refer to the [API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant) and test your config for compatibility. Sources: - [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant) - [Vapi Web SDK documentation](https://docs.vapi.ai/sdk/web)
s
Okey, is it possible with created on dashboard assistant - change prompt before call?
v
You cannot directly change the prompt of a dashboard-created assistant before a call using the Web SDK. If you need to set a different prompt per call, create a temporary assistant with your desired prompt using a config object:
Copy code
js
vapi.start({
  name: "Dynamic Assistant",
  model: {
    provider: "openai",
    model: "gpt-3.5-turbo",
    messages: [{ role: "system", content: "Your custom prompt here." }]
  },
  // ...other config
});
For dashboard assistants, only dynamic variables (e.g.,
{{name}}
) can be changed per call via
assistantOverrides
, not the prompt text itself. Sources: - [Dynamic Variables](https://docs.vapi.ai/assistants/dynamic-variables) - [Vapi Web SDK documentation](https://docs.vapi.ai/sdk/web)
s
but where i can get ALL list for web sdk then for temporary assistant?
v
The [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant) is the most complete list of fields you can use for temporary assistants in the Web SDK. However, not every field is supported—if you get a "should not exist" error, remove that field from your config. There is no separate, Web SDK-specific list; use the API reference as your guide and validate by testing your config in practice. Example:
Copy code
js
vapi.start({
  name: "My Temp Assistant",
  model: { provider: "openai", model: "gpt-3.5-turbo" },
  voice: { provider: "playht", voiceId: "jennifer" },
  transcriber: { provider: "deepgram", model: "nova-2", language: "en-US" }
});
Sources: - [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant) - [Vapi Web SDK documentation](https://docs.vapi.ai/sdk/web)
s
cc: @Kings_big💫
v
The [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant) is the most complete guide for fields you can use with temporary assistants in the Web SDK. However, some fields listed there (especially advanced or nested ones) may not be supported and will cause errors if included. The best approach is to use the API reference as your starting point and test your config, removing any fields that trigger "should not exist" errors. Example minimal config:
Copy code
js
vapi.start({
  name: "My Temp Assistant",
  model: { provider: "openai", model: "gpt-3.5-turbo" },
  voice: { provider: "playht", voiceId: "jennifer" },
  transcriber: { provider: "deepgram", model: "nova-2", language: "en-US" }
});
If you encounter errors, remove the problematic fields and refer back to the API reference for guidance. Sources: - [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant) - [Vapi Web SDK documentation](https://docs.vapi.ai/sdk/web)
k
You can create fully dynamic, temporary assistants in the Vapi Web SDK by passing a complete assistant config directly into vapi.start(), matching dashboard-level customization voice, prompt, transcriber, speaking plans, and for full parameters..
v
Yes, the [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant) is your primary source for all possible fields when creating temporary assistants via the Web SDK. To avoid errors, use only fields listed there and remove any that cause "should not exist" errors. Here's a minimal example:
Copy code
js
vapi.start({
  name: "My Temp Assistant",
  model: { provider: "openai", model: "gpt-3.5-turbo" },
  voice: { provider: "playht", voiceId: "jennifer" },
  transcriber: { provider: "deepgram", model: "nova-2", language: "en-US" }
});
Test your config and refer to the API reference for allowed fields. Sources: - [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant) - [Vapi Web SDK documentation](https://docs.vapi.ai/sdk/web)
s
Okey, but where i can get keys for every parametr? For example i cant find here "https://docs.vapi.ai/api-reference/assistants/create" many parametrs from dashboard. Your AI said that some items not available in temporary assistant. So where is true? For example "Style Exaggeration" i cannot find on your docs, i dont need it, but this parametr i give you as example. There is some of them, but i want to know, how dynamically i can be with your service on my own. I understand that i can pass full parametrs as dashboard, but for keys ALL you have is "https://docs.vapi.ai/api-reference/assistants/create", right?
v
The only official, up-to-date list of parameter keys for temporary assistants in the Web SDK is the [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant). If a parameter (like "Style Exaggeration") is not in that API reference, it is not supported for temporary assistants—even if it appears in the dashboard. Tip: If you get a "should not exist" error, remove that field from your config.
Copy code
js
vapi.start({
  name: "My Temp Assistant",
  model: { provider: "openai", model: "gpt-3.5-turbo" },
  voice: { provider: "playht", voiceId: "jennifer" },
  transcriber: { provider: "deepgram", model: "nova-2", language: "en-US" }
});
Sources: - [Create Assistant API reference](https://docs.vapi.ai/api-reference/assistants/create-assistant) - [Vapi Web SDK documentation](https://docs.vapi.ai/sdk/web)
k
Is it solved?
s
How i can set enabling end call function with SDK?
How i can set enabling end call function with SDK? Can you provide me what i should include in JSON sctructure and where to activate endCall function when creating temporary assistant? Or i just can call it in system prompt and it will works?
k
Hey, you can set up your assistant to enable the end call function in your assistant's tools. Then, either using prompting or through the SDK's inbuilt method, you can end the call. By the way, which SDK are you using? Client SDK or Server SDK?
s
Im using Python WEB SDK, look, im configured all except one thing, i dont understand how to implement endCall function into temporary assistant config and any other function that i created on my dashboard tools page. So first i need to get structure which will include endCall function in call within temporary assistant. There is part of config: model: { provider: "openai", model: "gpt-4o", messages: [ { role: "system", content: scriptContent } ], toolIds: [ "609cf07b-84f8-4c17-a922-8996c9471dfa", ], maxTokens: 300, temperature: 0.6 }, but how i can enable endCall function? i need to create it or what? on dashboard i just have true/false parametrs for endCall function.
k
Add "tools": [{ "type": "endCall" }] to your model setup, no need to implement the function manually, Vapi handles it automatically..
2 Views