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, custom actions are rate limited to 10 calls per minute, per action (a sliding one-minute window). Calls beyond that are rejected with a rate-limit error until the window clears.

ℹ️
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.