Home/Docs/Custom integrations
🛠️Custom integrations

Custom integrations

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.

🌐Base URL + authDefine the API
⚙️Add actionsMethod · path · mapping
🤖AI calls itVia chat tools
🔁Workflows use itIntegration-action node
A custom integration becomes a first-class tool — usable from chat and workflows.

Where to build one

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.

1. Base URL and authentication

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 methodHow it's sent
Bearer token
bearer
Sends an Authorization: Bearer <token> header.
API key
api_key
Sends the key in a header you name (e.g. X-Api-Key).
Basic auth
basic
Base64-encodes a username and password / secret.
Service account
service_account
A service-account credential for server-to-server access.
None
none
No authentication — for public or pre-authorised endpoints.

2. Define actions

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 actionWhat it's for
MethodGET, POST, PUT, PATCH, or DELETE.
PathAppended to the base URL. Supports {{placeholders}} from the action inputs.
Body templateA request body with {{placeholders}} substituted from the action inputs (for write methods).
Response mappingMaps fields out of the JSON response into a clean, predictable output shape.
Read / writeMarks the action as read-only or as a write (create/update/delete).
Requires confirmationWhen on, the AI pauses for your approval before running the action in chat.
  1. Name the action

    Give it a clear name and description so the AI knows when to use it.

  2. Set the method and path

    Choose GET / POST / PUT / PATCH / DELETE and the path, using {{placeholders}} for inputs.

  3. Template the body

    For write methods, write a body template with {{placeholders}} the executor fills from the inputs.

  4. Map the response

    Pull the fields you care about out of the JSON response into a clean output shape.

  5. Flag write & confirmation

    Mark create/update/delete actions as writes and decide whether they need confirmation in chat.

Rate limiting

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.

ℹ️
Write actions can require confirmation

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.

Where custom actions show up

Once defined, a custom integration is reachable everywhere a tool can be:

  • Assistant chat tools the AI can call your custom action just like a built-in integration action, attaching it with # or invoking it as a tool.
  • Workflows use it in an integration-action node as a deterministic step.
  • Admin UI manage, test, enable, and remove custom integrations from the Custom Actions tab.
💡
Bring any API into Your Office AI

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.