# Connect Dify to WeChat Official Account

Source: https://langbot.app/docs/en/recipes/dify/wechat-official-account

Step-by-step guide to running your Dify app as a WeChat Official Account bot with LangBot: Dify setup, bot credentials, networking, testing and troubleshooting.

This recipe puts your Dify app behind a WeChat Official Account bot. LangBot receives messages from WeChat Official Account, 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](https://space.langbot.app/cloud) (no server needed) or a [self-hosted deployment](https://langbot.app/docs/en/deploy/langbot/docker.md) with Docker or `uvx langbot`.
- A Dify account or instance that LangBot can reach over the network.
- A WeChat Official Account or Service Account: **AppID**, **AppSecret**, a server **Token** and **EncodingAESKey**, with LangBot's server IP in the **IP whitelist**.

## Networking

Official Accounts require a public domain with HTTPS and must get a response within 5 seconds. Slow AI replies need `passive` or `auto` mode. LangBot Cloud includes a public domain.

## 1. Prepare Dify

1. Build and **publish** a Chat Assistant (including Chatflow), Agent or Workflow app in Dify.
2. Open the app's **Access API** page and create an API key.
3. 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](https://space.langbot.app/market).

| 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 WeChat Official Account bot

1. Create a bot with the **WeChat Official Account** adapter and choose a reply mode: `drop` (reply within the 5-second callback), `passive` or `auto` (answer later through the customer service API when the account is enterprise-verified).
2. Paste the bot's callback URL into the account's server configuration and save.

## 4. Bind and test

Open the bot, select the pipeline you created, save and make sure the bot is enabled.

Follow the account in WeChat and send it a message.

## 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`), not `localhost`.
- Chatflow apps only return what the Answer node outputs.
- Users see the loading message but no answer: in `passive` mode (or after `auto` falls back) the user must send another message to retrieve the queued answer.
- Customer service messages require an enterprise-verified account; identity verification alone is not enough.
- 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 WeChat Official Account?

Yes, or use LangBot Cloud. Official Accounts require a public domain with HTTPS and must get a response within 5 seconds. Slow AI replies need `passive` or `auto` mode. LangBot Cloud includes a public domain.

### Does the WeChat Official Account bot support streaming replies?

Check the [platform feature matrix](https://langbot.app/docs/en/insight/platform-features.md) for what this platform supports. Replies are delivered once the AI back end has finished.

### 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 WeChat Official Account setup guide](https://langbot.app/docs/en/usage/platforms/wxoa.md)
- [Full Dify runner guide](https://langbot.app/docs/en/usage/pipelines/dify.md)
- Other AI back ends on WeChat Official Account: [n8n](https://langbot.app/docs/en/recipes/n8n/wechat-official-account.md) · [Coze](https://langbot.app/docs/en/recipes/coze/wechat-official-account.md) · [Langflow](https://langbot.app/docs/en/recipes/langflow/wechat-official-account.md) · [DeepSeek](https://langbot.app/docs/en/recipes/deepseek/wechat-official-account.md) · [OpenAI (ChatGPT models)](https://langbot.app/docs/en/recipes/openai/wechat-official-account.md)
- Dify on other platforms: [Telegram](https://langbot.app/docs/en/recipes/dify/telegram.md) · [Discord](https://langbot.app/docs/en/recipes/dify/discord.md) · [Slack](https://langbot.app/docs/en/recipes/dify/slack.md) · [Lark (Feishu)](https://langbot.app/docs/en/recipes/dify/lark.md) · [DingTalk](https://langbot.app/docs/en/recipes/dify/dingtalk.md) · [WeCom (internal app)](https://langbot.app/docs/en/recipes/dify/wecom.md)
