# Build a WeCom Customer Service AI Bot with Qwen

Source: https://langbot.app/docs/en/recipes/qwen/wecomcs

Step-by-step guide to running a Qwen-powered AI bot on WeCom Customer Service with LangBot: model setup, bot credentials, networking, testing and troubleshooting.

This recipe puts a Qwen model behind a WeCom Customer Service bot. LangBot receives messages from WeCom Customer Service, runs them through a pipeline, and sends the answer back, so you do not write any platform code.

Use Alibaba Cloud's Qwen models through Model Studio (DashScope) with LangBot's built-in Agent.

## 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 Qwen account or server you can call from LangBot.
- WeCom Customer Service (WeChat Kefu) with API access: **Corporate ID**, **Secret**, and a callback **Token** and **EncodingAESKey**.

## Networking

Customer Service delivers events to a callback URL, so LangBot needs a public HTTPS address. LangBot Cloud includes one.

## 1. Add the Qwen model

1. Create an API key in the Aliyun Bailian (DashScope) console.
2. In LangBot, open **Models**, add an LLM model with the provider set to Aliyun Bailian (DashScope) and request URL `https://dashscope.aliyuncs.com/compatible-mode/v1`, then paste the API key and the model ID.
3. Enable **Tool Use** if the model supports function calling; MCP tools, Skills and the sandbox need it.
4. Use a Qwen model ID listed in Model Studio.

## 2. Create a pipeline

Open **Pipelines** in the LangBot WebUI, create a pipeline (or edit the default one) and set **AI** as follows.

| Field           | Value                                                                  |
| --------------- | ---------------------------------------------------------------------- |
| Runner          | **Local Agent** (built-in Agent)                                       |
| Model           | The model you just added. You can add fallback models.                 |
| Prompt          | Instructions: who the bot is, tone, what it must not do.               |
| Knowledge Bases | Optional. Attach a knowledge base so answers come from your documents. |

## 3. Create the WeCom Customer Service bot

1. In WeCom Customer Service **Developer Settings**, generate the Token and EncodingAESKey and enter them with the Corporate ID in a bot using the **WeCom Customer Service** adapter.
2. Enable the bot, paste its webhook callback URL into the admin console, then fill in the Secret and restart the bot. Generate the customer service link or QR code users will open.

## 4. Bind and test

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

Open the customer service link or scan the QR code in WeChat and send a message.

## Troubleshooting

- International accounts use a different DashScope endpoint; copy the OpenAI-compatible URL shown in your console.
- Welcome messages can only be sent when WeChat supplies a `welcome_code`, and only once before it expires.
- 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 WeCom Customer Service?

Yes, or use LangBot Cloud. Customer Service delivers events to a callback URL, so LangBot needs a public HTTPS address. LangBot Cloud includes one.

### Does the WeCom Customer Service 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 Qwen 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 WeCom Customer Service setup guide](https://langbot.app/docs/en/usage/platforms/wecom/wecomcs.md)
- [Model configuration](https://langbot.app/docs/en/usage/models/readme.md)
- Other AI back ends on WeCom Customer Service: [Dify](https://langbot.app/docs/en/recipes/dify/wecomcs.md) · [n8n](https://langbot.app/docs/en/recipes/n8n/wecomcs.md) · [Coze](https://langbot.app/docs/en/recipes/coze/wecomcs.md) · [Langflow](https://langbot.app/docs/en/recipes/langflow/wecomcs.md) · [DeepSeek](https://langbot.app/docs/en/recipes/deepseek/wecomcs.md)
- Qwen on other platforms: [Telegram](https://langbot.app/docs/en/recipes/qwen/telegram.md) · [Discord](https://langbot.app/docs/en/recipes/qwen/discord.md) · [Slack](https://langbot.app/docs/en/recipes/qwen/slack.md) · [Lark (Feishu)](https://langbot.app/docs/en/recipes/qwen/lark.md) · [DingTalk](https://langbot.app/docs/en/recipes/qwen/dingtalk.md) · [WeCom (internal app)](https://langbot.app/docs/en/recipes/qwen/wecom.md)
