Skip to content

Triggers

An automation ties a trigger to a sequence of steps: when this event happens on the server, the bot does that. Everything is composed visually, with no code.


An automation is a graph. Two views work on it, and nothing is ever converted by force:

  • Étapes (Steps): the automation reads as a sequence of sentences - Quand …, Si …, Alors …. This is the default view.
  • Graphe (Graph): a canvas of connected blocks, with a palette. It takes over on automations that cannot be expressed linearly - a loop, a switch - and Kotbo says so: This automation uses blocks that cannot be written as steps.

The New automation button offers to start from a ready-made template or from scratch.

TemplateWhat it does
Welcome messageGreet every arrival in a channel and grant their starting role.
Watch fresh accountsFlag to the staff any arrival whose Discord account is under a week old.
Block invitationsTime out anyone posting an invitation link to another server.
Level rewardCongratulate a member publicly when they level up.
Ticket greetingPost the guidelines as soon as a support ticket opens.

Templates are ready to use - you only pick the channels and roles.


An automation has a single trigger. The palette holds forty-two of them, sorted by family.

TriggerWhen it fires
Arrivée d’un membreA member joins the server.
Départ d’un membreA member leaves the server.
Rôle attribué / Rôle retiréA role is added to or removed from a member, once per role when several change at the same time.
Surnom modifiéA member’s nickname on the server changes, whether they did it themselves or not. A global Discord name change does not count.
Boost du serveurA member starts boosting. Discord does not report further boosts from a member who was already boosting.
Arrivée par invitationA member arrives through an invitation the bot could identify.
Passage de niveauA member gains a level.
TriggerWhen it fires
Message envoyéOn every message posted by a human.
Message modifiéA member edits the text of one of their messages. A link preview appearing, or a pin, does not count.
Message suppriméA member’s message is deleted. Bot messages and bulk deletions do not count.
Réaction ajoutée / Réaction retiréeA member adds or removes their reaction. Clearing all reactions of a message at once fires nothing.
Arrivée en vocal / Départ du vocalA member joins or leaves a voice channel. Leaving exposes the duration in minutes.
Changement de salon vocalA member moves from one voice channel to another without leaving voice.
Fil crééA member creates a thread or a forum post. Threads created by a bot do not count.
TriggerWhen it fires
AutoMod déclenchéKotbo’s AutoMod sanctions a message: spam, invitation, caps, emojis, mentions, everyone.
Sanction appliquéeA sanction is issued.
Sanction levéeA member is unbanned, or their timeout is lifted before its term.

Salon créé, Salon supprimé, Rôle créé, Rôle supprimé: these four also fire when the bot or an integration is the one acting. Threads do not count as channels. After a deletion the object no longer exists: only its name stays usable.

TriggerWhen it fires
Ticket crééA support ticket is opened.
Ticket ferméA ticket is closed, from Discord, the dashboard or the AI assistant. Deleting a ticket without closing it does not count.
Avis sur un ticketThe author of a closed ticket rates it from 1 to 5. Only the first rating counts, and the optional comment is not passed on.
Formulaire envoyéA custom form is submitted, from Discord or from its public page. The answers arrive grouped, one Question: answer line per filled field.
Suggestion publiéeA member posts a suggestion.
Suggestion traitéeThe staff approves, rejects or marks a suggestion as implemented.

For a ticket handled in DMs or relayed to the staff server, the channel is empty: the channel filter then leaves the case out.

TriggerWhen it fires
Participation à un concoursA member joins a giveaway.
Gagnant d’un concoursFor each winner, once their prize is secured. A draw awaiting validation fires nothing until the staff validates it.
Fin d’un concoursWhen a giveaway closes, whether it produced winners or not.
Victoire à un mini-jeuA member finds the mystery number or solves an emoji riddle.
Pari tranché / Pari annuléA referee names the winning side, or the stakes are returned.
Dette de clan creusée / soldéeA member stakes points they do not hold, or finishes repaying.

Partenariat : changement d’étape fires when a partnership case moves to another stage, after the perks are applied - the partner role is already granted. Partenariat : engagement non tenu fires when a commitment is found unmet, and its missed periods field lets you react only from the second or the third time. Partenariat : arrivée attribuée only fires for arrivals actually credited to a partner’s invitation.

See Partnerships.

The Planification trigger is set either through the guided choice - every hour, every day, every week, every month, with the hour and the day - or through an advanced pattern: a five-field cron pattern.

The time is interpreted in the server’s time zone, set from the Server settings.


Rather than filtering with a condition, several triggers can be narrowed on the Quand card itself:

  • Seulement dans ces salons (only in these channels): text channels, voice channels or whole categories. Available on messages, reactions, voice, threads, AutoMod and tickets. On Changement de salon vocal the filter applies to the destination channel; on Fil créé, to the parent channel or forum.
  • Seulement pour ces rôles (only for these roles): on Rôle attribué and Rôle retiré.
  • Seulement sur ces messages (only on these messages): on reactions, by pasting the message link (right click → Copy Message Link). If nothing typed there is recognised as a message, Kotbo warns that no reaction will get through.
  • Seulement pour ces émojis (only for these emojis): on reactions, by pasting the emojis or typing :name: for a server emoji.

Left empty, these fields accept the whole server.


Every trigger exposes values - the member, the message, the channel - that the following steps can use.

Posting: Envoyer un message, Envoyer un embed, Envoyer un message privé (no effect if the member’s DMs are closed), Répondre à un message (posted without a quote if the message was deleted meanwhile) and Écrire dans les logs, which fails as long as no log channel is configured.

On a member: Ajouter un rôle, Retirer un rôle, Donner un rôle temporaire, Changer le surnom, Exclure temporairement, Expulser, Bannir (permanently or for a given duration).

On a message: Supprimer un message, Réagir à un message, Épingler un message, Ouvrir un fil.

Rewarding and tracking: Donner des pièces, Retirer des pièces (never below zero), Donner de l’XP - with level-up and reward roles - and Ajouter une note au membre, which writes a dated line into their moderation note. Finally, Ouvrir un ticket opens a support ticket on a member’s behalf.

  • Si: only run the rest in certain cases. A condition reads as all these conditions or at least one condition, and is arranged into Alors / Sinon (Then / Otherwise).
  • Aiguillage: compares a text value against a list of cases.
  • Pour chaque: walks a list and runs the loop body for every element.
  • Attendre: suspends the run. It resumes even after a bot restart.

In the Steps view, conditions are offered as sentences, and only those the trigger can fill in appear: the role, the account age, the time spent on the server, the member’s run frequency, the content or the length of the message, the channel, the emoji, the sanction type, the form and its answers, the fate of a suggestion, a ticket’s rating and type, the invitation code, the mini-game won, or the server’s member count.

In the Graph view the same tests are assembled by hand: Possède le rôle, Salon est, Texte contient, Texte est égal à, Comparer two numbers, Calcul, Concaténer, ET / OU, NON, plus the length of a text or the size of a list.

The data blocks provide a Texte, a Nombre, a Booléen, a Texte composé (in which context values are inserted), Un rôle or Un salon from the server, the Fréquence du membre, and the properties of the member, the message, the channel or the server.

In the Steps view, channels, roles and texts are typed straight onto the card, without creating a data block.


Kotbo validates the graph before saving and lists the issues to fix: Start by placing a trigger block, A field of this step is still empty, N step(s) still need to be completed before saving. When everything is right: The graph is valid.

A saved automation starts paused; the switch on its card enables it.


The list filters by All, Active or Paused, and every card shows its number of runs, its success rate and its last run.

The Runs tab lists the passes with their status - Running, Waiting, Completed, Failed, Cancelled - and the number of blocks visited. Two menus filter the list by status and by automation, the Show failures button keeps only the misses, and Load older runs goes further back. A waiting run shows when it is due to resume, and a failed run names the step at fault.

Click a run to replay it on the graph: the path is replayed step by step, with the inputs and outputs recorded at each block.


Every card offers Edit, Duplicate, Pause or Enable, and Delete.