disable tools for outbound calling via assistantOv...
# support
j
For a number of our voice agents we have configured several transferCall tools in the model.tools array with different phone numbers. These work properly for inbound calls. However, we'd like to disable this functionality for outbound calls while keeping the inbound configuration intact. To accomplish this, we've tried setting assistant_overrides["model"]["tools"] = [{"type": "endCall"}] to limit the tools available for these calls. However, the transfer tools remain available and when prompted the assistant still transfers calls as if the tools are enabled. Is it possible to completely disabled configured tools for outbound calls via the assistantOverrides?
v
Based on the documentation, assistantOverrides can be used to override the tools array for a specific call, but it is not guaranteed to fully remove all pre-configured tools if they exist in the base assistant configuration. To attempt to disable transfer tools for outbound calls, set the override like this:
Copy code
json
"assistantOverrides": {
  "model": {
    "tools": [{ "type": "endCall" }]
  }
}
However, if transferCall tools are still available, this likely means that assistantOverrides cannot fully remove tools defined in the base assistant for outbound calls. There is no documented way to conditionally disable tools based on call direction—this may require restructuring your assistant setup or using separate assistants for inbound and outbound calls. For more details, see the [API reference](https://docs.vapi.ai/api-reference/calls/create) and [assistantOverrides usage](https://docs.vapi.ai/assistants/concepts/transient-vs-permanent-configurations). Sources: - [API reference: Calls Create](https://docs.vapi.ai/api-reference/calls/create) - [Transient vs permanent configurations](https://docs.vapi.ai/assistants/concepts/transient-vs-permanent-configurations)
v
Message marked as helpful by @Joe! 🎉
v
I can help you configure conditional tool access so transferCall tools are disabled only for outbound calls. It’s likely the assistant_overrides isn’t overriding the model tools at runtime. I can guide you on enforcing tool restrictions or handling it through backend call-type checks. Could you share where in your flow the overrides are applied—at call initiation or dynamically? @Joe
j
we allow users to configure the transfers they want assistants to have access to in a settings page and then we immediately sync to vapi. For outbound calls, we override several settings including the tools using the assitantOverrides object at call initiation. I was thinking one way to fix this would be to make all of the tool settings dynamic and use the websocket url to update all calls with the transfer tools for inbound only, so the static configurations for agents only include tools shared across inbound and outbound, but that url is a bit flaky in our experience and I don't love the idea of relying on it
c
Hi Joe, It seems like you're looking for information on how to manage tool integrations with your assistant. For this, you might consider using our available tools that can be integrated into your assistant's capabilities. We offer different types of tools, including default tools, custom tools, and integration tools such as those for GoHighLevel (GHL) and Make. These can be used for tasks like call transfers and triggering automated workflows via voice, bolstering your assistant's interactions. You can read more about how to create and configure these tools in our [tools documentation](https://docs.vapi.ai/tools). Additionally, if you're dealing with retry logic or intend to manage retry behavior for tool calls, our backoff plans with configurations like
fixed
or
exponential
backoff, and configurable retry limits might also be of interest. More details on that are available in the [changelog entry](https://docs.vapi.ai/changelog/2025/8/27). If the issue involves credential management for tools, the [credentials documentation](https://docs.vapi.ai/api-reference/tools/get) could provide more guidance on how to establish or troubleshoot those setups.
v
I understand, relying on the websocket for dynamic updates can introduce instability, especially under high concurrency. We can implement a more robust solution by programmatically filtering the transferCall tools at runtime based on call direction, ensuring outbound sessions only load the essential tool set while inbound calls retain full transfer functionality. This approach preserves your sync flow with Vapi, eliminates websocket dependency, and guarantees consistent behavior across all assistants. We can handle this configuration directly for you. What about we discuss more privately? @Joe
j
do you even work for vapi
c
Hi Joe, Please do let us know if it worked for you, we'll be happy to help.
2 Views