Custom Tools
Custom tools let you create new tools without writing Python code. Define an HTTP endpoint, its parameters, and authentication — TeamWeb AI handles the rest. Custom tools appear alongside built-in and plugin tools in the assistant’s Tools tab.
Creating a Custom Tool
Navigate to Tools in the sidebar and click New Custom Tool. Fill in the form sections:
Basic Info
- Display Name — A human-friendly name shown in the UI.
- Tool Name Suffix — The tool identifier in
snake_case. Automatically prefixed withcustom_(e.g.get_weatherbecomescustom_get_weather). - Description — Describe what the tool does. This is shown to the AI assistant to help it decide when to use the tool.
- Category — Optional grouping for the tools list.
HTTP Request
- HTTP Method — GET, POST, PUT, PATCH, or DELETE.
- URL Template — The endpoint URL with
{param}placeholders for path parameters. For GET/DELETE requests, remaining parameters are appended as query string parameters. Example:https://api.weather.com/v1/current?city={city} - Headers — Static headers in
Name: Valueformat, one per line. - Body Template — For POST/PUT/PATCH, the request body with
{param}placeholders. If empty, non-URL parameters are sent as JSON. - Body Content Type —
application/json,application/x-www-form-urlencoded, ortext/plain.
Authentication
Choose an authentication method:
- None — No authentication headers added.
- Bearer Token — Adds
Authorization: Bearer <token>header. - API Key Header — Adds a custom header with your API key (e.g.
X-API-Key: <key>). - Basic Auth — Adds
Authorization: Basic <base64>header from username and password.
Parameters & Response
- Input Parameters — Define the tool’s input parameters as a JSON Schema
propertiesobject. Each property needs atypeanddescription. Example:{ "city": { "type": "string", "description": "City name to look up weather for" } } - Required Parameters — Comma-separated list of required parameter names.
- Response Path — Extract nested data from the JSON response using dot notation. Example:
data.resultsreturnsresponse["data"]["results"].
Settings
- Timeout — Maximum time to wait for a response (1–120 seconds, default 30).
- Active — Toggle the tool on or off.
Testing
From the custom tool’s detail page, use the Test panel to send a test request. Enter parameters as JSON and click Run Test to see the response.
Importing from OpenAPI
You can bulk-import tools from an OpenAPI 3.x or Swagger 2.x specification.
- Navigate to Tools and click Import OpenAPI.
- Paste your JSON or YAML specification.
- Optionally set a Base URL Override to point to a different server (useful for local development or staging).
- Click Preview Operations to see discovered endpoints.
- Select the operations you want to import.
- Click Import Selected to create the tools.
Each imported operation becomes a custom tool with its name derived from the operationId (or generated from the method and path). The URL template, parameters, and request body are automatically configured from the spec.
Using Custom Tools
Once created, custom tools appear in the Tools tab on any assistant’s configuration page. Toggle them on for the assistants that need them.
During conversations, the assistant will call custom tools just like built-in tools. The tool’s description helps the assistant understand when and how to use it.