When a tool isn't in the catalogue, build your own. A custom integration is a user-defined HTTP connector: you set a base URL and an auth method, then describe one or more actions the AI and your workflows can call — each with its own method, path, body template, and response mapping.
Open Integrations from the navigation rail and switch to the Custom Actions tab. Admins manage custom integrations there with a full action-contract editor; once saved, they behave like any other connected tool.
Every custom integration starts with a base URL (e.g. https://api.acme.com/v1) and a connection method. Secrets are stored encrypted, scoped to your organization, and never returned in plain text after you save them.
| Auth method | How it's sent |
|---|---|
Bearer tokenbearer | Sends an Authorization: Bearer <token> header. |
API keyapi_key | Sends the key in a header you name (e.g. X-Api-Key). |
Basic authbasic | Base64-encodes a username and password / secret. |
Service accountservice_account | A service-account credential for server-to-server access. |
Nonenone | No authentication — for public or pre-authorised endpoints. |
Each action is one HTTP call described declaratively. The action-contract editor captures everything the executor needs to call the API and shape its response:
| Part of an action | What it's for |
|---|---|
| Method | GET, POST, PUT, PATCH, or DELETE. |
| Path | Appended to the base URL. Supports {{placeholders}} from the action inputs. |
| Body template | A request body with {{placeholders}} substituted from the action inputs (for write methods). |
| Response mapping | Maps fields out of the JSON response into a clean, predictable output shape. |
| Read / write | Marks the action as read-only or as a write (create/update/delete). |
| Requires confirmation | When on, the AI pauses for your approval before running the action in chat. |
Give it a clear name and description so the AI knows when to use it.
Choose GET / POST / PUT / PATCH / DELETE and the path, using {{placeholders}} for inputs.
For write methods, write a body template with {{placeholders}} the executor fills from the inputs.
Pull the fields you care about out of the JSON response into a clean output shape.
Mark create/update/delete actions as writes and decide whether they need confirmation in chat.
To protect both your APIs and the platform, every tool call — including custom actions — draws from your organization's shared per-organization and per-user rate limit (a sliding window, admin-configurable). Calls beyond the cap are rejected with a rate-limit error until the window clears; there is no separate, lower limit just for custom actions.
Mark an action that creates, updates, or deletes data as a write and turn on requires confirmation so the AI pauses for your approval before running it in chat — the same safety gate the standard write actions use.
Once defined, a custom integration is reachable everywhere a tool can be:
# or invoking it as a tool.Custom integrations are how you connect an internal service, a niche SaaS, or a partner API. Define the action and its contract once, then reuse it across chat and workflows. For the one-click providers, see Standard integrations.