# Connect n8n to Discord

Source: https://langbot.app/docs/en/recipes/n8n/discord

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

This recipe puts your n8n app behind a Discord bot. LangBot receives messages from Discord, 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 Discord application with a bot: its **Client ID** and **bot token** from the [Developer Portal](https://discord.com/developers/applications), with **Server Members Intent** and **Message Content Intent** enabled.

## Networking

Discord bots connect out to the Discord gateway, so no public webhook URL is required.

## 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 Discord bot

1. Create a bot with the **Discord** adapter and enter the Client ID and token.
2. Invite the bot from **OAuth2 → URL Generator** with the `bot` scope and **Guild Install**, granting permission to view channels and send messages.

## 4. Bind and test

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

Send a message that matches the trigger rules in a server channel, then try a DM from the bot's profile.

## 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.
- Gateway login fails: check the current token and that both privileged intents are enabled and saved.
- Discord limits message length, so long streaming replies arrive as several messages.
- 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 Discord?

No. Discord bots connect out to the Discord gateway, so no public webhook URL is required.

### Does the Discord bot support streaming replies?

Yes. Enable streaming on the bot; the AI back end must also stream. See the [platform feature matrix](https://langbot.app/docs/en/insight/platform-features.md) for details.

### 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 Discord setup guide](https://langbot.app/docs/en/usage/platforms/discord.md)
- [Full n8n runner guide](https://langbot.app/docs/en/usage/pipelines/n8n.md)
- Other AI back ends on Discord: [Dify](https://langbot.app/docs/en/recipes/dify/discord.md) · [Coze](https://langbot.app/docs/en/recipes/coze/discord.md) · [Langflow](https://langbot.app/docs/en/recipes/langflow/discord.md) · [DeepSeek](https://langbot.app/docs/en/recipes/deepseek/discord.md) · [OpenAI (ChatGPT models)](https://langbot.app/docs/en/recipes/openai/discord.md)
- n8n on other platforms: [Telegram](https://langbot.app/docs/en/recipes/n8n/telegram.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) · [WeCom Intelligent Bot](https://langbot.app/docs/en/recipes/n8n/wecombot.md)
