Communication Channels
OMD Cleo is channel-agnostic: the same agent and the same workflows operate across all supported communication platforms. Users receive Cleo messages on the tools they already use — no new app required.
Available channels
| Channel | Status | Primary use case |
|---|---|---|
| Matrix | Available | Real-time chat, interactive workflows |
| Microsoft Teams | Available | Enterprise team messaging |
| Available | Asynchronous digests and summaries | |
| Available | Field worker messaging | |
| SMS | Roadmap | Lightweight notifications |
| Voice | Roadmap | Inbound/outbound voice automation |
| Cleo Chat | Roadmap | OMD-hosted web chat (cleo.optimizemyday.ai) |
How channels work
Each channel has a dedicated client inside omd-agents. The client handles:
- Inbound — receiving messages from the channel and normalising them into a common intermediate representation.
- Outbound — rendering the agent's response into the channel's native format (Matrix HTML, email MJML, WhatsApp text, etc.) and delivering it.
Message intermediate representation
All channels share the same internal message format. This means a workflow written once can be delivered to Matrix, Teams, Email, or WhatsApp without modification — only the rendering differs.
Channel identity and opt-in
Each tenant has its own sender identity per channel:
- Teams: dedicated bot app registration
- Email: dedicated from-address
- WhatsApp: dedicated business number
- Matrix: dedicated homeserver alias
Before Cleo sends any message to a user, that user must opt in to the channel. This is configured by the tenant administrator and respected by all workflow invocations.
Enabling channels
Channels are enabled per deployment via the ENABLED_CLIENTS environment variable (comma-separated). Example:
ENABLED_CLIENTS=matrix,teams,email,whatsapp
Refer to the individual channel pages for the environment variables and setup steps required for each channel.