So verbinden Sie n8n mit Discord zur Automatisierung von Aufgaben

Es gibt viele Plattformen, die Sie mit n8n integrieren können. Discord ist eine der beliebtesten Optionen. Dank dieser Kompatibilität können Sie verschiedene Aufgaben in der Messaging-App automatisieren – vom Versenden einer Benachrichtigung bis hin zur Benutzerverwaltung.

In diesem Artikel erklären wir, wie Sie n8n mit Discord integrieren. Wir zeigen Ihnen, wie Sie dafür einen Webhook, eine HTTP-Anfrage und OpenAI einsetzen, damit Sie je nach Ihren Anforderungen die passende Methode finden.

Bevor Sie loslegen, sehen wir uns zunächst die Voraussetzungen und die erste Einrichtung von n8n an.

n8n für Discord-Workflows einrichten

Bevor wir mit den Schritten beginnen, richten wir n8n ein. Diese Plattform bietet einen offiziell gehosteten Tarif an, wir werden sie jedoch auf einem virtuellen privaten Server (VPS) selbst hosten, weil das günstiger ist.

Da n8n relativ schlank ist, reicht ein System mit 4 GB SSD-Speicher und 2 GB RAM aus.

Wenn Sie keinen Server haben, empfehlen wir die n8n self-hosted -Lösung von Hostinger, die ab €5.49/Monat erhältlich ist.

Nach dem Kauf eines VPS-Hosting-Tarifs installieren Sie n8n auf Ihrem Server. Hostinger-Nutzer können dies mit einem Klick über die OS-Vorlage erledigen, was den Vorgang deutlich vereinfacht.

Öffnen Sie n8n nach der Installation über die IP-Adresse Ihres Servers auf Port 5678. Andernfalls können Sie über n8n.hostname.com darauf zugreifen, wobei hostname.com der tatsächliche Hostname Ihres Servers ist.

Schließen Sie die Einrichtung im n8n-Dashboard ab, indem Sie ein Konto und ein Projekt erstellen.

In diesem Abschnitt erklären wir, wie Sie Discord in n8n mit einem Webhook, OpenAI und einer HTTP-Anfrage integrieren. Da sich jede Plattform für unterschiedliche Automatisierungs-Workflows und Anwendungsfälle eignet, erläutern wir auch, wann Sie sie am besten einsetzen.

So integrieren Sie n8n mit Discord und Webhook

Ein Webhook ist eine schlanke, ereignisgesteuerte Kommunikationsmethode, mit der mehrere Anwendungen über HTTP miteinander kommunizieren können. Es ist eine vielseitige Methode, einen n8n-Workflow auszulösen.

Ein Webhook wird gesendet, nachdem eine zuvor festgelegte bestimmte Aktion eingetreten ist. Je nachdem, wie Sie es definieren, kann diese Aktion unterschiedliche Ereignisse auslösen.

Wenn ein Webhook startet, löst er in Discord über n8n eine Aktion aus, zum Beispiel das Senden einer Nachricht oder das Löschen eines Kanals.

Zu Demonstrationszwecken erstellen wir eine einfache Integration, die eine Nachricht in Discord sendet, wenn der Webhook aufgerufen wird:

  1. Öffnen Sie Discord und erstellen Sie einen neuen Webhook. Speichern Sie die URL und kehren Sie zu n8n zurück. 
  2. Klicken Sie oben rechts auf das Symbol +, um einen neuen Knoten zu erstellen. Wählen Sie Webhook aus.
  3. Doppelklicken Sie auf den Webhook-Knoten, um das Konfigurationsmenü zu öffnen. 
  4. Wählen Sie die HTTP-Methode aus, die den Hook auslöst. Wir wählen GET aus.
  1. Klicken Sie auf Back to canvas.
  2. Erstellen Sie einen neuen Knoten und wählen Sie Discord aus. Wählen Sie die Art von Aktion aus, die der Webhook auslösen soll, zum Beispiel das Senden einer Nachricht.
  3. Geben Sie die folgenden Konfigurationen ein:
  • Verbindungstyp: Webhook.
  • Anmeldedaten für den Discord-Webhook: der Discord-Webhook, den Sie zuvor erstellt haben.
  • Nachricht: die Nachricht, die Sie an Ihren Discord-Server senden möchten.
  1. Kehren Sie zum Canvas zurück und klicken Sie auf Test workflow.
  2. Öffnen Sie die Webhook-URL in Ihrem Browser; daraufhin wird in Ihrem Discord-Server eine neue Nachricht angezeigt. 

Beachten Sie, dass dies eine grundlegende Implementierung von n8n mit Discord über einen Webhook ist. Durch das Hinzufügen weiterer Knoten können Sie einen komplexeren Workflow automatisieren.

So können Sie beispielsweise dafür sorgen, dass eine neue Benutzerregistrierung in Discord einen Webhook auslöst, der der betreffenden Person anschließend eine Rolle zuweist. Weitere Beispiele und Vorlagen finden Sie auf der Integrationsseite von n8n für Discord und Webhooks.

Wichtig! Da die Discord-API die Anzahl der Aufrufe für Webhooks und Bots begrenzt, sollten Sie vermeiden, in kurzer Zeit zu viele Anfragen zu senden.

So integrieren Sie n8n mit Discord und OpenAI

Wenn Sie n8n mit Discord über OpenAI integrieren, entsteht ein KI-gestützter Bot, der Nachrichten analysieren, Inhalte verfassen oder auf Ihrem Server nach Informationen suchen kann.

Die Schritte, um n8n mit Discord und OpenAI zu integrieren, ähneln denen bei der Verwendung eines Webhooks, erfordern jedoch einen zusätzlichen Knoten. Außerdem benötigen Sie einen OpenAI-API -Schlüssel, um auf das Large Language Model (LLM) zuzugreifen.

Wenn Sie noch keinen haben, öffnen Sie die Seite von OpenAI zum Generieren von API-Schlüsseln und melden Sie sich in Ihrem Konto an. Klicken Sie anschließend auf Create new secret key.

Geben Sie einen Namen für Ihren geheimen Schlüssel ein und klicken Sie auf Create secret key. Kopieren Sie Ihre neue API-Anmeldeinformation und bewahren Sie sie an einem sicheren Ort auf. Klicken Sie auf Done, um den Vorgang abzuschließen.

Warnung! Sobald Sie auf Done klicken, können Sie den vollständigen API-Schlüssel nicht mehr anzeigen. Stellen Sie sicher, dass Sie die Zugangsdaten korrekt kopieren und an einem sicheren Ort speichern, bevor Sie fortfahren.

Sie haben zum Beispiel eine Anwendung, die Nachrichten entgegennimmt. Sie möchten einen Workflow, der die eingegebene Nachricht auf schädliche Inhalte prüft und die Entwickler darüber benachrichtigt. So gehen Sie dabei vor:

  1. Fügen Sie einen Webhook-Knoten hinzu. 
  2. Öffnen Sie den Knoten und wählen Sie die Methode POST aus, die den Hook auslöst, wenn ein Benutzer eine Nachricht sendet.
  3. Kopieren Sie die Webhook-URL und fügen Sie sie Ihrer Anwendung hinzu.
  4. Kehren Sie zu n8n zurück und fügen Sie einen OpenAI-Knoten hinzu. Wählen Sie Classify Text for Violations aus. 
  5. Öffnen Sie den OpenAI-Knoten. Klicken Sie auf Create new credential und geben Sie Ihren API-Schlüssel ein.
  6. Wählen Sie für das Text input die Option Expression und geben Sie den folgenden Prompt ein. Dadurch wird die empfangene Nachricht zur Auswertung an OpenAI weitergeleitet:
Bewerten Sie Folgendes: {{ $json.message.text }}
  1. Kehren Sie zur Canvas zurück und fügen Sie einen Switch-Knoten hinzu, um die Ausgabe entsprechend dem Auswertungsergebnis weiterzuleiten.
  2. Öffnen Sie den Knoten Switch und fügen Sie zwei Regeln hinzu: eine für den Wert true und eine für den Wert false von {{ $json.flagged }}.
  1. Fügen Sie den Discord send message-Knoten hinzu, konfigurieren Sie den Webhook und geben Sie die automatisierte Nachricht ein. 
  2. Fügen Sie den No operation-Knoten hinzu, den wir verwenden, um nicht markierte Nachrichten zu ignorieren. 
  3. Verbinden Sie den TRUE-Ausgang des Switch-Knoten mit dem Discord-Knoten und den FALSE-Ausgang mit dem No Operation-Knoten.

Wenn ein Benutzer nun in Ihrer Anwendung eine Nachricht eingibt, prüft das OpenAI-LLM diese auf schädliche Inhalte. n8n sendet eine Discord-Benachrichtigung, wenn das Modell die Nachricht als unangemessen einstuft, und unternimmt andernfalls nichts.

Mock-Daten verwenden

Wenn Sie die Webhook-URL nicht aufrufen können, richten Sie Mock-Daten ein. Das reicht aus, um den Workflow zu testen, ohne den Webhook ordnungsgemäß auszulösen.

Auf der Discord- und OpenAI-Integrationsseite von n8n finden Sie weitere Beispiel-Workflows.

n8n mit HTTP Request integrieren

Für einen komplexeren Workflow mit direkten API-Interaktionen können Sie n8n über HTTPS-Anfragen mit Discord und anderen Plattformen integrieren. Dafür gibt es zwei Möglichkeiten: über Knotenparameter oder durch das Importieren des cURL-Befehls.

Für eine einfache Anfrage reichen die Standardparameter des Knotens aus. In der Zwischenzeit sollten Sie den cURL-Befehl importieren, wenn der Dienst, den Sie integrieren möchten, eine spezifische API-Konfiguration bereitstellt.

Als Demo integrieren wir n8n per HTTP-Anfragen mit Discord und YouTube. In diesem Workflow möchten wir neu hochgeladene Videos zusammenfassen und die Zusammenfassung an Discord senden. So gehen Sie dabei vor:

  1. Fügen Sie einen neuen RSS-Feed -Knoten hinzu, um neue Uploads auf Ihrem YouTube-Kanal zu verfolgen. 
  2. Öffnen Sie den RSS-Knoten und geben Sie die folgende Feed-URL ein. Ersetzen Sie CHANNEL_ID durch Ihre tatsächliche YouTube-Kanal-ID.
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL _ID
  1. Rufen Sie Ihren YouTube-Kanal auf und erstellen Sie die OAuth 2.0-Client-ID und den geheimen Schlüssel. Bewahren Sie sie anschließend an einem sicheren Ort auf.
  2. Kehren Sie zu n8n zurück und fügen Sie einen neuen HTTP-Request -Knoten hinzu. Fügen Sie im Tab „Parameters“ die folgende Konfiguration hinzu:
    • Methode: GET
    • URL: https://www.googleapis.com/youtube/v3/captions
    • Authentifizierung: Vordefinierter Anmeldedatentyp
    • Anmeldedatentyp: YouTube OAuth2 API
    • YouTube-OAuth2-API: Ihre Client-ID und Ihr geheimer Schlüssel 
    • Abfrageparameter senden: aktiviert
    • Abfrageparameter angeben: mit den Feldern unten
  3. Geben Sie in die Felder für die Abfrageparameter die folgende Konfiguration ein:
    • Name: videoid
    • Wert: {{ $json.id.match(/(?:[^:]*:){2}\s*(.*)/)[1] }}
    • Name: Teil
    • Wert: Snippet
  1. Erstellen Sie einen Edit Fields-Knoten und öffnen Sie sein Konfigurationsfenster. 
  2. Klicken Sie auf Add fields, geben Sie einen Namen ein und wählen Sie Object aus. Geben Sie dann die folgende Einstellung ein:
{{ $jmespath( $json.items, "[?snippet.language == 'de'] | [0]" ) }}
  1. Fügen Sie einen weiteren HTTP Request-Knoten hinzu. Verwenden Sie dieselbe Konfiguration wie im vorherigen HTTP-Request-Knoten, deaktivieren Sie jedoch Send Query Parameters und fügen Sie stattdessen die folgende URL ein:
https://www.googleapis.com/youtube/v3/captions/{{ $json.caption.id }}
  1. Fügen Sie einen Extract from Text File-Knoten hinzu und ändern Sie Destination Output Field in Content.
  2. Fügen Sie einen OpenAI-Knoten hinzu, um das Videotranskript zusammenzufassen. Wählen Sie Text als Ressource und verwenden Sie den folgenden Prompt:
Fasse dieses Transkript in drei knappen Stichpunkten zusammen, die erklären, worum es in dem Video geht und warum es sehenswert ist: {{ $json["content"] }}
  1. Fügen Sie einen Discord-Knoten hinzu, um die Nachricht per Webhook zu senden. Ihre Nachricht könnte wie folgt aussehen:
Neues Video online! **{{ $('YouTube Video Trigger').item.json["title"] }}**

{{ $json["message"]["content"] }}

[Jetzt ansehen]({{ $('YouTube Video Trigger').item.json["link"] }}) und gerne kommentieren oder teilen!

Einen Discord-Bot mit n8n einrichten

Dank n8ns Integration mit verschiedenen Plattformen können Sie mit minimalem Programmieraufwand ganz einfach einen Discord-Bot für unterschiedliche Zwecke erstellen.

Traditionell hätten Sie die Funktion des Bots manuell programmieren und sie für die Datenverarbeitung in externe Dienste integrieren müssen. Mit n8n fügen Sie einfach die erforderlichen Knoten hinzu und verbinden sie, um den Datenfluss einzurichten.

n8n hat derzeit jedoch keinen Discord-Trigger-Knoten und kann daher keine Nachrichten von einem Server lesen. Dennoch können wir weiterhin Eingaben entgegennehmen, indem wir einen einfachen Bot erstellen.

Erstellen wir zum Beispiel einen Bot, der anhand einer Discord-Nachricht ein Bild generiert. Beginnen wir mit dem n8n-Workflow:

  1. Fügen Sie einen Webhook-Knoten mit der Methode POST hinzu, um Ihre Discord-Nachricht weiterzuleiten. Kopieren Sie den Webhook und speichern Sie ihn für später.
  2. Fügen Sie einen OpenAI-Knoten hinzu, um ein Bild zu generieren, und konfigurieren Sie anschließend den API-Schlüssel Ihres OpenAI-Kontos. 
  3. Gehen Sie zum Feld Prompt, wählen Sie Ausdruck aus und geben Sie Folgendes ein:
{{ $json.body.content }}
  1. Fügen Sie einen Discord-Knoten ein, um eine Nachricht zu senden. Verwenden Sie die folgende Konfiguration:
    • Verbindungstyp: Bot-Token
    • Anmeldedaten für die Discord-Bot-API: Ihr Discord-Bot-Token
    • Server: Der Discord-Server, an den Sie das Bild senden möchten
    • Senden an: Kanal
    • Kanal: Der Discord-Kanal, an den Sie das Bild senden möchten 
    • Dateien: Daten

Dieser Workflow startet, sobald der Discord-Bot eine Nachricht empfängt, die Nachricht als Prompt an OpenAI sendet und das generierte Bild an Discord weiterleitet.

Konfigurieren wir nun den Discord-Bot. Hier sind die Schritte:

  1. Einen Discord-Bot erstellen und ihn auf Ihren Server einladen, den Programmierteil aber vorerst überspringen. 
  2. Öffnen Sie einen Code-Editor wie VSCode und erstellen Sie einen neuen Ordner mit zwei Dateien – main.py und .env.
  3. Geben Sie im Terminal von VSCode diesen Befehl ein, um die Python-Abhängigkeiten zu installieren:
python3 -m pip install discord python-dotenv requests
  1. Öffnen Sie main.py in VSCode und geben Sie den folgenden Code ein, um die Funktionalität Ihres Bots zu definieren:
# Import the required modules

import discord

import os

import logging

from discord.ext import commands 

from dotenv import load_dotenv

import requests

load_dotenv()

WEBHOOK_URL = os.getenv("WEBHOOK_URL")

# Create a Discord client instance and set the command prefix

intents = discord.Intents.all()

client = discord.Client(intents=intents)

bot = commands.Bot(command_prefix='!', intents=intents)

logging.basicConfig(

    level=logging.INFO,

    format='[%(asctime)s] [%(levelname)s]: %(message)s',

    handlers=[

        logging.FileHandler('bot.log'),

        logging.StreamHandler()

    ]

)

# Set the confirmation message when the bot is ready

@bot.event

async def on_ready():

    print(f'Logged in as {bot.user.name}')

@bot.event 

async def on_command_error(ctx, error):

    error_message = f'Error occured while processing command: {error}'

    logging.error(error_message)

    await ctx.send(error_message)

# Set the commands for your bot

@bot.command()

async def message(ctx, *, content: str = None):

    """Sends a message to the webhook when !message is used"""

    # Check if the user provided a message

    if not content:

        await ctx.send("Please provide a message after !message.")

        return

    # Prepare the payload for the webhook

    payload = {

        'username': ctx.author.display_name,

        'content': content,

        'avatar_url': ctx.author.avatar.url if ctx.author.avatar else None,

    }

    # Send the payload to the webhook URL

    try:

        response = requests.post(WEBHOOK_URL, json=payload)

        response.raise_for_status()

        await ctx.send("Message sent successfully!")

        print(f'Message forwarded: {content}')

    except requests.exceptions.RequestException as e:

        await ctx.send("Failed to send the message.")

        print(f'Failed to forward message: {e}')

# Retrieve token from the .env file

bot.run(os.getenv('TOKEN'))
  1. Öffnen Sie die Datei .env, und fügen Sie dann Ihr Bot-Token und den n8n-Webhook in die jeweiligen Platzhalter ein.
WEBHOOK_URL=your-webhook-url

TOKEN=your-discord-bot-token
  1. Speichern Sie beide Dateien mit Strg + S.

Starten Sie Ihren Bot jetzt, indem Sie oben rechts in VSCode auf die Schaltfläche Run klicken. Im Terminal sollte „Logged in as Bot-name“ angezeigt werden.

Rufen Sie n8n auf und starten Sie Ihren Workflow. Kehren Sie dann zu Ihrem Discord-Server zurück und versuchen Sie, mit dieser Nachricht ein Bild zu generieren:

!message Erstelle ein Bild von einer schwarzen Katze mit einem lila Zaubererhut

Ihr Bot sollte das KI-generierte Bild wie folgt zurückgeben.

Um einen komplexeren Discord-Bot zu erstellen, fügen Sie einfach weitere Knoten hinzu oder integrieren einen anderen Workflow. Sie können n8n zum Beispiel mit Google Sheets integrieren, um eine Zusammenfassung der Daten auf Ihrem Server zu veröffentlichen.

Fazit

Die Integration von n8n mit Discord ermöglicht es Ihnen, einen individuellen Workflow zu erstellen, um verschiedene Aufgaben zu automatisieren. Sie können zum Beispiel einen Bot zur Bildgenerierung, eine Pipeline zur Nachrichtenanalyse oder ein Tool für Benachrichtigungen erstellen.

Um Discord mit n8n zu integrieren, definieren Sie zunächst den Trigger, der Ihren Workflow startet. Verwenden Sie einen Webhook für einen einfacheren, ereignisgesteuerten Ablauf oder HTTP-Anfragen, um Daten aus APIs von Drittanbietern abzurufen.

Fügen Sie optional den OpenAI-Knoten hinzu, um die übergebenen Daten zu verarbeiten. So können Sie zum Beispiel Nachrichten, die über einen Webhook gesendet werden, zur Analyse an das LLM weiterleiten oder sie als Prompts für die Bildgenerierung verwenden.

Fügen Sie abschließend den Discord-Knoten hinzu, um auf Grundlage der Ausgabe des vorherigen Knotens eine Aktion auszuführen – vom Senden einer Nachricht bis zum Entfernen eines Benutzers von Ihrem Server.

Nachdem Sie gelernt haben, n8n mit Discord zu integrieren, ist es jetzt an der Zeit, Ihren eigenen benutzerdefinierten Workflow zu erstellen! Sie können entweder einen offiziell gehosteten Tarif erwerben oder n8n selbst auf der VPS-Plattform von Hostinger hosten.

Häufig gestellte Fragen (FAQ) zur Integration von n8n in Discord

Wie verbinde ich n8n mit Discord?

Fügen Sie in n8n einfach den Discord-Knoten hinzu und verbinden Sie ihn mit dem Trigger-Ereignis. Das auslösende Ereignis kann eine manuelle Aktion, ein Webhook oder eine HTTP-Anfrage sein.

Wählen Sie die Aktion aus, die Discord ausführen soll – vom Senden einer Antwortnachricht bis hin zur Verwaltung einer Benutzerrolle. Aktivieren Sie die Funktion anschließend, indem Sie einen Webhook oder ein Bot-Token hinzufügen.

Was kann ich mit n8n und Discord tun?

Mit n8n und Discord können Sie verschiedene Aufgaben automatisieren. Sie können zum Beispiel einen Workflow erstellen, der eine von einem Benutzer eingereichte Nachricht abruft und sie anhand der Moderationsregel von OpenAI filtert. Sie können auch einen automatisierten Bot erstellen, der eine Zusammenfassung eines neu hochgeladenen YouTube-Videos sendet.

Gibt es vorgefertigte Workflows für n8n und Discord?

Ja, n8n bietet von Nutzern geteilte, vorgefertigte Workflow-Vorlagen für Discord. Sie finden sie auf der n8n-Integrationsseite für Discord im Abschnitt Beliebte Möglichkeiten zur Nutzung der Discord-Integration. Wählen Sie einfach die gewünschte Vorlage aus, klicken Sie auf Vorlage verwenden und importieren Sie sie auf Ihren Server.

Alle Tutorial-Inhalte auf dieser Website unterliegen Hostingers strengen redaktionellen Standards und Normen.

Author
Erstellt von

Faradilla Ayunindya

Faradilla, auch bekannt als Ninda, ist Content Marketing Specialist bei Hostinger mit über fünf Jahren Erfahrung und einem zehnjährigen Hintergrund als Linguistin. Sie möchte Technologie für alle zugänglich machen, indem sie komplexe Anleitungen in klare und leicht verständliche Schritt-für-Schritt-Guides verwandelt. In ihrer Freizeit interessiert sie sich für Biowissenschaften oder schaut gerne lustige Tiervideos. Vernetzen Sie sich mit ihr auf LinkedIn.

Was unsere Kunden sagen

Kommentar schreiben

Please fill the required fields.Bitte akzeptieren Sie die Datenschutzklausel.Bitte füllen Sie die erforderlichen Felder aus und akzeptieren Sie die Datenschutzklausel.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.