- Tool integrations give an agent tools the model can call. You attach one in
the agent’s
mcpslist, so attaching takes a publish. See MCP servers. - Channel integrations (Telegram, WhatsApp) put a published agent on a messaging channel. They are never attached to an agent config; a trigger binds them to an agent.
Providers
A service not on this list is reachable only as a custom MCP server.
GET /v1/integrations/catalog returns the same list live, with each provider’s
setup_fields (the exact keys to send on create, their target and whether they
are required), capabilities (attachable_as_mcp, trigger_types) and
enabled. enabled is false for an OAuth provider whose OAuth app is not
configured on this deployment; it cannot be connected.
Connecting an API-key provider
Manual providers take their credentials onPOST /v1/integrations. A field of
type secret_ref (such as credentials_ref) accepts the plaintext value, which
the platform stores as a workspace secret and replaces with
a reference (TAVILY_API_KEY, RESEND_API_KEY, EXA_API_KEY,
TELEGRAM_BOT_TOKEN, suffixed if the name is taken). Or send an existing
{{secrets.NAME}} reference; one naming a missing secret is refused.
exa,tavilyandresendrequire a key. Exa’s keyless tier is a shared pool whose rate limit strangers exhaust, so it is not accepted.- Telegram, Resend and WhatsApp credentials are checked with the provider before
the row is written; a key the provider rejects fails the create with a
400. custom_mcpheader values are not turned into secrets; see custom MCP servers.- Reads never return a secret value: secret fields come back as
{{secrets.NAME}}.
credentials_ref again on
PATCH /v1/integrations/{integration_id}. Omitting it keeps the current one.
Connecting an OAuth provider
OAuth providers connect from the dashboard only:POST /v1/integrations
refuses them with connect <Provider> with OAuth.
1
Start
Integrations → Add integration → pick the provider.
2
Authorize
Approve the access on the provider’s page. The flow must finish in the same
browser, login and workspace that started it.
3
Approve tools
The tool-approval modal opens on return. Approve only what the agent needs
(approving tools).
<Provider> - <account> (Google Calendar - ada@northwind.com),
with (2) appended if the name is taken. Connecting an account that already has
an integration is refused with an integration for this account already exists.
Reconnect (the button on the integration’s row) replaces the tokens on the
existing row and keeps allowed_tools and tools_namespace. Use it when the
status is needs_reconnect or the grant was revoked. An OAuth integration with no
stored credential cannot be PATCHed back to active.
Statuses
Any status other than
active: the integration cannot be attached, its tools
drop out of published agents on their next session (validate and publish warn
integration '<name>' is disabled - its tools are left out until you enable it),
its triggers cannot be enabled, and GET …/mcp-tools returns 400.
Disabling a channel integration also unregisters its enabled triggers with the
provider; enabling it registers them again.
Deleting
DELETE /v1/integrations/{integration_id} is permanent and deletes its triggers.
It also removes the Telegram bot’s webhook, clears a Twilio WhatsApp sender’s
webhook and calling, or revokes OAuth tokens with the provider.
Two connections to one provider
Two Asana workspaces or two Google accounts are fine, but both integrations defaulttools_namespace to the provider key. Attaching both to one agent is
refused until you give one a different namespace (asana_eu). See
namespacing.
Field reference
Next
MCP servers
Attach an integration to an agent, approve its tools, set its namespace.
Triggers
Bind a Telegram or WhatsApp integration to a published agent.