Automation
Auto-line, auto-reactions, auto-replies and keyword roles: rules that answer messages in your server.
An automation is a rule of the form "when a message like this arrives here, do that": a trigger, conditions that narrow where and for whom it runs, and actions that run in order. Auto-line, auto-reaction, auto-reply and role on keyword are templates that fill in the same kind of rule, and everything they set stays editable.
Where to set it up
The Automation page of the dashboard is the full editor: templates, every condition and action, the run order, the module switch, the log channel and a test box. In Discord, /automation lists, switches, deletes and tests automations, and quick-creates the three simplest templates. Every subcommand needs Manage Server. Epix AI can also list, test, create and switch automations.
| Subcommand | What it does |
|---|---|
/automation list | A panel of every automation: pick one to see it, turn it on or off, or delete it (with a second click to confirm). Only you can use it, and it closes after about 15 minutes. |
/automation toggle rule [enabled] | Turns one automation on or off. Without enabled, it flips the current state. |
/automation delete rule | Deletes one automation. |
/automation test text | Lists the automations that would answer that text in this channel, and what each would do. Nothing is sent and no cooldown is used up. |
/automation autoline channel [image] [text] | Creates an auto-line. Attach an image, or give a text line. |
/automation autoreact channel emojis [attachments_only] | Creates an auto-reaction with up to 5 emojis. attachments_only limits it to posts with a file or image. |
/automation autoreply mode trigger reply [channel] | Creates an auto-reply. Separate several trigger words with |. Without a channel, it answers in every channel. |
/automation settings [enabled] [channel] [clear_log] | Switches the whole module on or off and sets or clears the log channel, then opens a small settings panel. |
/automation autoline channel:#chat text:━━━━━━━━
/automation autoreply mode:exact trigger:=== reply:━━━━━━━━
/automation autoreply mode:contains trigger:hello|hi reply:Welcome {member.name}!Templates
The dashboard offers six templates. Each opens the editor already filled in, so you only add the channels, role or image.
| Template | What it builds | What it starts with |
|---|---|---|
| Auto-line | Posts your separator after each burst of messages. | Any message, commands included; a 2-second wait. |
| Auto-reaction | Reacts to every message in the chosen channels. | Any message; Add reactions. |
| Auto-reply | Answers messages that match your words. | Contains; Reply; 10-second cooldown per member. |
| Suggestions | Adds vote reactions to each post. Add a Send to a channel action to copy posts to staff. | Any message; two reactions from your theme. |
| Verify by keyword | Members type a word, confirm, and get a role. Their message is deleted. | Is exactly "verify"; Member confirms; Delete the message. |
| Role on keyword | A keyword gives or takes a role. | Is exactly; flips the role; Member confirms; 5-second cooldown per member. |
Triggers
- Any message: every message in the rule's channels. A rule with this trigger must name at least one channel; it cannot run server-wide.
- The text matches: the message is compared with up to 10 trigger words (50 with Premium), each up to 200 characters. Only the first 2,000 characters of a message are compared.
| Match | Fires when |
|---|---|
| Contains | A trigger word appears anywhere in the message. |
| Is exactly | The whole message is the trigger word, for example ===. |
| Starts with | The message begins with a trigger word. |
| Ends with | The message ends with a trigger word. |
| Whole word | A trigger word appears on its own, not inside a longer word. Word edges work in any script, Arabic included. |
| Regex (Premium) | A regular expression matches. |
Matching ignores upper and lower case unless you switch on exact case. It also ignores Arabic marks and letter forms by default: tashkeel and tatweel are removed, أ إ آ ٱ read as ا, ؤ as و, ئ and ى as ي, and ة as ه. So السلام also matches ألسَّـلام. Runs of spaces count as one space.
Conditions
| Condition | Default | Notes |
|---|---|---|
| Only in (channels) | Empty | Up to 50. Empty means every channel (text triggers only). A category covers its channels, and a channel its threads. |
| Never in (channels) | Empty | Up to 50. An exclusion wins over an inclusion. |
| Only members with one of (roles) | Empty | Up to 25. Empty means no restriction. |
| Never members with (roles) | Empty | Up to 25. |
| Ignore other bots | On | The bot's own messages never trigger anything, whatever this says. |
| Ignore webhooks | On | |
| Ignore bot commands | On | Messages that are commands with your server's prefix do not count. Auto-line turns this off. |
| Attachments | Any | Or only messages with a file, or only messages without one. |
| Shortest and longest message | No limit | Up to 2,000 characters. |
| Account at least | Any age | Minimum Discord account age, up to 365 days. |
Actions
Actions run from top to bottom, and one that fails never stops the next. A rule holds up to 5 actions (10 with Premium), but at most one Auto-line and one Delete the message.
| Action | What it does | The bot needs |
|---|---|---|
| Add reactions | Adds up to 5 emojis: Unicode, custom, or theme emojis that follow your server's theme. | View Channel, Read Message History, Add Reactions |
| Reply | Replies to the message with text or a saved message from the Message Builder. Can ping the author, and can delete itself after up to 10 minutes. | Send Messages |
| Send to a channel | Posts text or a saved message in another channel. | Send Messages in that channel |
| Auto-line | Posts one separator after each burst of messages (see below). | Send Messages, plus Attach Files for an uploaded image |
| Give or take a role | Gives, takes away, or flips a role, with an optional confirmation step (see below). | Manage Roles, with the role below the bot's highest role |
| Delete the message | Deletes the message that triggered the rule, straight away or after up to 10 minutes. | Manage Messages |
| Direct message | Sends the author a DM. Best effort: members with closed DMs are skipped without error. | Nothing extra |
Placeholders
Text in Reply, Send to a channel, Direct message and a text Auto-line can use {member.name}, {member.mention}, {member.id}, {member.avatar}, {member.banner}, {guild.name}, {guild.avatar}, {guild.banner}, {channel}, {channel.name}, {message.content}, {message.link}, {date.now}, {date.now.unix} and {date.now.iso}. {message.content} is cut to 1,000 characters, and the finished text to 2,000.
Auto-line
An auto-line posts one separator after each burst of messages, not one per message. Every new message in the channel restarts a short wait (2 seconds by default, anywhere from 0 to 60 seconds), and the line goes up once the channel has been quiet for that long. All auto-line rules in a channel share the same wait, so two rules never stack two lines.
The line is an image or text. An uploaded image (PNG, JPG, GIF or WebP, up to 1 MB) is stored by Epix rather than linked, so it keeps working after Discord's attachment links expire, and it is posted on its own with no embed around it. A server can use 1 uploaded line image, or 10 with Premium; an image no rule uses is deleted.
Roles on keyword and consent
A role action changes roles through the same engine as Reaction roles, so the same safety rules apply: the role must sit below the bot's highest role, and a role carrying Administrator, Manage Server, Manage Roles or Manage Webhooks is never handed out this way. Each role action picks one of four confirmation steps.
| Confirmation | What happens |
|---|---|
| No confirmation | The role changes immediately, and a short reply saying so is removed after about 8 seconds. |
| Member confirms | The bot replies with Confirm and Cancel buttons that only the author can press. The prompt is deleted after 60 seconds, and a click after that is refused as expired. |
| Staff approves (Premium) | A request with Approve and Deny goes to a staff channel. Members with Manage Roles or Administrator, or one of up to 10 staff roles you pick, decide. A request waits up to 7 days, one per member per automation, and the member is sent the decision by DM if their DMs are open. |
| Member confirms, then staff (Premium) | Both steps: the member confirms first, then the request goes to staff. |
With Premium, a role given by an automation can also be time-limited, from 1 minute to 90 days. It comes off on its own when the time is up.
Order, cooldowns and limits
- Run order: automations are checked in the order shown on the dashboard. New ones go to the end; the arrows on each card move it. Stop other automations makes the ones below a rule skip any message it answered.
- Cooldowns: each rule can have a cooldown per member, per channel and for the whole server, each up to 24 hours. A rule fires only when all of its cooldowns are clear. Cooldowns are held in memory, so a bot restart clears them.
- Channel budget: in any one channel, automations send at most 5 messages and add at most 10 reactions every 5 seconds. Anything over that is dropped, not queued, so a spam burst does not become a minute of late replies.
- Changes made on the dashboard or by command apply straight away.
Free and Premium
| Free | Premium | |
|---|---|---|
| Automations per server | 15 | 150 |
| Actions per automation | 5 | 10 |
| Trigger words per automation | 10 | 50 |
| Uploaded line images per server | 1 | 10 |
| Regex triggers | No | Yes |
| Staff approval for roles | No | Yes |
| Time-limited roles | No | Yes |
The automation count includes automations that are switched off. If Premium ends, nothing is deleted: automations beyond the free allowance stop running, starting with the latest in the run order; regex automations stop; role actions that need staff approval do not run; and time-limited roles are given permanently. Everything resumes when Premium returns.
Auto-pause, the module switch and the log channel
If the bot is refused a permission for the same automation 5 times in a row, it pauses that automation instead of failing on every message. The dashboard and /automation list show it as paused with the reason, and the dashboard names the missing permission. Fix the permission, then turn it back on; saving an edit also clears the pause.
The module switch, in /automation settings or on the dashboard, stops every automation at once without deleting any. A log channel, set in the same places, receives a line for every role change an automation attempts, with its result, and for every auto-pause. With no log channel, nothing is logged.
Troubleshooting
- Nothing happens: run
/automation testwith the same text in the same channel. If nothing would answer, check the trigger words, channels and role conditions. If something would, check its cooldowns and the bot's permissions in that channel. - The dashboard will not save an Any message rule: pick at least one channel under Only in.
- A role is never given: the role is above the bot's highest role, carries one of the four blocked permissions, or the rule is paused. The log channel shows each attempt and its result.