--- summary: "Mattermost bot setup and Clawdbot config" read_when: - Setting up Mattermost - Debugging Mattermost routing --- # Mattermost ## Quick setup 1) Create a Mattermost bot account and copy the **bot token**. 2) Copy the Mattermost **base URL** (e.g., `https://chat.example.com`). 3) Configure Clawdbot and start the gateway. Minimal config: ```json5 { channels: { mattermost: { enabled: true, botToken: "mm-token", baseUrl: "https://chat.example.com" } } } ``` ## Environment variables (default account) Set these on the gateway host if you prefer env vars: - `MATTERMOST_BOT_TOKEN=...` - `MATTERMOST_URL=https://chat.example.com` Env vars apply only to the **default** account (`default`). Other accounts must use config values. ## Chat modes Mattermost responds to DMs automatically. Channel behavior is controlled by `chatmode`: - `oncall` (default): respond only when @mentioned in channels. - `onmessage`: respond to every channel message. - `onchar`: respond when a message starts with a trigger prefix. Config example: ```json5 { channels: { mattermost: { chatmode: "onchar", oncharPrefixes: [">", "!"] } } } ``` Notes: - `onchar` still responds to explicit @mentions. - `channels.mattermost.requireMention` is honored for legacy configs but `chatmode` is preferred. ## Targets for outbound delivery Use these target formats with `clawdbot message send` or cron/webhooks: - `channel:` for a channel - `user:` for a DM - `@username` for a DM (resolved via the Mattermost API) Bare IDs are treated as channels. ## Multi-account Mattermost supports multiple accounts under `channels.mattermost.accounts`: ```json5 { channels: { mattermost: { accounts: { default: { name: "Primary", botToken: "mm-token", baseUrl: "https://chat.example.com" }, alerts: { name: "Alerts", botToken: "mm-token-2", baseUrl: "https://alerts.example.com" } } } } } ``` ## Troubleshooting - No replies in channels: ensure the bot is in the channel and mention it (oncall), use a trigger prefix (onchar), or set `chatmode: "onmessage"`. - Auth errors: check the bot token, base URL, and whether the account is enabled. - Multi-account issues: env vars only apply to the `default` account.