POST request to a server URL you configure. Your server performs the action — querying a database, booking an appointment, looking up a record — and returns a result that the LLM uses to continue the conversation.
Request reference
When the LLM triggers a tool, the platform sends aPOST request to the configured serverUrl.
Request body fields
Requests are delivered asHTTP POST with Content-Type: application/json. Any headers you configured are included on every request.
Transport object
SIP transport example
SIP transport example
SIP transport — anonymous caller
SIP transport — anonymous caller
WebSocket transport example
WebSocket transport example
Full request example
Response
Return the tool result as a plain-text or JSON string in the HTTP response body. The LLM receives this string as the tool result and uses it to continue the conversation. If your server returns an error status code, the LLM receives a generic error string instead of the response body.Configuration
Each tool webhook has the following fields:Schema format
Theschema field follows the OpenAI function specification format. It defines the tool name, description, and the parameters the LLM can pass.
string, integer, number, boolean, object, array.
What’s configurable
Setting up
Tool Webhooks are configured per Assistant or Agent as LLM Extensions.Dashboard
- Open the Assistant or Agent you want to configure.
- Navigate to the LLM Extensions (LLM Erweiterungen) section.
- Click Add (Hinzufügen) and select the extension type tool_webhook.
- Enter the tool name, server URL, schema (OpenAI function format), and any HTTP headers.
- Save. The tool webhook is now active for all future calls on that Assistant or Agent.
REST API
Tool webhooks are managed through the Assistant and Agent endpoints using theextensions array. The examples below use the Assistant path — the Agent path follows the exact same structure.
Read extensions — GET /{assistantId}
Read extensions — GET /{assistantId}
Retrieve the full Assistant configuration including its extensions.The Each extension object:
extensions array in the response:Create with extensions — POST /assistants
Create with extensions — POST /assistants
Include Returns the full Assistant object including the assigned extension
extensions in the request body when creating an Assistant. Omit the id — it is assigned by the platform.id values.Update extensions — PUT /{assistantId}
Update extensions — PUT /{assistantId}
The In this example:
PUT endpoint replaces the entire extensions array. The behaviour depends on whether id is included for each extension:- The
book_appointmentwebhook with the givenidis updated with the new URL and token. - The
check_availabilityentry has noid, so a new extension is created. - Any previously existing extensions not listed are removed.
200 OK with an empty success body.The same operations apply to Agents at
/api/v1/vendors/{vendorId}/organizations/{organizationId}/agents/{agentId}. The request and response shapes for extensions are identical.