# Connect n8n to QQ Official Bot

Source: https://langbot.app/docs/en/recipes/n8n/qq-official

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

This recipe puts your n8n app behind a QQ Official Bot bot. LangBot receives messages from QQ Official Bot, runs them through a pipeline, and sends the answer back, so you do not write any platform code.

n8n runs the workflow; LangBot handles the chat platform, sessions and delivery and calls your workflow through a webhook for every message.

## 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 n8n account or instance that LangBot can reach over the network.
- A bot registered on the QQ Open Platform: **AppID**, **Token** and **AppSecret**, with LangBot's server IP in the IP whitelist.

## Networking

The QQ Official Bot API (webhook) requires a public IP and working HTTPS. LangBot Cloud includes a public domain.

## 1. Prepare n8n

1. Start the workflow with a **Webhook** or **On chat message** trigger. Set **Response Mode** to **Streaming** if you want streamed replies.
2. Answer with an **AI Agent** node (streaming) or a **Respond to Webhook** node whose response key matches LangBot's output key.
3. Click **Active** to enable the workflow and copy its production webhook URL.

## 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              | **n8n** (official n8n workflow runner plugin)              |
| Webhook URL         | The workflow's production webhook URL                      |
| Authentication Type | None, Basic Auth, JWT or Header, matching the trigger node |

## 3. Create the QQ Official Bot bot

1. Create a bot with the **QQ Official** adapter and enter AppID, Token and AppSecret.
2. Copy the bot's webhook callback URL, replace the host with your HTTPS domain, and save it as the request address in the QQ management portal. Add test users in the sandbox settings.

## 4. Bind and test

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

As a sandbox member, message the bot in a private chat or @mention it in a sandbox group.

## Troubleshooting

- Empty replies: the key in **Respond to Webhook** must match the output key configured in LangBot.
- The test URL only works while the n8n editor is listening; use the production URL of an active workflow.
- Saving the request address fails: the domain is not reachable over HTTPS or the path does not end with `/bots/<bot id>`.
- 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 QQ Official Bot?

Yes, or use LangBot Cloud. The QQ Official Bot API (webhook) requires a public IP and working HTTPS. LangBot Cloud includes a public domain.

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