Concepts
Runs, context, branching, gates, limits and the safety rails built into the engine.
Runs
Each time a trigger matches, the engine starts a run: it walks the graph from that trigger, depth-first, following out from triggers and actions and yes/no from conditions and gates. Several outgoing connections from one output are followed one after another.
Context
A run carries a context assembled from the event: the server, the user and member involved, the channel, the message, the reaction, plus extras such as the giveaway prize or the new level. Not every trigger provides every piece — Member joined has no channel or message; Schedule has no user at all. Actions that need something the context lacks skip silently (DM with no user) or, when the fix is in your hands, make the editor refuse to save with a clear message (“pick a channel in Send message”).
Tip
Every block's reference entry lists what it provides (triggers) or needs (actions). The editor enforces this before you can save.
Branching and gates
Conditions split the run. To combine checks, wire their outputs into a logic gate. A gate collects a signal from each connected input and evaluates once all have reported — a condition whose other output leads to the gate sends false there, so gates never hang. See the gate reference for the truth tables.
Limits and safety
| Guard | Value | Why |
|---|---|---|
| Blocks per workflow | 120 | Keeps graphs readable and validation fast |
| Connections per workflow | 240 | |
| Workflows per server | 25 | |
| Steps per run | 50 | Stops accidental loops |
| Runs per workflow per minute | 30 | Protects against event storms; excess runs are skipped and logged |
| Time budget per run | 90 s | Enough for a 60 s Wait; prevents wedged runs |
| Wait block | ≤ 60 s | |
| Schedule interval | ≥ 5 min |
- Message triggers ignore bots, webhooks and system messages, so a Reply can never re-trigger its own workflow.
- Member triggers ignore bot accounts.
- Moderation cases created by a workflow do not fire the Moderation case created trigger (no feedback loops).
- Role / timeout / kick / ban actions check the bot's permissions and role hierarchy before acting and fail with a readable error if the bot cannot.
- A failed action stops that run and stores the message as the workflow's last error, shown as an amber strip in the editor and a warning icon in the switcher.
Caching
The bot caches each server's enabled workflows for 30 seconds. After saving or toggling, allow up to half a minute before the change applies to new events.
