Ein Discord-Bot, der mit n8n und KI erstellt wird, kann au­to­ma­tisch auf Nach­rich­ten reagieren, Inhalte ver­ar­bei­ten und ver­schie­de­ne Aufgaben im Hin­ter­grund über­neh­men. Dabei werden Discord, n8n und ein KI-Modell mit­ein­an­der verbunden, sodass ein­ge­hen­de Nach­rich­ten ana­ly­siert und passende Antworten oder Aktionen ausgelöst werden. Solche Bots eignen sich bei­spiels­wei­se für au­to­ma­ti­sier­te Kom­mu­ni­ka­ti­on, Mo­de­ra­ti­on oder die In­te­gra­ti­on externer Dienste in einen Discord-Server.

Self-hosted n8n
Mehr Pro­duk­ti­vi­tät dank n8n Au­to­ma­ti­sie­rung – Ihr bester VPS
  • Maximale Effizienz ohne Mehr­auf­wand
  • Self-hosted Au­to­ma­ti­on: Keine Task-Limits, volle Kos­ten­kon­trol­le
  • Über 500 In­te­gra­tio­nen & Tools dank Open Source

Welche Vorteile bietet ein Discord-Bot mit n8n?

Ein mit n8n er­stell­ter Discord-Bot hat den Vorteil, dass Sie viele Abläufe ohne klas­si­sche Soft­ware­ent­wick­lung au­to­ma­ti­sie­ren können. Statt einen kom­plet­ten Bot von Grund auf in Python oder Ja­va­Script zu pro­gram­mie­ren, bauen Sie in n8n einen visuellen Workflow aus einzelnen Bau­stei­nen zusammen. Das ist besonders hilfreich, wenn Sie erste Er­fah­run­gen mit Au­to­ma­ti­sie­run­gen sammeln möchten.

Weitere Vorzüge im Überblick:

  • Än­de­run­gen lassen sich später einfacher umsetzen, weil Sie einzelne Schritte direkt in der Ober­flä­che anpassen können.
  • Gleich­zei­tig können Sie Ihren Bot mit KI-Funk­tio­nen erweitern, zum Beispiel für au­to­ma­ti­sche Antworten, Zu­sam­men­fas­sun­gen oder Mo­de­ra­ti­ons­hil­fen.
  • n8n lässt sich zudem mit zahl­rei­chen weiteren Diensten verbinden, sodass Ihr Bot nicht nur auf Discord-Nach­rich­ten reagieren, sondern auch Daten aus anderen Tools ver­ar­bei­ten kann. Denkbar sind z. B. Ver­knüp­fun­gen mit Google Sheets, Da­ten­ban­ken, CRMs oder Helpdesk-Systemen. Auch Tools wie Jira lassen sich in n8n in­te­grie­ren, sodass Sie bei­spiels­wei­se au­to­ma­tisch Tickets erstellen oder Sta­tus­mel­dun­gen in Discord posten können.
  • Gute Nach­voll­zieh­bar­keit: Sie sehen im Workflow genau, was wann passiert. Das er­leich­tert die Feh­ler­su­che und die spätere Er­wei­te­rung.
  • Für Teams und Un­ter­neh­men ist außerdem in­ter­es­sant, dass sich wie­der­keh­ren­de Aufgaben stan­dar­di­sie­ren lassen.
Hinweis

Neben Discord können Sie mit n8n auch andere Kom­mu­ni­ka­ti­ons­platt­for­men einbinden. Mit n8n und Telegram bzw. einem n8n-Telegram-Bot lassen sich ähnliche Au­to­ma­ti­sie­run­gen auch für Telegram umsetzen oder platt­form­über­grei­fend kom­bi­nie­ren.

Vor­aus­set­zun­gen

Bevor Sie mit der Er­stel­lung eines Discord-Bots auf Basis von n8n und KI beginnen, sollten Sie einige grund­le­gen­de Vor­aus­set­zun­gen erfüllen. Eine saubere Vor­be­rei­tung er­leich­tert den Einstieg erheblich und sorgt dafür, dass die einzelnen Kom­po­nen­ten später rei­bungs­los mit­ein­an­der funk­tio­nie­ren. Viele der be­nö­tig­ten Zugänge lassen sich in wenigen Minuten ein­rich­ten, dennoch lohnt es sich, alle Punkte vorab voll­stän­dig be­reit­zu­stel­len. Für die Umsetzung benötigen Sie:

  • eine öf­fent­lich er­reich­ba­re, laufende n8n-Instanz (mit HTTPS)
  • einen Discord-Account
  • einen Discord-Server, auf dem Sie über Ver­wal­tungs­rech­te verfügen
  • Zugang zum Discord Developer Portal
  • einen Bot-Token für Ihren Discord-Bot
  • einen Webhook und einen mit Discord ver­bun­de­nen Bot
  • einen API-Zugang zu einem KI-Dienst, zum Beispiel OpenAI
  • etwas Zeit für die ersten Tests und An­pas­sun­gen
Tipp

Falls Sie n8n noch nicht in­stal­liert haben, können Sie eine n8n-Docker-In­stal­la­ti­on nutzen. Diese Variante eignet sich besonders für Ein­stei­ge­rin­nen und Ein­stei­ger, da sich n8n damit schnell und isoliert starten lässt. Für pro­duk­ti­ve Um­ge­bun­gen oder größere An­wen­dun­gen bietet sich al­ter­na­tiv eine n8n-Ku­ber­netes-In­stal­la­ti­on an, mit der sich Workflows ska­lier­bar und aus­fall­si­cher betreiben lassen.

Gerade für Ein­stei­ge­rin­nen und Ein­stei­ger empfiehlt es sich, für Test­zwe­cke zunächst einen eigenen Server in Discord zu erstellen. So können Sie Ihren n8n-Workflow in Ruhe aus­pro­bie­ren und Fehler beheben, ohne einen be­stehen­den oder pro­duk­ti­ven Server zu be­ein­träch­ti­gen.

Discord-Bot mit n8n und KI erstellen: Schritt für Schritt

Schritt 1: Einen Discord-Server zum Testen vor­be­rei­ten

Falls Sie noch keinen eigenen Test­ser­ver haben, legen Sie zuerst einen an. Öffnen Sie Discord, klicken Sie in der linken Sei­ten­leis­te auf das Plus-Symbol und erstellen Sie einen neuen Server. Geben Sie ihm einen Namen. Dieser Server dient später dazu, Ihren Bot sicher aus­zu­pro­bie­ren.

Ein eigener Test­ser­ver ist sinnvoll, weil Sie dort Nach­rich­ten, Be­rech­ti­gun­gen und Antworten kon­trol­liert testen können. Gerade bei den ersten Schritten mit Au­to­ma­ti­sie­run­gen passieren schnell kleine Fehler. In einer Test­um­ge­bung lassen sich diese deutlich ent­spann­ter beheben. Achten Sie darauf, dass Sie auf dem Server Ad­mi­nis­tra­tor­rech­te besitzen.

Schritt 2: Im Discord Developer Portal eine Anwendung anlegen

Öffnen Sie nun das Discord Developer Portal und melden Sie sich mit Ihrem Discord-Konto an. Klicken Sie dort auf New Ap­pli­ca­ti­on und vergeben Sie einen Namen für Ihre Anwendung. Diese Anwendung ist die Grundlage für Ihren späteren Bot.

Danach wechseln Sie in den Bereich „Bot“ und erstellen dort den ei­gent­li­chen Discord-Bot. Discord erzeugt nun ein Bot-Profil, das später mit Ihrem Workflow kom­mu­ni­zie­ren kann. Besonders wichtig ist das so­ge­nann­te Bot-Token. Dieses Token funk­tio­niert ähnlich wie ein Passwort für Ihren Bot und wird später in n8n hin­ter­legt. Behandeln Sie das Token ver­trau­lich. Wer Zugriff darauf hat, kann Ihren Bot miss­brau­chen oder in Ihrem Namen Aktionen ausführen.

Bild: Discord Developer Portal: Bot anlegen
Im Discord Developer Portal können Sie Ihren Bot anlegen.

Schritt 3: Die nötigen Be­rech­ti­gun­gen für den Bot festlegen

Damit Ihr Bot auf Ihrem Server arbeiten kann, braucht er passende Rechte. Im Developer Portal können Sie festlegen, welche Be­rech­ti­gun­gen er erhalten soll. Für einen einfachen KI-Bot genügen am Anfang meist diese Rechte:

  • Nach­rich­ten lesen
  • Nach­rich­ten senden
  • Nach­rich­ten­his­to­rie lesen
  • Links einbetten
  • Anhänge senden

Je nach An­wen­dungs­fall können später weitere Rechte nötig sein, zum Beispiel für Mo­de­ra­ti­on, Rol­len­ver­wal­tung oder Ka­nal­in­ter­ak­tio­nen. Für An­fän­ge­rin­nen und Anfänger empfiehlt es sich aber, nur die Be­rech­ti­gun­gen zu ak­ti­vie­ren, die wirklich gebraucht werden. Das ist über­sicht­li­cher und sicherer.

Bild: Discord Developer Portal: Bot Permissions
Im Bereich „Bot Per­mis­si­ons“ können Sie die Rechte für Ihren Bot vergeben.

Schritt 4: Den Bot auf den Discord-Server einladen

Im nächsten Schritt erstellen Sie einen Ein­la­dungs­link für Ihren Bot, damit Sie ihn zu Ihrem Discord-Server hin­zu­fü­gen können. Dazu wechseln Sie im Discord Developer Portal in den Bereich „OAuth2“ und öffnen den „OAuth2 URL Generator“.

Ak­ti­vie­ren Sie dort unter Scopes min­des­tens die Option „bot“ und, falls Sie Slash-Commands nutzen möchten, zu­sätz­lich „ap­pli­ca­ti­ons.commands“. An­schlie­ßend wählen Sie die Be­rech­ti­gun­gen aus, die Ihr Bot später haben soll, zum Beispiel das Lesen und Senden von Nach­rich­ten. Auf Basis dieser Auswahl erzeugt Discord au­to­ma­tisch eine URL. Öffnen Sie diesen Link, wählen Sie Ihren (Test-)Server aus und be­stä­ti­gen Sie die Einladung.

Bild: Discord Developer Portal: URL Generator
Mit dem URL-Generator fügen Sie Ihren Bot zum Server hinzu.

Danach erscheint der Bot bereits auf Ihrem Server. Dass er zunächst noch nicht auf Nach­rich­ten reagiert, ist völlig normal, denn die ei­gent­li­che Funk­tio­na­li­tät und Logik richten Sie erst im nächsten Schritt in n8n ein.

Schritt 5: Einen Discord-Webhook erstellen

Für viele Workflows ist ein Webhook der ein­fachs­te Weg, um Nach­rich­ten von n8n an Discord zu senden. Webhooks sind al­ler­dings ein reiner Aus­gangs­ka­nal. Für in­ter­ak­ti­ve Bots, die auf Be­nut­zer­ein­ga­ben reagieren (z. B. Slash-Commands), reicht ein Webhook allein daher nicht aus. Dafür benötigen Sie zu­sätz­lich In­ter­ac­tions, die in Schritt 7 ein­ge­rich­tet werden.

Öffnen Sie in Discord die Ein­stel­lun­gen des ge­wünsch­ten Text­ka­nals und wechseln Sie zu „In­te­gra­tio­nen“. Dort können Sie einen neuen Webhook anlegen. Vergeben Sie einen Namen, wählen Sie den Kanal aus und kopieren Sie die Webhook-URL. Diese URL tragen Sie später in n8n ein. Darüber kann n8n au­to­ma­tisch Nach­rich­ten an Discord senden, ohne dass Sie dafür eigene Bot-Pro­gramm­lo­gik schreiben müssen.

Bild: n8n: Webhook POST
Tragen Sie die Webhook-URL in n8n ein.
Hinweis

Ein Webhook eignet sich besonders gut für erste Au­to­ma­ti­sie­run­gen. Wenn Sie später kom­ple­xe­re In­ter­ak­tio­nen benötigen, etwa das gezielte Reagieren auf ein­ge­hen­de Discord-Nach­rich­ten, können Sie zu­sätz­lich mit Bot-Logik, Slash-Commands oder externen Triggern arbeiten.

Schritt 6: n8n öffnen und einen neuen Workflow anlegen

Öffnen Sie Ihre n8n-Instanz und erstellen Sie einen neuen Workflow. Vergeben Sie einen aus­sa­ge­kräf­ti­gen Namen. Im Gegensatz zu einfachen Au­to­ma­ti­sie­run­gen geht es bei einem echten Discord-Bot nicht nur darum, Nach­rich­ten zu versenden. Ihr Workflow muss auch in der Lage sein, ein­ge­hen­de Anfragen von Discord zu empfangen und darauf zu reagieren.

Ein typischer Aufbau besteht dabei aus drei Teilen:

  • Eingang (Discord → n8n)
  • Ver­ar­bei­tung (KI)
  • Ausgabe (n8n → Discord)

Schritt 7: Ver­bin­dung zwischen Discord und n8n her­stel­len (In­ter­ac­tions)

Im Gegensatz zu Webhooks, die nur für aus­ge­hen­de Nach­rich­ten verwendet werden, er­mög­li­chen In­ter­ac­tions die Eingabe von Daten aus Discord in Ihren Workflow. Hierbei handelt es sich um struk­tu­rier­te Anfragen, die bei­spiels­wei­se durch Slash-Kommandos ausgelöst werden. Immer wenn ein User einen solchen Befehl in Discord ausführt, wird eine Anfrage an eine von Ihnen de­fi­nier­te URL gesendet. Genau diese URL stellen Sie in n8n bereit.

Erstellen Sie dafür zunächst in Ihrem Workflow einen Webhook-Node. Dieser Node dient als Ein­gangs­punkt für alle Anfragen, die von Discord kommen. Öffnen Sie die Ein­stel­lun­gen des Webhook-Nodes und wählen Sie als Methode POST aus. An­schlie­ßend vergeben Sie einen Pfad, zum Beispiel discord-interaction.

Sobald Sie diese Ein­stel­lun­gen speichern, erzeugt n8n au­to­ma­tisch eine Webhook-URL. In der Ober­flä­che werden Ihnen dabei zwei Varianten angezeigt: eine Test-URL und eine Produktiv-URL. Die Test-URL eignet sich nur für kurz­fris­ti­ge Tests innerhalb des Editors. Für den späteren Betrieb Ihres Bots benötigen Sie jedoch die Produktiv-URL, da diese auch dann funk­tio­niert, wenn der Workflow aktiviert ist.

Im nächsten Schritt müssen Sie diese URL in Discord hin­ter­le­gen. Öffnen Sie dazu das Discord Developer Portal und wechseln Sie zu Ihrer zuvor er­stell­ten Anwendung. Im Bereich „General In­for­ma­ti­on“ finden Sie das Feld „In­ter­ac­tions Endpoint URL“. Tragen Sie hier die Produktiv-URL aus n8n ein und speichern Sie die Än­de­run­gen.

Si­gna­tur­prü­fung und Ping-Ve­ri­fi­ka­ti­on

Damit Discord Ihre In­ter­ac­tions Endpoint URL ak­zep­tiert und dauerhaft verwendet, muss Ihr Endpoint zwei zentrale An­for­de­run­gen erfüllen:

  1. Ping-Ve­ri­fi­ka­ti­on be­ant­wor­ten: Beim Ein­rich­ten sendet Discord au­to­ma­tisch eine Test­an­fra­ge mit folgendem Inhalt:

    {
    "type": 1
    }

    Auf diese muss Ihr Endpoint un­ver­än­dert mit einer so­ge­nann­ten Pong-Antwort reagieren. Diese si­gna­li­siert, dass Ihr Endpoint er­reich­bar ist. Folgende Antwort sollte daher gesendet werden:

    {
        "type": 1}
  2. Si­gna­tur­prü­fung durch­füh­ren: Zu­sätz­lich überprüft Discord jede ein­ge­hen­de Anfrage anhand von Si­cher­heits-Headern X-Signature-Ed25519 und X-Signature-Timestamp. Diese Signatur stellt sicher, dass die Anfrage tat­säch­lich von Discord stammt und auf ihrem Weg nicht ma­ni­pu­liert wurde. Für pro­duk­ti­ve An­wen­dun­gen ist diese Prüfung ver­pflich­tend.

Hinweis

Die voll­stän­di­ge Si­gna­tur­prü­fung (Ed25519) lässt sich in n8n nicht ohne zu­sätz­li­che Logik oder externe Dienste umsetzen. n8n bietet stan­dard­mä­ßig keine native Un­ter­stüt­zung zur Ve­ri­fi­ka­ti­on dieser Si­gna­tu­ren.

Für einfache Tests kann der Endpoint dennoch verwendet werden. Für einen stabilen pro­duk­ti­ven Betrieb ist es jedoch nötig, eine zu­sätz­li­che Midd­le­wa­re vor­zu­schal­ten, die die Si­gna­tur­prü­fung übernimmt.

Typischer Work­around für pro­duk­ti­ve Setups

In der Praxis wird häufig folgende Ar­chi­tek­tur verwendet:

Discord -> Midd­le­wa­re (Si­gna­tur­prü­fung) -> n8n Webhook

Die Midd­le­wa­re kann bei­spiels­wei­se als kleiner ei­gen­stän­di­ger Dienst umgesetzt werden, also in Form eines einfachen Node.js-Servers, einer ser­ver­lo­sen Funktion (zum Beispiel über Cloud­fla­re Workers) oder als Be­stand­teil eines be­stehen­den Backend-Services. Wichtig ist dabei nicht die konkrete Tech­no­lo­gie, sondern die Funktion dieser Zwi­schen­schicht.

Diese Kom­po­nen­te sitzt logisch zwischen Discord und Ihrer n8n-Instanz und übernimmt mehrere zentrale Aufgaben. Zunächst prüft sie jede ein­ge­hen­de Anfrage mithilfe der über­mit­tel­ten Signatur, um si­cher­zu­stel­len, dass die Daten tat­säch­lich von Discord stammen und nicht ma­ni­pu­liert wurden. Zu­sätz­lich be­ant­wor­tet sie die von Discord gesendete Ping-Anfrage korrekt, die zur Ve­ri­fi­ka­ti­on des Endpoints er­for­der­lich ist.

Erst nachdem diese Prüfungen er­folg­reich ab­ge­schlos­sen wurden, leitet die Midd­le­wa­re die Anfrage an den ei­gent­li­chen n8n-Webhook weiter. Auf diese Weise erhält Ihr n8n-Workflow aus­schließ­lich va­li­dier­te und ver­trau­ens­wür­di­ge Daten und kann wie gewohnt mit der Ver­ar­bei­tung fort­fah­ren.

Hinweis

Discord ak­zep­tiert nur HTTPS-URLs für den In­ter­ac­tions Endpoint. Stellen Sie daher sicher, dass Ihre n8n-Instanz über HTTPS er­reich­bar ist, bei­spiels­wei­se über eine eigene Domain mit SSL-Zer­ti­fi­kat.

Damit ist die Ver­bin­dung her­ge­stellt: Immer wenn ein User ein Slash-Kommando ausführt, sendet Discord die ent­spre­chen­den Daten au­to­ma­tisch an Ihren n8n-Discord-Workflow, der daraufhin gestartet wird.

Schritt 8: Slash-Command für den Bot erstellen

Damit Nut­ze­rin­nen und Nutzer Ihren Bot direkt im Chat auslösen können, benötigen Sie einen so­ge­nann­ten Slash-Command. Solche so­ge­nann­ten Ap­pli­ca­ti­on Commands werden über die Discord API erstellt.

Bevor Sie das Slash-Kommando anlegen, benötigen Sie zwei wichtige Werte aus dem Discord Developer Portal:

  • Ap­pli­ca­ti­on ID: Diese finden Sie im Bereich „General In­for­ma­ti­on“ Ihrer Anwendung.
  • Bot-Token: Dieses befindet sich im Bereich „Bot“. Behandeln Sie das Token ver­trau­lich, da es den Zugriff auf Ihren Bot er­mög­licht.

Der Command selbst wird über einen HTTP-Request an die Discord API angelegt. Sie können diesen Request entweder über ein Terminal oder direkt über ein Tool wie n8n ausführen. Ein Beispiel mit curl sieht wie folgt aus:

curl -X POST https://discord.com/api/v10/applications/IHRE_APPLICATION_ID/commands \
-H "Authorization: Bot IHR_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
    "name": "ask",
    "description": "Stellen Sie dem Bot eine Frage",
    "options": [
        {
            "name": "frage",
            "description": "Ihre Frage",
            "type": 3,
            "required": true
        }
    ]
}'
bash

Ersetzen Sie dabei:

  • IHRE_APPLICATION_ID durch Ihre tat­säch­li­che Ap­pli­ca­ti­on ID
  • IHR_BOT_TOKEN durch Ihr Bot-Token

Mit diesem Request wird ein neuer Slash-Befehl mit dem Namen /ask erstellt. Zu­sätz­lich wird eine Ein­ga­be­op­ti­on mit dem Namen „frage“ definiert, über die Nut­ze­rin­nen und Nutzer eine Nachricht an den Bot übergeben können.

Nachdem der Request er­folg­reich aus­ge­führt wurde, steht der neue Command zur Verfügung. Öffnen Sie Ihren Discord-Server und klicken Sie in ein Text­ein­ga­be­feld. Geben Sie ein / ein. Ihr neuer Befehl sollte nun au­to­ma­tisch in der Vor­schlags­lis­te er­schei­nen.

Schritt 9: Ein­ge­hen­de Daten aus Discord ver­ar­bei­ten

Sobald ein Slash-Command aus­ge­führt wird, sendet Discord eine struk­tu­rier­te Anfrage an Ihren Webhook. Um die ent­hal­te­nen In­for­ma­tio­nen wei­ter­zu­ver­ar­bei­ten, fügen Sie hinter dem Webhook einen Set-Node hinzu. Dort ex­tra­hie­ren Sie die re­le­van­ten Daten, ins­be­son­de­re den Be­nut­zer­na­men und die ein­ge­ge­be­ne Nachricht mithilfe von JSON-Aus­drü­cken.

Beispiel:

{
"username": "{{$json.member.user.username}}",
"message": "{{$json.data.options[0].value}}"
}
json

Damit stehen Ihnen die wich­tigs­ten In­for­ma­tio­nen in einer über­sicht­li­chen Form zur Verfügung.

Hinweis

Die exakten Felder können je nach Command-Typ, Kontext und Op­ti­ons­struk­tur variieren; prüfen Sie daher in n8n immer die tat­säch­li­che Ausgabe der letzten Aus­füh­rung.

Bild: n8n: Daten verarbeiten
Die ein­ge­hen­den Daten aus Discord ver­ar­bei­ten Sie in n8n mit einem Set-Node.

Schritt 10: Nachricht an ein KI-Modell übergeben

Im nächsten Schritt verbinden Sie Ihren Workflow mit einem LLM. In n8n können Sie dafür entweder den OpenAI-Node verwenden oder mit einem HTTP-Request-Node direkt eine API an­spre­chen. Der aktuelle OpenAI-Node in n8n un­ter­stützt die OpenAI-Responses-API. Für Ein­stei­ge­rin­nen und Ein­stei­ger ist der ein­fachs­te Weg meistens der OpenAI-Node.

Wenn Sie den Node zum ersten Mal verwenden, müssen Sie zunächst Ihre Zu­gangs­da­ten hin­ter­le­gen. Klicken Sie im Node auf „Cre­den­ti­als“ und wählen Sie „Create New Cre­den­ti­al“. Tragen Sie dort Ihren API-Schlüssel ein und speichern Sie die Zu­gangs­da­ten.

An­schlie­ßend kon­fi­gu­rie­ren Sie den Node so, dass die ein­ge­hen­de Discord-Nachricht an das Modell übergeben wird. Wählen Sie eine Text- be­zie­hungs­wei­se Nach­rich­ten­ope­ra­ti­on und tragen Sie einen Prompt ein, der der KI den ge­wünsch­ten Rahmen vorgibt. Eine einfache Vorlage ist zum Beispiel:

Sie sind ein hilfreicher Assistent in einem Discord-Server.
Antworten Sie freundlich und verständlich in maximal fünf Sätzen.
Benutzer: {{$json.username}}
Nachricht: {{$json.message}}
txt

Achten Sie darauf, dass Sie die Werte username und message nicht manuell eintippen, sondern als Ausdrücke aus dem vor­he­ri­gen Node über­neh­men.

Schritt 11: Antwort für Discord auf­be­rei­ten

Die Antwort eines KI-Nodes besteht in n8n oft nicht nur aus reinem Text, sondern zu­sätz­lich aus Struktur- und Metadaten. Damit Discord später nur die ei­gent­li­che Antwort erhält, bereiten Sie das Ergebnis in einem weiteren Schritt auf. Fügen Sie hinter dem KI-Node wieder einen Set-Node ein. Legen Sie dort ein neues Feld mit dem Namen reply an. In dieses Feld über­neh­men Sie den Ant­wort­text aus dem Ergebnis des KI-Nodes.

Ein typisches Beispiel sieht so aus:

{
"reply": "{{$json.output[0].content[0].text}}"
}
json

Falls Ihre Ausgabe anders struk­tu­riert ist, können Sie das leicht prüfen, indem Sie nach einem Testlauf im OpenAI-Node auf dessen Output schauen. Dort sehen Sie genau, an welcher Stelle der ei­gent­li­che Ant­wort­text liegt.

Optional können Sie die Antwort zu­sätz­lich for­ma­tie­ren, zum Beispiel mit einem Präfix. So könnte aus der rohen KI-Antwort eine etwas schönere Discord-Ausgabe werden:

{
"reply": "**KI-Bot:** {{$json.reply}}"
}
json

Schritt 12: Antwort direkt an Discord zu­rück­ge­ben

Dieser Schritt ist besonders wichtig, weil Discord bei In­ter­ac­tions keine normale, beliebige Webhook-Antwort erwartet. Statt­des­sen muss Ihr Endpoint auf die Slash-Command-Anfrage mit einer gültigen In­ter­ac­tion-Response antworten.

In n8n gibt es dafür einen prak­ti­ka­blen Weg: Der Webhook-Node wartet, bis der Workflow fertig ist, und gibt dann das Ergebnis des letzten Schritts zurück. Der Webhook-Node kann nämlich so kon­fi­gu­riert werden, dass er nicht sofort antwortet, sondern erst dann, wenn der letzte Node im Workflow durch­ge­lau­fen ist.

Klicken Sie dazu wieder auf Ihren Webhook-Node am Anfang des Workflows. Suchen Sie dort den Bereich „Respond“. Wählen Sie hier nicht die sofortige Antwort, sondern die Option „When Last Node Finishes.“

Bild: n8n: Webhook bearbeiten
Be­ar­bei­ten Sie Ihren Webhook in n8n, sodass er dann antwortet, wenn der letzte Node fertig ist.
Tipp

Beachten Sie die Rate Limits von Discord: Sowohl Webhooks als auch API-Aufrufe sind begrenzt. Discord verwendet so­ge­nann­te dy­na­mi­sche Rate Limits für Webhooks und API-Aufrufe. Diese un­ter­schei­den sich je nach Endpoint und Nutzung. Werden zu viele Anfragen in kurzer Zeit gesendet, antwortet Discord mit einem Fehler (HTTP 429). Um Probleme zu vermeiden, sollten Antworten daher nicht un­ge­bremst gesendet werden, sondern zeitlich gesteuert oder verzögert erfolgen.

Darunter finden Sie die Ein­stel­lung für die Response-Daten. Wählen Sie dort „First Entry JSON“, damit n8n am Ende genau das JSON-Objekt zu­rück­gibt, das aus dem letzten Node kommt.

Damit Discord die Antwort ak­zep­tiert, muss Ihr letzter Node ein JSON-Objekt ausgeben, das ungefähr so aussieht:

{
"type": 4,
"data": {
"content": "{{$json.reply}}"
}
}
json

Praktisch bedeutet das: Sie fügen hinter Ihrem bis­he­ri­gen Reply-Node noch einen weiteren Set-Node ein. In diesem letzten Node legen Sie die Felder so an, dass genau diese Struktur entsteht. Ein Feld type erhält den Wert 4. Ein weiteres Feld data enthält wiederum das Unterfeld content mit Ihrer KI-Antwort.

Bild: n8n: Set-Node mit Formatierung
Im letzten Node for­ma­tie­ren Sie die Daten mithilfe von JSON.
Hinweis

Bei In­ter­ac­tions in Discord gilt eine wichtige Ein­schrän­kung: Ihr Endpoint muss innerhalb von 3 Sekunden eine erste Antwort zu­rück­ge­ben. Erfolgt in dieser Zeit keine gültige Response, wird die Anfrage von Discord verworfen und das zu­ge­hö­ri­ge In­ter­ac­tion-Token ungültig. Gerade bei der Nutzung von KI-Modellen kann es jedoch schnell passieren, dass die Ver­ar­bei­tung länger dauert. In solchen Fällen ist es sinnvoll, nicht direkt eine fertige Antwort zu­rück­zu­ge­ben, sondern zunächst eine so­ge­nann­te ver­zö­ger­te Antwort (deferred response) zu senden.

Dafür verwenden Sie den Response-Typ type: 5 (DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE). Dieser si­gna­li­siert Discord, dass die Anfrage an­ge­nom­men wurde und die ei­gent­li­che Antwort später folgt. An­schlie­ßend können Sie die fertige Antwort über eine Follow-up-Nachricht zu­rück­ge­ben. Dafür bleibt das In­ter­ac­tion-Token bis zu 15 Minuten gültig.

Schritt 13: Den Workflow aus­führ­lich testen

Bevor Sie den Bot dauerhaft verwenden, sollten Sie den gesamten Ablauf sorg­fäl­tig testen. Ak­ti­vie­ren Sie zunächst den Workflow, denn Produktiv-Webhook-URLs funk­tio­nie­ren in n8n nur bei aktivem Workflow. Außerdem un­ter­schei­det n8n klar zwischen Test- und Produktiv-URLs. Die Produktiv-URL ist die richtige Adresse für Discord. Wechseln Sie danach zu Ihrem Discord-Server und geben Sie den Slash-Befehl ein, zum Beispiel:

/ask frage: Was ist n8n?

Sobald Sie den Befehl absenden, sollte Discord die Anfrage an Ihren In­ter­ac­tions Endpoint senden. Öffnen Sie an­schlie­ßend in n8n die Exe­cu­ti­ons oder die Aus­füh­rungs­lis­te. Dort können Sie jeden Schritt einzeln anklicken und prüfen, welche Daten her­ein­ge­kom­men sind und wie sie wei­ter­ver­ar­bei­tet wurden. Wenn alles richtig funk­tio­niert, wird eine Antwort in Discord gesendet.

Prak­ti­sche An­wen­dungs­bei­spie­le für Discord-Bots mit n8n und KI

Mit n8n können Sie nicht nur einen einfachen Ant­wort­bot bauen, sondern viele un­ter­schied­li­che Discord-Workflows au­to­ma­ti­sie­ren. Die folgenden Beispiele zeigen drei pra­xis­na­he Ideen, die sich auch für Ein­stei­ge­rin­nen und Ein­stei­ger gut nach­voll­zie­hen lassen.

Beispiel 1: FAQ-Bot für Community-Fragen

Ein FAQ-Bot be­ant­wor­tet wie­der­keh­ren­de Stan­dard­fra­gen au­to­ma­tisch. Das ist besonders nützlich, wenn in Ihrem Server immer wieder ähnliche Fragen zu Produkten, Regeln, Öff­nungs­zei­ten oder Abläufen gestellt werden. Die KI kann dabei eine ein­ge­hen­de Frage in­ter­pre­tie­ren und in einer freund­li­chen, kompakten Form be­ant­wor­ten. Optional können Sie zu­sätz­lich fest hin­ter­leg­te In­for­ma­tio­nen aus einer Tabelle, einer Datenbank oder einem internen Dokument abrufen. So erhalten Nut­ze­rin­nen und Nutzer schneller eine Antwort, ohne dass Mo­de­ra­to­ren jede Frage manuell be­ant­wor­ten müssen. Gerade in Support- oder Community-Servern spart das viel Zeit.

Bild: n8n: Discord FAQ-Bot Beispiel
Für einen FAQ-Bot nutzen Sie nicht nur KI, sondern auch eine Datenbank mit zuvor hin­ter­leg­ten Fragen.

Beispiel 2: Mo­de­ra­ti­ons-Bot zur Vor­prü­fung von Nach­rich­ten

Ein Mo­de­ra­ti­ons-Bot kann neue Nach­rich­ten ana­ly­sie­ren und pro­ble­ma­ti­sche Inhalte früh­zei­tig erkennen. Dabei prüft die KI zum Beispiel, ob eine Nachricht be­lei­di­gend, spamartig oder the­ma­tisch unpassend ist. In n8n können Sie an­schlie­ßend Regeln hin­ter­le­gen, was im je­wei­li­gen Fall passieren soll. So lässt sich etwa eine Warnung an ein Mo­de­ra­ti­ons­team senden oder eine Nachricht in einen Prüfkanal wei­ter­lei­ten. Der Bot ersetzt keine mensch­li­che Mo­de­ra­ti­on, kann aber dabei helfen, Inhalte schneller zu sortieren. Vor allem in größeren Com­mu­ni­tys kann das den Mo­de­ra­ti­ons­auf­wand deutlich re­du­zie­ren.

Bild: n8n: Moderations-Bot Beispiel
In Ver­bin­dung mit Discord kann n8n genutzt werden, um einen Bot zu bauen, der Spam checkt.

Beispiel 3: Zu­sam­men­fas­sungs-Bot für längere Dis­kus­sio­nen

In aktiven Discord-Servern gehen wichtige In­for­ma­tio­nen schnell zwischen vielen Nach­rich­ten unter. Ein Zu­sam­men­fas­sungs-Bot kann in be­stimm­ten Zeit­ab­stän­den oder auf Anfrage mehrere Nach­rich­ten bündeln und eine kurze Übersicht erstellen. Das eignet sich zum Beispiel für Pro­jekt­ser­ver, Lern­com­mu­ni­ties oder interne Team­ka­nä­le. n8n sammelt dafür die re­le­van­ten Nach­rich­ten, übergibt sie an die KI und postet an­schlie­ßend eine Zu­sam­men­fas­sung in einen de­fi­nier­ten Kanal. So müssen nicht alle Be­tei­lig­ten jeden Ge­sprächs­ver­lauf komplett nachlesen. Das ver­bes­sert die Übersicht und spart Zeit.

Bild: n8n: Zusammenfassungs-Bot Beispiel
Wenn Sie pe­ri­odisch viele Nach­rich­ten aus Discord mit n8n holen, können Sie die KI nutzen, um diese zu­sam­men­zu­fas­sen.
Zum Hauptmenü