Tools

View as Markdown

Tools are actions your Vio agent can call in the middle of a conversation — looking up an order, creating a ticket, checking availability, or booking a demo — and then speaking the result back to the caller. You build tools once in the Tools view, then enable only the ones each agent needs from that agent’s Tools tab.

The three kinds of tool

Custom webhook tool

You give Vio a URL, a request method, and a signing secret. When the agent decides to call the tool, Vio sends the tool arguments to your endpoint, waits for your response, and speaks the result back to the caller. Use it to:

  • Look up an order or account status
  • Create a support ticket
  • Check availability for a slot
  • Book a demo or appointment

This is the bridge to your own systems, and it pairs well with no-code automation platforms like Zapier, Make, or n8n — point the webhook at a flow and the agent can trigger it live on a call.

POST or GET

Pick whichever your backend accepts, in Request method on the tool:

MethodHow the arguments arriveChoose it when
POST (default)A JSON body: { tool, tenantId, callId, callerNumber, arguments }. Your values are under arguments.Your endpoint accepts JSON. This is the default and what every existing tool uses.
GETQuery-string parameters — one per argument, named exactly as your schema names them. Call details arrive as X-Vio-Tool, X-Vio-Tenant-Id, X-Vio-Call-Id and X-Vio-Caller-Number headers.Your platform only exposes read-style GET endpoints.

On GET, arguments that are objects or arrays are JSON-encoded into their parameter, and any query parameters already on your URL are kept. Very large arguments will not fit in a URL — use POST for those.

Switching an existing tool between the two changes only how the arguments travel. The schema you authored, the secret, and the agents using it are untouched.

Built-in / preset tools

One-click, first-party tools you can turn on without any code:

ToolWhat the agent can do
Schedule a callbackBook its own future call with the caller. Powers Callbacks.
Check availabilityFind appointment times that are genuinely free, so it offers real options instead of guessing.
Book appointmentBook a real meeting during the call. See Appointments.
Look up the knowledge baseSearch your uploaded documents to answer factual questions — prices, hours, policies — instead of guessing.
Send an emailEmail the caller or your own team mid-call: a confirmation, details they asked for, an internal heads-up.
EchoA diagnostic that returns whatever it was given. Handy for confirming tool-calling works at all.

Attach “Check availability” and “Book appointment” together. An agent with only the booking tool will try to book without first knowing what is free. And neither does anything until that agent has booking hours — with none set, it declines every request.

“Send an email” picks an audience, never an address. The agent chooses who — the caller, or your team — and Vio resolves the actual address server-side from your settings. It cannot be talked into emailing an arbitrary third party, and it will ask the caller for their address rather than inventing one.

Integration tools

Actions exposed by connected Integrations. When you connect a service, its actions become tools the agent can call. Some connectors are in beta or coming soon.

KindYou provideBest for
Custom webhookA URL + signing secretAnything in your own stack; Zapier / Make / n8n flows
Built-in / presetNothing — one clickCallbacks, appointments, knowledge-base lookup, email
IntegrationA connected accountActions from services you’ve linked

How to add a tool to an agent

Build the tool

In the Tools view, create the tool — for a webhook tool, enter its URL and signing secret. This defines the tool once for your whole workspace.

Enable it on the agent

Open the agent, go to its Tools tab, and enable the tools that agent should have. Each agent only gets the tools you switch on, so a support agent and a sales agent can carry different toolsets.

Test it

Place a test call and prompt the scenario that should trigger the tool. Confirm the agent calls it and speaks back the result. See Test your agent.

Reference a tool in your system prompt if you want to nudge when the agent uses it — e.g. “When the caller gives an order number, use the order-lookup tool before answering.”

Frequently asked

Q. How do I secure my webhook tool? Each custom webhook tool has a signing secret. Verify the signature on the incoming request at your endpoint so you know it genuinely came from Vio and not a spoofed caller.

Vio sends X-Vio-Signature (sha256=<hex>) and X-Vio-Timestamp. Recompute it as an HMAC-SHA256 over <timestamp>.<payload> using your secret, where the payload is the raw JSON body on POST and the raw query string on GET — everything after the ?, exactly as you received it, with no re-ordering. The timestamp lets you reject replays outside a window you choose.

Q. Does a failing tool drop the call? No. If a tool errors or times out, the agent degrades gracefully — it tells the caller it couldn’t complete that step and continues the conversation. A broken webhook never hangs up the line.

Q. Why enable tools per agent instead of globally? So each agent carries only what its job needs. Building in the Tools view and enabling per agent keeps a support agent from accidentally exposing a sales-only action, and vice versa.

Q. Can the agent book its own follow-up call? Yes — enable the Schedule a callback preset tool. The agent can then book a future call with the caller, which runs through Callbacks.

Next

Score and route what happens after the call in Analysis, actions & fulfilment, or tune call behaviour in Advanced settings.