Skip to main content

Create an API tool

Create an API tool that calls your own web endpoint during a call, attach it to a voice or WhatsApp agent, and test it before going live.

What you will achieve

You will create a tool such as "look up the status of an order", attach it to an agent, and see it work.

Prerequisites

  • A web endpoint reachable from the internet (not a private or localhost address), returning JSON or text.
  • The owner or admin role.

Step-by-step setup

  1. Open Tools in the sidebar and choose Add tool.
  2. In New tool, fill in:
    • Name: what the model sees, so name it after the action, for example lookup_order. Spaces become underscores and letters are lower-cased.
    • Description: how the model decides when to call it, for example "Look up the delivery status of an order".
    • Method: GET, POST, PUT, PATCH or DELETE.
    • API endpoint: for example https://api.yoursite.com/orders/{order_id}. Wrap a name in braces to put it in the path.
  3. Choose Create tool. The tool's own page opens for the details: parameters, authentication and limits.
  4. Add each Parameter the model must supply (see the next guide), set Authentication if the endpoint needs it, and choose Save changes.
  5. Attach it to an agent: open the agent, Tools tab, Your tools, Add tool, Existing tool, tick it and choose Add tool. Or choose New tool there to create and attach in one step (Create and add).
  6. Press Save on the agent if it shows unsaved changes.

The tool's page, section by section

SectionWhat it holds
What it doesDescription: "Tells the model when to call this tool."
When it runsRun in the background: whether the agent waits for the tool or carries on talking.
EndpointMethod and URL. Put {param} in the path, like /orders/{order_id}.
Body templateOptional JSON for POST, PUT and PATCH. Empty means the parameters are sent as JSON.
Read this from the responseA dotted path such as data.status. Empty returns everything.
ParametersWhat the model must supply, validated before each request.
AuthenticationType, Sent as, Name and the secret.
LimitsTimeout and Attempts.
TestTry the tool with sample values.

How the request is built

  • Path. {order_id} in the URL is replaced with the value, URL-encoded.
  • GET and DELETE. Parameters not used in the path are sent as the query string.
  • POST, PUT, PATCH. Parameters are sent as a JSON body, or fill your Body template.
  • Redirects are not followed, responses are capped at 1 MB, and private or internal addresses are refused.

Testing

Use Test on the tool page (see Test and troubleshoot tools), then Talk to the agent and ask for what the tool does.

Expected result

The agent answers using the tool's result, and the tool's row on the Tools page shows a request counted as successful.

Troubleshooting

  • A tool named '…' already exists. Names are unique in a workspace.
  • The agent never calls it. Improve the Description, and mention the tool in the system prompt.
  • See Tool failures.

Something here does not match what you see in the dashboard? Let us know.