Connect Dify to Mattermost
Step-by-step guide to running your Dify app as a Mattermost bot with LangBot: Dify setup, bot credentials, networking, testing and troubleshooting.
This recipe puts your Dify app behind a Mattermost bot. LangBot receives messages from Mattermost, runs them through a pipeline, and sends the answer back, so you do not write any platform code.
Dify builds chat assistants, Chatflows, Agents and Workflows. LangBot calls the published app through its Service API, so prompts, tools and knowledge stay in Dify.
What you need
- A running LangBot instance: LangBot Cloud (no server needed) or a self-hosted deployment with Docker or
uvx langbot. - A Dify account or instance that LangBot can reach over the network.
- A Mattermost bot account (role
Member) and its access token, plus your Mattermost server URL.
Networking
LangBot only needs to reach your Mattermost server; Mattermost does not need to reach LangBot.
1. Prepare Dify
- Build and publish a Chat Assistant (including Chatflow), Agent or Workflow app in Dify.
- Open the app's Access API page and create an API key.
- For a Workflow app, output the answer under the key
summary.
2. Create a pipeline
Open Pipelines in the LangBot WebUI, create a pipeline (or edit the default one) and set AI as follows. If the runner is not listed, install the official runner plugin from Plugins or the LangBot Space marketplace.
| Field | Value |
|---|---|
| Runner | Dify (official Dify Agent runner plugin) |
| Base URL | https://api.dify.ai/v1 for Dify Cloud, or your own Dify address with /v1 appended |
| API Key | The key from the app's Access API page |
3. Create the Mattermost bot
- Create the bot account in Mattermost (choose
post:allfor direct messages) and copy its token; it is shown only once. - Create a bot with the Mattermost adapter, enter the server address and token, and bind a pipeline.
4. Bind and test
Open the bot, select the pipeline you created, save and make sure the bot is enabled.
Send the bot a direct message, or mention it in a channel it has joined.
Troubleshooting
- Self-hosted Dify in Docker on the same host: put both stacks on a shared Docker network and use the container address (for example
http://dify-nginx/v1), notlocalhost. - Chatflow apps only return what the Answer node outputs.
- Administrator-related features are not supported; keep the bot role as
Member. - Disable streaming on the bot if your pipeline or AI provider does not support it.
- Check Monitoring in the WebUI: every message, pipeline run and error is recorded there.
FAQ
Do I need a server with a public IP for Mattermost?
No. LangBot only needs to reach your Mattermost server; Mattermost does not need to reach LangBot.
Does the Mattermost bot support streaming replies?
Yes. Enable streaming on the bot; the AI back end must also stream. See the platform feature matrix for details.
Can the same Dify setup serve other platforms too?
Yes. A pipeline can be bound to many bots, so one configuration can answer on several platforms at once.
Related guides
- Full Mattermost setup guide
- Full Dify runner guide
- Other AI back ends on Mattermost: n8n · Coze · Langflow · DeepSeek · OpenAI (ChatGPT models)
- Dify on other platforms: Telegram · Discord · Slack · Lark (Feishu) · DingTalk · WeCom (internal app)
Connect Dify to KOOK
Step-by-step guide to running your Dify app as a KOOK bot with LangBot: Dify setup, bot credentials, networking, testing and troubleshooting.
Connect Dify to a website chat widget
Step-by-step guide to running your Dify app as a a website chat widget bot with LangBot: Dify setup, bot credentials, networking, testing and troubleshooting.
