Tools
A tool is an action your AI agent can take during a conversation, instead of only writing a reply. Capturing a lead, booking an appointment, checking an order, posting to Slack, calling your own API — each of those is a tool you switch on and configure.
Tools live at Dashboard → AI → Tools. Connecting the underlying accounts is a separate, do-it-once job on Integrations.
The agent decides when to call a tool, from the tool’s description. That field is not decoration — it is the instruction the model reads. See Writing a description the agent understands.
The Tools workspace
Three panes: your existing tools on the left, the configuration for the selected tool in the middle, and its parameters on the right. Create Tool opens a menu with four sections.
| Section | What it creates |
|---|---|
| Custom | A Custom Webhook — the agent calls an HTTPS endpoint you own. |
| Presets | A built-in Vibot action. No external account needed. |
| Query | Knowledge Base Search. See the note below before using this. |
| Integrations | One action from a connected provider (Google Calendar, Shopify, Slack, …). |
Knowledge Base Search is not implemented yet. It appears in the Create Tool menu, but if the agent calls it the tool returns “Query tool is not yet implemented.” Don’t add it to a live agent. Your Knowledge Base is already searched automatically on every message — you do not need a tool for it. See Knowledge Base.
Preset tools
Built into Vibot. Nothing to connect — switch one on and it works.
| Preset | What the agent does with it |
|---|---|
Capture lead (capture_lead) | Records the customer as a lead with the details gathered so far. Triggers lead scoring and a notification email. |
Escalate to human (escalate_to_human) | Stops the AI and raises an escalation for a human to pick up. |
Request call (request_call) | Records that the customer wants a phone call back. |
Send follow-up message (send_followup_message) | Sends one of your approved follow-up templates. See Automations. |
One tool you never add: capture_variable. Declare a field on
AI Agent → Variables and the
agent is given this action automatically, so it can record each field as the
customer provides it. It won’t appear in this list — defining the variable is
the whole setup.
Integration tools
An integration tool is one action from a provider you’ve already connected. Connect the account once on Integrations, then add as many actions as you need here.
| Provider | Actions |
|---|---|
| Google Sheets | append_row, lookup_row |
| Shopify | search_products, lookup_order, get_order_status |
| Calendly | create_one_off_link, list_event_types |
| Slack | send_message |
| MCP | Discovered live from your MCP server |
| Google Calendar | book_appointment, check_availability — not connectable yet |
If a provider isn’t connected, its actions still appear in the menu but the tool can’t be saved until you connect it. Google Calendar is still in provider review and sits under Coming soon — use Calendly for booking in the meantime.
Custom webhooks
For anything Vibot doesn’t ship. The agent calls your HTTPS endpoint with a JSON body you define, and whatever you return is handed back to the model as context for its next reply.
Create the tool
Create Tool → Custom → Custom Webhook.
Point it at your endpoint
Give it the HTTPS URL. HTTP is refused — the payload can contain customer data.
Define the parameters
A JSON Schema describing what the agent should collect before calling you:
{
"type": "object",
"properties": {
"name": { "type": "string", "description": "Customer name" },
"phone": { "type": "string", "description": "Phone in E.164" }
},
"required": ["name", "phone"]
}Each description tells the agent what to put in that field, so write them for a
reader who only sees the schema.
Add authentication
Optional. A bearer token or header secret, stored encrypted. Once saved the secret is never shown again — leave the field blank to keep it, or paste a new value to rotate it.
Describe it, then enable it
Write the description (below), save, and switch the tool on.
Return quickly. The customer is waiting on WhatsApp while your endpoint responds, and a slow tool call shows up as a slow reply. Return a small JSON object — the whole response becomes model context, so a large blob costs tokens on every subsequent turn of that conversation.
Writing a description the agent understands
The description is the only thing the model uses to decide whether this tool is the right one for what the customer just said. Say when to use it, not what it is internally.
| Instead of | Write |
|---|---|
Order lookup | Look up the status of a customer's existing order. Use when they ask where their order is or give an order number. |
Sheets append | Save a new enquiry to the sales sheet. Use once you have the customer's name and phone number. |
Calls the booking API | Book an appointment. Use only after the customer has agreed to a specific date and time. |
If two tools have descriptions that overlap, the agent will sometimes pick the wrong one — make the boundary between them explicit.
Testing a tool
The fastest loop is Vibot Chat, which talks to your agent with your real tools connected but without messaging a customer. Send the message a customer would send and check the tool fires.
Troubleshooting
| Symptom | Cause |
|---|---|
| Agent never calls the tool | Description doesn’t match how customers actually phrase it, or the tool is saved but not enabled. |
| Agent calls the wrong tool | Two descriptions overlap. Narrow both. |
| Tool fails every time | Endpoint isn’t reachable over HTTPS, or the auth secret was rotated on your side but not in Vibot. |
| Integration action won’t save | The provider isn’t connected — see Integrations. |
| Agent replies “not yet implemented” | It called Knowledge Base Search. Remove that tool. |
Related
- Integrations — connect the accounts these tools use
- Configure the agent — persona and instructions
- Features overview — every dashboard page