Four kinds of connection
- Messaging channels - how people reach the agent. Configured per agent, in its Connectors tab.
- Connected accounts - how the agent reaches your business tools. Configured deployment-wide or per agent, in the Connections section.
- MCP servers - extra tools published by an external service, added in the agent's MCP tab.
- Webhooks - machine-to-machine events in both directions, in the agent's Webhooks tab.
Messaging channels
Olano speaks 15+ messaging channels. The connector picker offers the verified ones - Telegram, WhatsApp, Discord, Slack, Signal, SMS via Twilio, DingTalk, Feishu/Lark, WeCom, Weixin, QQ Bot and DeBox - and every one is added through a guided, typed form with a setup guide beside it. You never edit raw configuration to add a channel.
- Open the agent, then the Connectors tab, then Add. Choose the platform. The form that appears asks only for what that platform needs, and every field carries a hint explaining what it does, the accepted format, and what happens if you leave it blank.
- Supply the credential. Telegram wants a bot token from @BotFather; Slack wants a bot token and an app token; Discord wants a bot application. The field is labelled with the exact credential name and stores the value in your encrypted vault, not in the agent's configuration.
- Pair, where pairing is the mechanism. WhatsApp links by QR code from a Pair / Connect button in the form. Signal has a guided wizard - register the number, solve the captcha, verify the code, set a profile name. WeChat streams a QR you scan and confirm, and pins the scanned account to that agent.
- Decide who may talk to it. Most connectors have an allow-list. On Telegram, WhatsApp, DeBox and DingTalk it is a hard gate: listed senders get in, others do not. On Slack, email, SMS, Matrix and Mattermost the same field marks trusted users instead - it grants owner privileges without blocking anyone else.
- Save and restart the agent. Channel credentials are read when the agent boots, so a new or changed token needs a restart to take effect.
Each connector row shows health and diagnostics, and masks secret-looking values. Under the line, a note tells you which credential is actually in play: set for this agent, using a shared value, or not set at all.
Two agents sharing one bot token means only one of them will receive messages - the platform delivers each message once. Give every agent its own bot and its own token. The dashboard warns you when it detects a collision.
A missing credential skips that one connector rather than breaking the agent. The agent still boots and still answers in the dashboard; a notification on Overview names the missing key and links to the connector panel that fixes it.
How agents behave in a chat
Slash commands work on every messaging platform, not just the dashboard. Inbound text is checked against the command list before it reaches the model, so /help, /new, /context, /tools and /skills all execute rather than being answered as questions. Which commands an agent exposes is set per agent in its Commands tab, where sensitive ones are off by default and you can define your own shortcuts.
How much of the agent's working shows in a chat is set per conversation with /quiet, /normal and /verbose. Normal shows a live checklist and one line per tool call while the agent works, then replaces it with the answer. Quiet shows the answer only - the right choice for a customer-facing bot, and settable as an agent's default so it applies from the first message.
Group behaviour differs by platform and is worth checking. WhatsApp defaults to handling every group message; switch Group listening to "@mentions only" if that is too eager, or use listen-only mode to have the agent watch a group without ever replying. Telegram has a group policy setting deciding whether non-listed members may converse in groups while direct messages stay gated.
Connecting business accounts
The Connections section holds one card per external service you sign into: Google (Gmail, Calendar, Drive, Docs, Sheets), Microsoft 365, Salesforce, QuickBooks, X, Meta for Facebook and Instagram, LinkedIn, Reddit, Fitbit, Shopify, Buffer, DocuSign, GitHub and the GitHub CLI. Each card shows its status and what it enables.
Connecting uses a copy-the-link flow: the panel gives you an Open authorization page button and a Copy link button. Open it on any device - your laptop, your phone - approve there, and the panel updates to Connected on its own. Before you authorize, the panel shows the exact redirect URI to register in the provider's console, with a copy button; register it exactly as shown or the provider will reject the authorization.
Two scopes are available. System means one connection every agent uses. Per Agent gives that agent its own account, with an optional share toggle so others can fall back to it. Once connected, tools pick the credentials up with no further configuration, and tokens refresh themselves where the provider supports it.
Together these accounts, the built-in toolkits and the platform's own utilities give an agent access to 450+ connector tools across 75+ built-in integrations - though, as chapter 2 says, an agent should only hold the ones its job needs.
If the person who needs to sign in is not sitting at the dashboard, an administrator can mint a short-lived, PIN-protected sign-in link from Config. It opens one small page that runs the real sign-in, and reports back to the chat it came from when it completes. The link and the PIN are shown once and cannot be looked up again.
MCP servers
MCP servers are external services that publish tools an agent can call. The directory carries 200+ MCP servers, and the agent's MCP tab is where you add them.
The guided form starts with a Connect a service preset picker covering verified providers - Stripe, HubSpot, Notion, GitHub, Linear, Sentry, Canva and more - which prefills the address and shows only the fields that provider needs. Transport details, headers and scopes collapse under an Advanced disclosure, and a Custom option keeps the full form for anything not listed.
Connect probes the server with step-by-step logs, works out what it needs, and - if it requires sign-in - launches the authorization flow for you. You approve in the provider's own page and the handshake completes on redirect. Per-server pills then show connection health and sign-in state, including an expiry-aware token pill that turns red with a Re-authorize button rather than pretending an expired token is fine.
Two conveniences matter day to day. You can enable or disable individual tools a server publishes, so a server offering forty tools can contribute the three you want. And a Reload agent button swaps the new tools into the running agent without a restart, so a newly authorized server becomes usable immediately.
Webhooks
The Webhooks tab handles both directions.
Outbound posts agent events to a URL you choose. You give it a name, a payload URL, the events to send, and optionally a signing secret so the receiver can verify the delivery. Rate limit, retries, timeout and TLS verification are all configurable, and each row shows live success and failure counts.
Inbound is the more interesting half: it lets an external system hand a payload to the agent. You write a processing prompt describing what the webhook is and how to handle it - every field the sender posts is appended automatically - and choose whether the agent replies synchronously to the sender and whether payloads accumulate in one conversation or each starts fresh. After saving, the row shows a self-authenticating ingress URL with a copy button; hand that to whoever is sending.
Both kinds have a Test button that fires a sample and shows the result, and a History view of past deliveries. Edits apply live.