OpenBotsDocs
03 Dashboard06 Flows

Actions

Tout ce que le bot peut faire dans un flow : messages, rôles, modération, salons, fils, vocal…

⚡ Actions

Une action est ce que le bot fait quand le flow arrive à ce bloc. Les actions s'enchaînent dans l'ordre où tu les relies.

  • Un champ vide veut presque toujours dire « ne pas toucher » ou « valeur par défaut ».
  • Les champs texte acceptent des variables, comme {user} ou {arg}.
  • Beaucoup d'actions peuvent enregistrer un identifiant dans une variable (le message envoyé, le salon créé, le rôle créé…) pour la réutiliser plus loin dans le flow.
  • Les actions marquées ⚠️ sensible sont ignorées à l'intérieur d'une boucle sauf autorisation explicite.

[!NOTE] Si le bot n'a pas la permission (ou si le rôle visé est plus haut que le sien), Discord refuse l'action. Sur les actions concernées, la sortie Échec permet de le gérer (voir Gérer un échec plus bas). En cas de doute, vérifie d'abord les permissions et la hiérarchie des rôles.


💬 Messages

Envoyer un message

Texte, fichiers joints, et un bouton optionnel (libellé, couleur, emoji) dont l'identifiant se retrouve dans le déclencheur « Bouton cliqué ». Le salon vide = salon courant ; dm = message privé ; un salon vocal = le chat de ce vocal. Options : répondre à un message précédent du flow, forcer le mode muet (pas de notification par @everyone ou rôle), supprimer l'aperçu des liens, enregistrer l'identifiant du message dans une variable.

Envoyer un embed

Un message riche (titre, description, image, champs, pied de page…) avec les mêmes options que ci-dessus.

Répondre en privé

Répond par un message visible par le membre seul (message « éphémère » de Discord) à l'action qu'il vient de faire : bouton cliqué, menu déroulant utilisé, formulaire rempli. C'est le bloc à utiliser pour confirmer une action (« rôle ajouté », « demande reçue ») sans encombrer le salon. « Envoyer un message », lui, écrit publiquement dans un salon.

Le texte accepte les variables. Personne n'est mentionné. Avec un déclencheur qui n'a pas d'interaction (arrivée d'un membre, message, webhook…), il n'y a rien à quoi répondre : le bloc sort par Échec.

Envoyer un message privé ⚠️ sensible

Message privé au membre du flow (ou à un membre précisé par identifiant). Deux sorties : envoyé / échec — les messages privés fermés sont fréquents, prévois une branche « échec » (par exemple poster dans un salon à la place). Limité à 20 messages privés par minute et par serveur.

Envoyer un panel

Publie un panel créé dans le Panel Builder. Si ce bloc a déjà publié dans ce salon, tu choisis entre modifier le message existant ou en republier un nouveau.

Modifier un message / Supprimer un message

Vise le message du déclencheur (un message, une réaction…) ou un message dont l'identifiant est dans une variable.

Supprimer plusieurs messages ⚠️ sensible

Supprime jusqu'à 100 messages récents d'un salon.

Épingler un message

Épingle, ou désépingle si tu coches la case. Discord limite à 50 messages épinglés par salon.

Créer un sondage

Sondage natif Discord : question, 2 à 10 réponses, durée (1 h à 32 jours), plusieurs réponses autorisées ou non. Le déclencheur « Vote sur un sondage » réagit aux votes.

Afficher un formulaire

Ouvre une fenêtre de saisie chez le membre qui vient de cliquer un bouton (ou d'utiliser un menu déroulant), puis attend ses réponses : candidature, demande de ticket, signalement, inscription à un événement… Tout tient dans un seul flow : bouton → formulaire → suite, avec les réponses en variables.

Chaque ligne du champ Champs décrit une question : variable | Libellé | options.

pseudo | Ton pseudo en jeu | max: 20
motivation | Pourquoi nous rejoindre ? | long | facultatif | aide: quelques mots
  • variable : le nom sous lequel la réponse sera utilisable ensuite, par exemple {pseudo} (lettres minuscules, chiffres et _). Un nom déjà pris par le flow ({user}, {server}…) est refusé.
  • Libellé : la question posée (45 caractères au plus).
  • Options, dans n'importe quel ordre : long (grand champ de texte), facultatif (réponse non obligatoire), aide: texte (texte grisé dans le champ), min: 10 et max: 200 (nombre de caractères).
  • 5 questions au plus : c'est la limite de Discord. Le formulaire ne contient que du texte.

Le bloc a trois sorties :

  • Formulaire envoyé : le membre a validé, les réponses sont dans les variables.
  • Sans réponse : personne n'a validé dans les 10 minutes (fenêtre fermée, par exemple).
  • Échec : le formulaire n'a pas pu s'ouvrir (champs mal écrits, bloc mal placé…). La raison est dans {error}.

Le champ facultatif Message de confirmation affiche un message visible du membre seul dès qu'il a validé.

À savoir :

  • Discord n'autorise un formulaire qu'en réponse à un clic, dans les 3 secondes : place ce bloc juste après le déclencheur « Bouton cliqué » ou « Menu déroulant », sans message avant lui. Depuis un autre déclencheur (arrivée d'un membre, message…), il n'y a rien à quoi répondre : le bloc sort par « Échec ».
  • Les réponses sont nettoyées : un @everyone, un @here ou une mention de rôle tapé dans un champ est neutralisé, il ne notifiera personne quand le bot le reposte. Les mentions de membres restent possibles.
  • Un membre ne peut pas avoir plus de 3 formulaires ouverts à la fois, un serveur plus de 25. Si le bot redémarre pendant que le formulaire est ouvert, le membre reçoit « Ce formulaire a expiré » et doit cliquer à nouveau sur le bouton.
  • Pour poster une candidature dans un salon du staff : ajoute ensuite un bloc « Envoyer un message » avec par exemple Candidature de {user} — pseudo : {pseudo} — motivation : {motivation}.

⭐ Réactions

Ajouter une réaction / Retirer une réaction / Retirer toutes les réactions

Sur le message du déclencheur ou un message précis. « Retirer une réaction » peut viser un autre membre que celui du flow.


👤 Rôles

Ajouter un rôle / Retirer un rôle / Ajouter ou retirer un rôle

Sur le membre du flow. « Ajouter ou retirer » bascule : il donne le rôle s'il ne l'a pas, le retire sinon.

Donner un rôle temporaire

Donne un rôle pour une durée en minutes, puis le retire automatiquement.

Créer un rôle / Modifier un rôle / Supprimer un rôle ⚠️ sensible

Nom, couleur, affiché séparément, mentionnable. « Modifier » ne change que ce que tu renseignes. La création peut enregistrer l'identifiant du rôle dans une variable.

Mémoriser les rôles du membre / Rendre les rôles mémorisés

Pour retrouver ses rôles quand un membre revient après un départ : mémorise-les au départ, rends-les à l'arrivée. Tu peux ignorer une sauvegarde trop ancienne, et l'oublier une fois rendue. Les rôles à privilèges (administrateur, modération, gestion) ne sont jamais rendus par défaut ; une case explicite est nécessaire (à éviter).


🛡️ Modération

Expulser, bannir, exclure et changer le pseudo agissent sur le membre du flow (celui qui a déclenché le flow).

Expulser le membre ⚠️ sensible / Bannir le membre ⚠️ sensible

Avec une raison visible dans le journal d'audit. Le bannissement peut supprimer les messages des 0 à 7 derniers jours.

Débannir un utilisateur ⚠️ sensible

Par identifiant (ou le membre du flow).

Exclure temporairement le membre ⚠️ sensible

Exclusion (timeout) jusqu'à 28 jours, ou retrait de l'exclusion en cours si tu coches la case.

Changer le pseudo du membre

Nouveau pseudo (accepte des variables) ; vide = retire le pseudo personnalisé.


📁 Salons

Créer un salon / Créer une catégorie

Texte ou vocal, sujet, limite de membres (vocal), catégorie. Un salon peut être privé (invisible pour tout le monde) et donner l'accès au membre du flow : le principe d'un salon de ticket. L'identifiant du salon créé peut être enregistré dans une variable.

Modifier un salon

Nom, sujet, mode lent (jusqu'à 6 h) — une case dédiée le désactive.

Supprimer un salon ⚠️ sensible

Verrouiller / déverrouiller un salon

Retire (ou rétablit) le droit d'écrire de @everyone dans le salon, sans changer sa visibilité. Déverrouiller revient au comportement normal hérité de la catégorie. Les rôles qui ont un droit d'écriture explicite peuvent continuer à écrire.

Régler l'accès à un salon

Pour le membre du flow, un rôle ou @everyone : voir, écrire, lire l'historique — chaque droit peut être autorisé, refusé, ou laissé tel quel. Une case retire tous les réglages de cette cible.

Créer une invitation

Salon, durée (jusqu'à 7 jours, vide = n'expire jamais), nombre d'utilisations, adhésion temporaire. L'adresse peut être enregistrée dans une variable.


🧵 Fils de discussion

Créer un fil de discussion

Attaché à un message (celui du déclencheur ou un message précis), ou fil public autonome dans un salon.

Archiver un fil de discussion

Archive ou désarchive.

Modifier un fil de discussion

Nom, verrouillage, mode lent, archivage automatique après inactivité (1 h, 24 h, 3 j, 7 j), archivage.

[!WARNING] Un fil déjà archivé n'accepte aucune modification tant qu'il n'est pas désarchivé. Choisis « Désarchiver » dans la même action pour le modifier. Sur un fil actif, tu peux le verrouiller et l'archiver en une seule action.


🔊 Vocal

Déplacer dans un salon vocal / Déconnecter du vocal

Elles agissent sur le membre du flow, qui doit être déjà en vocal : sinon, rien ne se passe.

Couper micro / casque

Rend muet ou sourd (côté serveur), ou rétablit.


😀 Emojis

Créer un emoji / Supprimer un emoji ⚠️ sensible

Création depuis l'adresse d'une image (256 Ko au plus). Suppression par identifiant.


🔗 Réseau

Appeler une URL externe ⚠️ sensible

Envoie une requête (GET, POST, PUT, PATCH, DELETE) à un service extérieur, avec en-têtes et corps optionnels. Deux sorties : réussi / échec.

  • Tu peux extraire une valeur de la réponse JSON (chemin du type data.0.name) et la ranger dans une variable ; le code de réponse et le texte sont aussi disponibles.
  • Les adresses internes (réseau local, machines du serveur) sont refusées, aucune redirection n'est suivie, et seuls les ports web usuels (80, 443, 8080, 8443) sont admis.
  • Délai maximum 15 secondes, réponse lue jusqu'à 64 Ko ; limité à 30 appels par minute et par serveur.

[!WARNING] Un secret saisi dans les en-têtes (clé d'API, jeton) est enregistré en clair dans ton flow. N'y mets rien de sensible.


🚨 Gérer un échec

Toutes les actions ont deux sorties : Suite (tout s'est bien passé) et Échec (en rouge). Deux blocs les nomment autrement : « Envoyer un message privé » (envoyé / échec) et « Appeler une URL externe » (réussi / échec).

Quand l'action échoue, le flow suit la sortie Échec et la variable {error} contient la raison en clair, par exemple :

  • permission manquante, ou rôle visé plus haut que celui du bot
  • rôle introuvable, rôle non renseigné, salon introuvable, fil introuvable, message introuvable
  • fil archivé : choisir « Désarchiver » pour le modifier
  • erreur Discord 400 : Target user is not connected to voice.
  • image illisible ou trop lourde, panel introuvable, question ou réponses manquantes

Exemple : Exclure temporairement → sortie Échec → Envoyer un message dans le salon des modérateurs : « Impossible d'exclure {user} : {error} ».

[!NOTE] Si tu ne relies rien à la sortie Échec, le flow se comporte exactement comme avant : il continue par Suite (ou, pour « Envoyer un message » / « Envoyer un embed » refusés par Discord, la branche s'arrête). Tes flows existants ne changent donc pas.

Cas qui ne sont pas des échecs : donner un rôle que le membre a déjà, retirer un rôle qu'il n'a pas, débannir quelqu'un qui n'est pas banni, déconnecter du vocal quelqu'un qui n'y est pas, ne renseigner aucun champ à modifier (« Modifier un rôle » sans rien changer), et supprimer un rôle, un salon ou un message que Discord signale déjà supprimé au moment de la suppression.

[!WARNING] Supprimer un message par son identifiant alors qu'il n'existe plus donne l'échec « message introuvable » (le bot ne le retrouve pas avant de le supprimer).

Un échec n'envoie pas la notification « bloc exécuté » éventuellement configurée sur l'action, et, dans une boucle, cinq échecs de suite arrêtent la boucle.

On this page