Skip to content
Custom Tools

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 with custom_ (e.g. get_weather becomes custom_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: Value format, 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 Typeapplication/json, application/x-www-form-urlencoded, or text/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 properties object. Each property needs a type and description. 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.results returns response["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.

  1. Navigate to Tools and click Import OpenAPI.
  2. Paste your JSON or YAML specification.
  3. Optionally set a Base URL Override to point to a different server (useful for local development or staging).
  4. Click Preview Operations to see discovered endpoints.
  5. Select the operations you want to import.
  6. 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.