Comment intégrer n8n à Discord

Il existe de nombreuses plateformes que vous pouvez intégrer à n8n, Discord étant l’une des options les plus populaires. Cette compatibilité vous permet d’automatiser diverses tâches dans l’application de messagerie, de l’envoi d’une notification à la gestion des utilisateurs.

Dans cet article, nous vous expliquons comment intégrer n8n à Discord. Nous vous présentons différentes méthodes utilisant un webhook, une requête HTTP et OpenAI afin que vous puissiez choisir celle qui correspond le mieux à vos besoins.

Avant de commencer, voyons les prérequis et la configuration initiale de n8n.

Configuration de n8n pour les workflows Discord

Avant de passer aux étapes, configurons n8n. Cette plateforme propose un plan hébergé officiellement, mais nous allons l’héberger nous-mêmes sur un serveur privé virtuel (VPS) car c’est plus abordable.

Comme n8n est relativement léger, un système avec 4 Go de stockage SSD et 2 Go de RAM suffit.

Si vous ne disposez pas d’un serveur, nous vous recommandons la solution n8n auto-hébergée de Hostinger, disponible à partir de €4.99 par mois.

Après avoir acheté un plan d’hébergement VPS, installez n8n sur votre serveur. Les utilisateurs de Hostinger peuvent le faire en un seul clic à l’aide du template OS, ce qui facilite grandement le processus.

Une fois installé, ouvrez n8n en utilisant l’adresse IP de votre serveur sur le port 5678. Sinon, vous pouvez y accéder à partir de n8n.hostname.com, où hostname.com est le nom d’hôte réel de votre serveur.

Dans le tableau de bord n8n, terminez la configuration en créant un compte et un projet.

Intégrations n8n populaires pour Discord

Dans cette section, nous vous expliquons comment intégrer Discord à n8n à l’aide d’un webhook, d’OpenAI et d’une requête HTTP. Chaque plateforme étant adaptée à différents workflows d’automatisation et cas d’utilisation, nous vous indiquons également quand il est préférable de l’utiliser.

Comment intégrer n8n à Discord et Webhook

Webhook est une méthode de communication légère et événementielle qui permet à plusieurs applications de communiquer via HTTP. Il s’agit d’une méthode polyvalente pour déclencher un workflow n8n.

Un webhook est envoyé après qu’une action spécifique préalablement déterminée se soit produite. Selon la façon dont vous la définissez, cette action peut correspondre à différents événements.

Lorsqu’un webhook démarre, il déclenche une action dans Discord à l’aide de n8n, telle que l’envoi d’un message ou la suppression d’un canal.

À des fins de démonstration, créons une intégration de base qui envoie un message dans Discord lorsque le webhook est appelé :

  1. Ouvrez Discord et créez un nouveau webhook. Enregistrez l’URL et revenez à n8n. 
  2. Cliquez sur l’icône + dans le coin supérieur droit pour créer un nouveau nœud. Sélectionnez Webhook.
  3. Double-cliquez sur le nœud Webhook pour ouvrir le menu de configuration. 
  4. Sélectionnez la méthode HTTP qui déclenchera le hook. Nous choisirons GET.
  1. Cliquez sur Back to canvas.
  2. Créez un nouveau nœud et sélectionnez Discord. Choisissez le type d’action que le webhook déclenchera, comme l’envoi d’un message.
  3. Entrez les configurations suivantes :
  • Type de connexion : Webhook.
  • Identifiants pour le webhook Discord : le webhook Discord que vous avez créé précédemment.
  • Message : le message que vous souhaitez envoyer à votre serveur Discord.
  1. Revenez au canevas et cliquez sur Test workflow.
  2. Ouvrez l’URL du webhook dans votre navigateur et un nouveau message apparaîtra sur votre serveur Discord. 

Notez qu’il s’agit d’une implémentation basique de n8n avec Discord à l’aide d’un webhook. En ajoutant d’autres nœuds, vous pouvez automatiser un workflow plus complexe.

Par exemple, vous pouvez faire en sorte qu’une nouvelle inscription d’utilisateur dans Discord déclenche un webhook, qui attribue ensuite un rôle à la personne. Consultez la page d’intégration de n8n avec Discord et webhook pour plus d’exemples et de templates.

Important ! Comme l’API Discord limite le nombre d’appels pour les webhooks et les bots, évitez d’envoyer trop de requêtes en peu de temps.

Comment intégrer n8n à Discord et OpenAI

L’intégration de n8n à Discord à l’aide d’OpenAI permet de créer un bot IA qui peut analyser des messages, rédiger du contenu ou rechercher des informations sur votre serveur.

Les étapes pour intégrer n8n à Discord et OpenAI sont similaires à celles utilisées pour un webhook, mais nécessitent un nœud supplémentaire. Vous avez également besoin d’une clé API OpenAI pour accéder au modèle linguistique à grande échelle (LLM).

Si vous n’en avez pas, ouvrez la page de génération de clés API d’OpenAI et connectez-vous à votre compte. Cliquez ensuite sur Create new secret key.

Entrez un nom pour votre clé secrète et cliquez sur Create secret key. Copiez vos nouveaux identifiants API et conservez-les en lieu sûr. Cliquez sur Done pour finir.

Attention ! Une fois que vous aurez cliqué sur Done, vous ne pourrez plus voir la clé API complète. Assurez-vous de bien copier l'identifiant et de le conserver en lieu sûr avant de continuer.

Par exemple, vous disposez d’une application qui permet de soumettre des messages. Vous souhaitez mettre en place un workflow pour évaluer le contenu des messages saisis et signaler tout contenu préjudiciable aux développeurs. Voici comment procéder :

  1. Ajoutez un nœud Webhook
  2. Ouvrez le nœud et sélectionnez la méthode POST qui déclenchera le hook lorsqu’un utilisateur soumettra un message.
  3. Copiez l’URL du Webhook et ajoutez-la à votre application.  
  4. Revenez à n8n et ajoutez un nœud OpenAI. Choisissez Classify Text for Violations (Classifier le texte pour détecter les violations). 
  5. Ouvrez le nœud OpenAI. Cliquez sur Create new credential et entrez votre clé API.  
  6. Pour le champ Text, choisissez Expression et entrez l’invite suivante. Cela permettra de transférer le message reçu à OpenAI pour évaluation :
Evaluate this: {{ $json.message.text }}
  1. Revenez au canevas et ajoutez un nœud Switch pour acheminer la sortie en fonction du résultat de l’évaluation.
  2. Ouvrez le nœud Switch et ajoutez deux règles pour les cas où la valeur {{ $json.flagged }} est true ou false.
  1. Ajoutez le nœud Discord send message, configurez le webhook et entrez le message automatisé. 
  2. Ajoutez le nœud No operation, que nous utiliserons pour ignorer les messages non signalés. 
  3. Connectez le point de terminaison TRUE du nœud Switch au nœud Discord et FALSE au nœud No operation.

Désormais, lorsqu’un utilisateur saisit un message dans votre application, OpenAI LLM l’évalue afin de détecter tout contenu préjudiciable. n8n enverra une notification Discord s’il juge le message inapproprié et ne fera rien dans le cas contraire.

Utilisation de données fictives

Si vous ne pouvez pas appeler l’URL du webhook, configurez des données fictives. Cela suffit pour tester le workflow sans déclencher correctement le webhook.

Consultez la page d’intégration Discord et OpenAI de n8n pour en savoir plus sur d’autres exemples de workflows.

Comment intégrer n8n avec une requête HTTP

Pour un workflow plus complexe avec des interactions API directes, vous pouvez intégrer n8n à Discord et à d’autres plateformes à l’aide de requêtes HTTPS. Il existe deux façons de procéder : en utilisant les paramètres de nœud et en important la commande cURL.

Pour une requête basique, l’utilisation des paramètres de nœud par défaut suffit. En revanche, vous devez importer la commande cURL si le service que vous souhaitez intégrer fournit une configuration API spécifique.

À titre de démonstration, intégrons n8n à Discord et YouTube à l’aide de requêtes HTTP. Dans ce workflow, nous voulons résumer les nouvelles vidéos téléversées et envoyer le synopsis à Discord. Voici comment procéder :

  1. Ajoutez un nouveau nœud RSS pour suivre les nouveaux téléversements sur votre chaîne YouTube. 
  2. Ouvrez le nœud RSS et entrez l’URL du flux suivante. Remplacez CHANNEL_ID par l’ID réel de votre chaîne YouTube.
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL _ID
  1. Accédez à votre chaîne YouTube et générez l’ID client OAuth 2.0 et la clé secrète. Une fois terminé, conservez-les dans un endroit sûr.
  2. Revenez à n8n et ajoutez un nouveau nœud de requête HTTP. Dans l’onglet Paramètres, ajoutez la configuration suivante :
    • Méthode : GET
    • URL : https://www.googleapis.com/youtube/v3/captions
    • Authentification : Type d’informations d’identification prédéfini
    • Type d’identifiants : API YouTube OAuth2
    • API YouTube OAuth2 : votre ID client et votre clé secrète 
    • Envoyer les paramètres de requête : activé
    • Spécifier les paramètres de requête : à l’aide des champs ci-dessous
  3. Dans les champs des paramètres de requête, entrez la configuration suivante :
    • Nom : videoid
    • Valeur : {{ $json.id.match(/(?:[^:]*:){2}\s*(.*)/)[1] }}
    • Nom : part
    • Valeur : snippet
  1. Créez un nœud Edit Fields et ouvrez son panneau de configuration. 
  2. Cliquez sur Add fields, ajoutez un nom et sélectionnez Objet. Ensuite, entrez le paramètre suivant :
{{ $jmespath( $json.items, "[?snippet.language == 'en'] | [0]" ) }}
  1. Ajoutez un autre nœud HTTP request. Utilisez la même configuration que pour le nœud HTTP request précédent, mais désactivez Send Query Parameters et insérez l’URL suivante à la place :
https://www.googleapis.com/youtube/v3/captions/{{ $json.caption.id }}
  1. Ajoutez un nœud Extract from Text File et modifiez le champ de sortie de destination en Contenu.
  2. Ajoutez un nœud OpenAI pour résumer la transcription de la vidéo. Choisissez Texte comme ressource et utilisez l’invite suivante :
Résumez <strong>cette </strong>transcription en trois points pour résumer le contenu de la vidéo et les raisons pour lesquelles il faut la regarder : {{ $json["content"] }}
  1. Ajoutez un nœud Discord pour envoyer le message à l’aide de Webhook. Votre message pourrait ressembler à ceci :
Nouvelle vidéo disponible !

**{{ $('YouTube Video Trigger').item.json["title"] }}**

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

[Regardez-la MAINTENANT]({{ $('YouTube Video Trigger').item.json["link"] }}) et n’oubliez pas de partager et de commenter !

Configurer un bot Discord avec n8n

Grâce à l’intégration de n8n avec diverses plateformes, vous pouvez facilement créer un bot Discord à des fins diverses avec un minimum de codage.

Traditionnellement, vous auriez dû écrire manuellement la fonction du bot et l’intégrer à des services externes pour le traitement des données. Avec n8n, il suffit d’ajouter les nœuds requis et de les connecter pour configurer le flux de données.

Cependant, n8n ne dispose actuellement pas d’un nœud de déclenchement Discord, ce qui signifie qu’il ne peut pas lire les messages provenant d’un serveur. Cela dit, nous pouvons tout de même recevoir des entrées en créant un bot basique.

Par exemple, créons un bot qui génère une image à partir d’un message Discord. Commençons par le workflow n8n :

  1. Ajoutez un nœud Webhook avec la méthode POST pour transférer votre message Discord. Copiez le webhook et conservez-le pour plus tard.
  2. Ajoutez un nœud OpenAI pour générer une image, puis configurez la clé API de votre compte OpenAI. 
  3. Accédez au champ Prompt, sélectionnez Expression et saisissez ce qui suit :
{{ $json.body.content }}
  1. Insérez un nœud Discord pour envoyer un message.  Utilisez la configuration suivante :
    • Type de connexion : jeton bot
    • Identifiants pour l’API Discord Bot : votre jeton Discord bot
    • Serveur : le serveur Discord auquel vous souhaitez envoyer l’image
    • Envoyer à : Canal
    • Canal : le canal Discord auquel vous souhaitez envoyer l’image 
    • Fichiers : données

Ce workflow démarre lorsque le bot Discord reçoit un message, envoie le message sous forme d’invite à OpenAI et transfère l’image générée à Discord.

Configurons maintenant le bot Discord. Voici les étapes à suivre :

  1. Créez un bot Discord et invitez-le sur votre serveur, mais ignorez le processus de codage pour l’instant. 
  2. Ouvrez un éditeur de code tel que VSCode et créez un nouveau dossier contenant deux fichiers : main.py et .env.
  3. Dans le terminal de VSCode, entrez cette commande pour installer les dépendances Python :
python3 -m pip install discord python-dotenv requests
  1. Ouvrez main.py dans VSCode et entrez le code suivant pour définir les fonctionnalités de votre bot :
# Importer les modules requis

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")

# Créer une instance client Discord et définir le préfixe de commande

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()

    ]

)

# Définir le message de confirmation lorsque le bot est prêt

@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)

# Définir les commandes pour votre bot

@bot.command()

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

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

    # Vérifier si l'utilisateur a fourni un message

    if not content:

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

        return

    # Préparer la charge utile pour le webhook

    payload = {

        'username': ctx.author.display_name,

        'content': content,

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

    }

    # Envoyer la charge utile à l’URL du webhook

    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}')

# Récupérer le token depuis le fichier .env

bot.run(os.getenv('TOKEN'))
  1. Ouvrez le fichier .env, puis ajoutez votre jeton bot et votre webhook n8n dans leurs emplacements respectifs.
WEBHOOK_URL=votre-url-webhook

TOKEN=votre-jeton-bot-discord
  1. Enregistrez les deux fichiers en appuyant sur Ctrl + S.

Maintenant, lançons votre bot en appuyant sur le bouton Run en haut à droite de VSCode. Vous devriez voir « Logged in as Bot-name » dans le terminal.

Rendez-vous sur n8n et lancez votre workflow. Revenez ensuite sur votre serveur Discord et essayez de générer une image à l’aide du message suivant :

!message create an image of a black cat with a purple wizard hat

Votre bot devrait renvoyer l’image générée par l’IA comme ceci.

Pour créer un bot Discord plus complexe, ajoutez simplement d’autres nœuds ou intégrez un autre workflow. Par exemple, vous pouvez intégrer n8n à Google Sheets pour publier un récapitulatif des données sur votre serveur.

Conclusion

L’intégration de n8n à Discord vous permet de créer un workflow personnalisé pour automatiser diverses tâches. Par exemple, vous pouvez créer un bot générateur d’images, un pipeline d’analyse de messages ou un outil d’alerte.

Pour intégrer Discord à n8n, commencez par définir le déclencheur qui lance votre flux de travail. Utilisez un webhook pour un flux plus simple et piloté par les événements ou des requêtes HTTP pour extraire des données à partir d’API tierces.

Vous pouvez éventuellement ajouter le nœud OpenAI pour traiter les données transmises. Par exemple, vous pouvez envoyer les messages transmis via un webhook au LLM pour analyse ou les utiliser comme invites pour générer des images.

Enfin, ajoutez le nœud Discord pour effectuer une action basée sur la sortie du nœud précédent, qui va de l’envoi d’un message à la suppression d’un utilisateur de votre serveur.

Après avoir appris à intégrer n8n à Discord, il est maintenant temps de créer votre flux de travail personnalisé ! Vous pouvez acheter un plan hébergé officiellement ou héberger vous-même n8n sur la plateforme VPS de Hostinger.

Comment intégrer n8n à Discord – FAQ

Comment connecter n8n à Discord ?

Il suffit d’ajouter le nœud Discord dans n8n et de le connecter à l’événement déclencheur. L’événement déclencheur peut être une action manuelle, un webhook ou une requête HTTP.

Sélectionnez l’action que Discord doit effectuer, qui peut aller de l’envoi d’un message de réponse à la gestion d’un rôle utilisateur. Activez-la ensuite en ajoutant un webhook ou un jeton bot. 

Que puis-je faire avec n8n et Discord ?

Vous pouvez automatiser diverses tâches avec n8n et Discord. Par exemple, vous pouvez créer un workflow qui extrait un message soumis par un utilisateur et le filtre en fonction de la règle de modération d’OpenAI. Vous pouvez également créer un bot automatisé qui envoie un résumé d’une vidéo YouTube nouvellement téléversée. 

Existe-t-il des workflows prédéfinis pour n8n et Discord ?

Oui, n8n propose des templates de flux de travail mutualisés pour Discord, partagés par les utilisateurs. Vous pouvez y accéder depuis la page d’intégration n8n Discord, dans la section « Popular ways to use Discord integration » (Utilisations courantes de l’intégration Discord). Il vous suffit de sélectionner le template souhaité, de cliquer sur « Use template » (Utiliser le modèle) et de l’importer sur votre serveur.

Author
L'auteur

Chaimaa Chakir

Chaimaa est une spécialiste du référencement et du marketing de contenu chez Hostinger. Elle est passionnée par le marketing digital et la technologie. Elle espère aider les gens à résoudre leurs problèmes et à réussir en ligne. Chaimaa est une cinéphile qui adore les chats et l'analyse des films.