Overview
Workspace webhook tools let your agent call your external HTTP endpoints during a live conversation. Typical uses include looking up data, updating records, searching a database, or triggering internal workflows.
How it works
- Create the tool in the dashboard Tools page (type: webhook tool).
- Save the tool. The backend stores it and syncs it to your urvo workspace.
- Attach the tool to an agent via Agent Tools → Add Tool → select a workspace tool.
- When the agent decides to use the tool, urvo invokes the tool webhook and returns the response back to the LLM so it can continue the conversation.
Configuration fields
Tool metadata
- Name: the tool identifier used by urvo. Internally it is sanitized to a safe pattern.
- Description: shown to the LLM so it can choose when to call the tool.
Request configuration
- Method and URL: where the request is sent.
- Query parameters: parameters the LLM can extract from the transcript and pass into the request.
- Headers: static headers and/or secret-backed authentication values (Secrets) plus dynamic variables.
Dynamic variables
After your endpoint returns, you can extract fields from the response and store them as dynamic variables. This lets later steps reuse values without re-parsing the conversation.
Execution controls
- Response timeout: how long to wait before treating the tool call as failed.
- Disable interruptions: prevents the user from interrupting while the tool is running.
- Pre-tool speech and execution mode: controls when the tool call happens relative to the agent speech.
- Tool call sound: optional audio cue while the tool is being executed.
Syncing and tool identity
urvo syncs workspace tools to the urvo agent using tool IDs (not inline tool definitions). This prevents duplicate tool creation and keeps one workspace tool consistent across multiple agents.
The tool name registered with urvo is sanitized to match urvo's expected pattern so it can be safely used as a tool identifier.
Practical example
If you want an agent to “check appointment availability”:
- Create a webhook tool named
check_appointment_availability. - Point it at your scheduling API URL.
- Configure the request mapping so the LLM-provided fields become the API payload.
- Sync the tool to your agent.
- When a call needs availability, urvo triggers the webhook and returns the result back into the conversation.
Next steps
- If your tool should run through a connected third-party service, see Integration Tools.
- If you want the agent to end calls, transfer, or handle voicemail, see Built-in Tools.
Creating a webhook tool
On the Tools page, click Add Tool and choose Webhook Tool. Fill in the following fields.
Basics
- Name — up to 64 characters, letters, numbers, underscores, and hyphens only.
- Description — tells the agent when and how to use the tool. Be specific; this drives when the tool is called.
- Method — GET, POST, PUT, DELETE, or PATCH.
- URL — the endpoint to call, e.g.
https://api.example.com/endpoint.
Advanced configuration
- Response timeout — how long to wait for a response before failing, from 1 to 60 seconds (default 20).
- Disable interruptions — prevents the caller from interrupting while the tool runs.
- Pre-tool speech — Auto or Force a spoken line before the tool runs.
- Execution mode — Immediate, Post speech, or Async.
- Tool call sound — an optional audio cue while the tool runs (None, Typing, or one of the Elevator Music options).
- Authentication — No Authentication, Bearer Token, or Basic Auth (backed by your workspace auth connections).
Headers
Add request headers with Add header. Each header has a type:
- Secret — pick a stored secret (managed in Settings → Secrets) so credentials never appear in plain text.
- Dynamic Variable — supply the value from a conversation variable by name.
Parameters
Parameters are the values sent with the request. Path parameters are created automatically for anything you wrap in curly braces in the URL (e.g. {customerId}). Query parameters (and Body parameters for POST/PUT/PATCH) are added manually. Each parameter has:
| Field | Purpose |
|---|---|
| Data type | Boolean, Integer, Number, or String. Body parameters can also be Object or Array (nested). |
| Identifier | The parameter name sent in the request. |
| Required | Whether the value must be present. |
| Value Type | LLM Prompt (agent fills it from the conversation), Constant Value (a fixed value sent every call), or Dynamic Variable (a conversation variable). |
| Description | For LLM-filled values, describes how to extract the value from the transcript. |
| Enum Values | Optional fixed set of allowed values the agent can pick from. |
Reading values from the response
Under Dynamic Variable Assignments, map fields from the tool's JSON response back into conversation variables. Each assignment has a Variable Name and a JSON Path (for example user.name). Later steps and tools can then reuse those values.
Assigning tools and limits
- Webhook tools are workspace-level. Assign one to an agent from the agent's Tools tab, and reuse the same tool across many agents without duplicating it.
- Removing a tool from an agent unsyncs it from that agent; it does not delete the tool.
- A tool can't be deleted while it's still assigned to any agent.
- The number of tools you can create is capped by your plan. When you hit the cap, Add Tool is disabled with a note to upgrade.
- Secrets used by a tool can't be deleted until you remove them from the tool.