endpoint_url. Create and manage tools in the dashboard or with the Tools API. This is distinct from the call lifecycle events that go to the agent’s webhookUrl — tool call requests go directly to the tool’s own endpoint, and your server must respond within the tool’s timeout (default 30 seconds, configurable from 5 to 300) with a result that is fed back to the agent in real time.
How tool calls work
During a live conversation, when the agent decides to use a tool, Verbeo:- Extracts the tool arguments from the conversation context according to the tool’s JSON Schema.
- Sends an HTTP request to the tool’s
endpoint_urlusing the configured HTTP method. - Waits up to the tool’s timeout (default 30 seconds) for your server to respond.
- Passes your response back to the agent as the tool result, which the agent uses to continue the conversation.
Tools set to Keep talking (Gemini 3.8 Live):
- A request still running when the call ends is allowed to finish, up to the tool’s timeout and at most 30 seconds after the call.
- With Don’t say it, the agent confirms the request before your endpoint answers, and your response is never spoken, success or failure.
- When the caller corrects or adds a detail mid-request, your endpoint receives both requests, and both are completed.
Request format
The HTTP method is configured per tool:GET or POST. A POST request receives a JSON body. A GET request receives the arguments as URL query parameters.
POST body
The body uses the same top-level envelope as the lifecycle events (event, call_id, agent_id, timestamp), with the tool name, arguments, and live call context nested under payload.
GET request
For GET tools, arguments are flattened into the query string. Nocall metadata or args wrapper is included in the request.
Request fields
string
required
Always
"tool_invoked".string
required
Verbeo UUID for this call. Correlate it with the call’s lifecycle events.
string
required
UUID of the agent invoking the tool.
string
required
ISO 8601 timestamp of when the tool was invoked.
object
required
The tool invocation and live call context.
Responding to tool calls
Your endpoint must return an HTTP2xx status code and a JSON body within the tool’s timeout. The response body is passed directly back to the agent as the tool result.
You can return a plain string result or any JSON object:
Implementation example
Accessing dynamic variables
Usepayload.call.dynamic_variables to access any variables that were set when the call was initiated, giving your tool full context about the caller: