Chat Integrations
Chat Integrations Overview
Connect a Gamut agent to Telegram, Slack, or iMessage and message it straight from the chat app.
Supported platforms
- Telegram: Connect a Telegram bot to an agent. Anyone who messages the bot gets a response.
- Slack: Connect a Slack bot that answers DMs and channel conversations, with fine-grained control over when and how it replies.
- iMessage: Connect a phone number to an agent through the iMessage gateway. Send a text, get a response.
Integrations are set up from the Gamut UI, and agents can also create them on their own with the add_chat_integration tool.
How it works
A chat integration is a persistent connection between the messaging platform and an agent:
- A message arrives from the platform (a Telegram DM, a Slack message, an iMessage text).
- Gamut routes it to the configured agent. If no session exists for that conversation yet, one is created automatically.
- The agent processes the message with its usual tools, skills, and system prompt, exactly as if it came from the desktop UI.
- The response returns to the chat. Telegram and Slack stream it progressively as the agent writes; iMessage sends the full response once complete.
The agent keeps all of its normal capabilities in a chat session: connected accounts, MCP servers, browser use, file handling, and multi-agent delegation. A few actions that require the desktop UI (such as OAuth authorization flows or browser input) prompt the user to open Gamut on their computer.
Question cards
When the agent asks a question with options, the chat renders a question card: inline buttons on Telegram and Slack, a numbered list on iMessage. Tap an option to answer. When a single card is open, a plain-text reply counts as its free-form "Other" answer.
Sessions
Each unique conversation in the external chat maps to a session in Gamut:
- Each Telegram user who DMs the bot gets their own session.
- Each Slack user who DMs the bot, or each channel the bot is active in, gets a session.
- An iMessage conversation gets a session.
Sessions appear in the Gamut sidebar under the integration, with full message history. They are read-only in the UI since messages can only be sent from the connected chat platform.
Session timeout
An optional session timeout (in hours) rotates sessions after inactivity: once the timeout elapses since the last message, the next incoming message starts a fresh session instead of continuing the old one. Useful for agents that should treat each interaction as independent. With no timeout set, the same session persists indefinitely for each conversation.
Clearing sessions
Clear a session from the Gamut UI, or send /clear in the chat. The command works on all three platforms and also cancels any open question cards. The next message starts a fresh session.
Common settings
All chat integrations share these options:
- Bot Name: A display name for the integration, shown in the Gamut sidebar.
- Show Tool Calls: When enabled, the bot posts a message each time the agent invokes a tool.
- Session Timeout: Hours of inactivity after which the next message starts a new session. Leave blank for a single continuous session.
- Model and Effort: Override the model or effort level used for this integration's sessions.