How to set up automatic answers to keywords in Discord
A trigger watches for words or sentences you choose and answers with the text you wrote: as a reply, as a normal message, by direct message or with an emoji. You decide how closely a message has to match and how often the bot may answer.
Takes about 4 minutesFree, Premium raises limits
What you will end up with
A member asks when the next stream is, and ZombyIO answers at once with your text. A short wait stops it from answering the same question over and over in one channel.
general
A
AlexToday at 14:32
when is the stream?
ZombyIOAppToday at 14:32
Hi @Alex, we stream every Tuesday and Friday at 8pm.
Where to find it
Open the dashboard, pick your server and choose Triggers in the sidebar (on a phone: under Features in the bar at the bottom). That is two clicks from your server list. You can also press Ctrl K anywhere in the dashboard and type the name.
In the dashboard, pick your server and choose Triggers in the sidebar. The switch in the banner starts out on, so all you need is a trigger.
Under Your triggers, press Add a trigger. You can have 10 triggers on the free plan and 200 with Premium.
Tip
Start with the one question your members ask most often. You can add the others once the first one works.
zomby.io/dashboard/…/triggersTriggersEnabledYour triggersWhen several triggers fit one message, the strictest rule answers: the whole message, then its start, then a whole word, then anywhere. Within one rule, the phrase that comes first in the message wins.Stream times3 phrases · As a whole wordAdd a trigger1 of 10 triggers in use.
2
Step 2: Enter what to watch for
Give the trigger a Name, which only you see. Then type a phrase into What to watch for and press Enter or Add phrase. Add every way people ask the same thing, for example when is the stream, stream time and wann ist der stream. Any one of them fires the trigger. You can add up to 25 phrases of up to 100 characters each.
Capital letters, accents, extra spaces and curly apostrophes make no difference, so Straße matches strasse and don’t matches don't. Punctuation inside a phrase has to be in the message too.
Tip
A phrase that can never fire is marked in red with the reason. A single letter, for example, would sit inside almost every message, so it only works with The whole message, exactly.
zomby.io/dashboard/…/triggersEdit this triggerEverything here applies to the trigger selected above.NameStream timesOnly for you. Members never see it.What to watch forwhen is the streamstream timewann ist der streamUp to 25 phrases per trigger.Add phrase
3
Step 3: Choose how closely a message has to match
Under How closely it has to match, pick one of four rules:
As a whole word, the default. With the phrase help, it fires on Help!, I need help with roles and self-help, but not on helpful or help123: no letter or number may come right before or after the phrase.
At the start of the message. With !rules, it fires on !rules please, > !rules and @ZombyIO !rules, because quote marks, formatting and mentions at the front are skipped. It does not fire on please !rules or !rulesplease.
The whole message, exactly. With hello, it fires on hello, Hello! and **Hello?**, because formatting and punctuation around the message are ignored. It does not fire on hello there or hello :).
Anywhere in the message. With stream, it fires on livestreams today, even inside a word.
Only one trigger answers a message. When several fit, the strictest rule wins: the whole message, then the start, then a whole word, then anywhere. Within one rule, the phrase that comes first in the message wins.
Tip
Regular expressions and wildcards are not supported. List the different wordings as separate phrases instead.
zomby.io/dashboard/…/triggersHow closely it has to matchAs a whole wordFires on "help" but not inside "helpful". The safe choice for a single word.At the start of the messageOnly when the message begins with it as a whole word. A > quote, formatting and mentions in front are skipped. Reads like a command without being one.The whole message, exactlyOnly when nothing else was written. The strictest rule there is.Anywhere in the messageFires even in the middle of a word. Good for a whole phrase, risky for a short word.zomby.io/dashboard/…/triggersTry a messageRuns the same matcher your server doesType what a member would write…I need help with roles"Help" answers this. Matched on "help".Type what a member would write…That was really helpfulNothing would answer this.
4
Step 4: Write the answer
Type your reply into Answer text, up to 2,000 characters. Under More ways to say it you can add up to 4 more answers, and each time one of them is picked at random.
Placeholders fill in the details: {user} mentions the member, {user.id} is their ID, {server} the server name, {membercount} the number of members, {channel} links the channel and {match} is the phrase that matched, as you wrote it.
Turn on Send as an embed for a bordered card with a title in your colour. Also react with adds one emoji to the member’s message, and works on its own without any text. Wait before answering again applies to the emoji too.
Tip
@everyone and @here in an answer never ping anyone.
zomby.io/dashboard/…/triggersThe answerWhat the bot sends back, and which way it sends it.Answer textHi {user}, we stream every Tuesday and Friday at 8pm.Placeholders{user}{server}{membercount}{channel}{match}Click to copy. They are replaced with real values when the message is sent.Send as an embedA bordered card in your own colour. Stands out in a busy channel.
general
A
AlexToday at 14:32
when is the stream?
ZombyIOAppToday at 14:32
Hi @Alex, we stream every Tuesday and Friday at 8pm.
5
Step 5: Decide how the answer arrives and how often
The quickest way is a card under Pick a starting point:
Answer in the channel: replies to the question, at most once per channel every 30 seconds.
Quietly, by DM: answers the member privately, once per member per minute.
React only: no text, just an emoji.
Answer and tidy up: posts in the channel and removes its answer again after a minute.
Or set it yourself. How the answer arrives offers a reply, a normal message or a direct message. Wait before answering again stops a common word from flooding a channel: 30 seconds by default, counted per channel, per member or for the whole server under Counted per.
Important
React only clears the answer text and the extra answers. Pick the emoji under Also react with, or the trigger has nothing to do.
zomby.io/dashboard/…/triggersPick a starting pointAnswer in the channelReplies to the message that asked, once per channel every 30 seconds. The ordinary shape for a common question.Quietly, by DMAnswers the member privately and leaves the channel alone. One answer per member per minute.React onlyNo text at all, just an emoji on the message. For acknowledging something without adding noise.Answer and tidy upPosts in the channel and removes its own answer again after a minute. For busy channels.Wait before answering againEvery time30 sec1 min5 min1 hExact valueThe setting that keeps one common word from flooding a channel.Counted perChannelMemberWhole server
6
Step 6: Limit where it answers, if you need to
Under Where this trigger applies, leave everything empty and the trigger works in every channel for everyone. Or narrow it with Only in these channels, Except in these channels, Only for these roles and Never for these roles, up to 25 entries each. Threads and forum posts count as the channel they are in. A member with a role from both role lists is left alone.
To keep every trigger out of a bot channel or away from your staff, open Server-wide exceptions at the bottom of the page.
zomby.io/dashboard/…/triggersWhere this trigger appliesLeave it all empty and it works everywhere. Narrow it when one answer only belongs in one place.Only in these channels#support#generalThreads and forum posts count as the channel they are in.Never for these roles@Moderator
7
Step 7: Try it, then save
Type a sample message into Try a message beside the settings. It runs the same matching your server does and shows which trigger would answer and on which phrase, or why a trigger that fits is held back. Then press Save.
Tip
The tester checks the words, and the channel and role you choose under In channel and Written by a member with. On your server a trigger also waits out Wait before answering again, and saving does not reset a wait that is already running. Choose Every time while you test.
zomby.io/dashboard/…/triggersTry a messageRuns the same matcher your server doesIn channel#generalWritten by a member withNo particular roleType what a member would write…when is the stream?"Stream times" answers this. Matched on "when is the stream". After answering, it waits 30 sec before the next answer.
Every setting explained
In the order the page shows them. Names in bold are exactly what the dashboard calls each control.
Your triggers
Add a triggerFree: 10 · Premium: 200
Adds a trigger that matches a whole word, answers as a reply and waits 30 seconds per channel. Every trigger in the list counts towards the limit, including switched-off ones.
Active
Switches one trigger off without deleting it. A switched-off trigger never answers, but it still counts towards your plan’s limit.
Order in the list
Settles a tie: when two triggers have the same phrase and rule, the higher one answers, as long as it applies in that channel for that member. The trigger that wins is the only one that can answer: while it waits out Wait before answering again, no other trigger answers that message instead. When your list is longer than your plan allows, for example after Premium ends, only as many as your plan allows run, counted from the top, and the rest are marked Paused.
Edit this trigger
Name
Up to 80 characters. Only you see it.
What to watch for
Up to 25 phrases of up to 100 characters. Any one of them fires the trigger. A phrase that differs from one already in the list only by capitals or accents is not added again.
How closely it has to match
As a whole word (the default), At the start of the message, The whole message, exactly or Anywhere in the message, explained with examples in step 3. A phrase of a single character only works with The whole message, exactly, unless it is an emoji or a Chinese or Japanese character.
The answer
Pick a starting point
Four ready-made ways to answer. They set how the answer arrives, the wait and what it is counted per, whether the answer is removed later, and they switch off deleting the member’s message. They never change your phrases or where the trigger applies. React only also clears the answer text.
Answer text
Up to 2,000 characters. Leave it empty for a trigger that only reacts or only deletes.
More ways to say it
Up to 4 more answers. Each time the trigger fires, one of the answers is picked at random. Empty boxes are dropped when you save.
Placeholders
{user} mentions the member, {user.id} is their ID, {server} the server name, {membercount} the number of members, {channel} links the channel the question was asked in, and {match} is the phrase that matched, as you wrote it rather than as the member typed it. Click one to copy it.
Send as an embed
Sends the answer as a bordered card. Off by default.
Embed title
Up to 256 characters. {user} and {channel} do not work in a title and are left out there. The other placeholders work. An embed with a title and no text is still sent.
Accent colour
The colour along the card’s edge. Blue by default.
Also react with
One emoji, from your server or the standard set, added to the message that fired the trigger. It is not added when Delete the message that fired it is on.
How the answer arrives
As a reply (the default) quotes the question. As a normal message posts without quoting. By direct message answers privately, and members who do not accept direct messages get nothing. A channel answer always goes to the channel or thread the question was asked in.
Wait before answering again
Every time, 30 seconds, 1 minute, 5 minutes, 1 hour, or an exact value up to 86,400 seconds (a day). Default 30 seconds. Even on Every time, one channel gets a few answers in quick succession and then at most about one every two seconds. All triggers on the server together get about 20 answers, reactions or deletions in a row and then about one a second, and a direct message counts as two. Anything past these limits is dropped without notice, not sent later.
Counted per
Channel (the default): one answer per channel, and here each thread counts as a channel of its own. Member: each member gets their own answer. Whole server: one answer anywhere on the server.
Delete the message that fired it
Removes the member’s message. The answer is then posted as a normal message rather than a reply, and no reaction is added. ZombyIO needs the Manage Messages permission for this. A trigger with only this switched on, and no text or emoji, still removes the message. It also waits out Wait before answering again, so choose Every time if every such message should go.
Remove the answer again after
Keep it (the default), 30 seconds, 1 minute, 5 minutes, or an exact value up to 3,600 seconds. Only for answers in a channel. Answers sent by direct message stay.
Where this trigger applies
Only in these channels
The trigger answers only here. Empty means every channel. Threads and forum posts count as the channel they are in. Up to 25 channels.
Except in these channels
The trigger never answers here, or in threads and forum posts of these channels. Up to 25 channels.
Only for these roles
Only members with at least one of these roles fire the trigger. Empty means everybody. Up to 25 roles.
Never for these roles
Members with any of these roles never fire the trigger, even when they also have a role from Only for these roles. Up to 25 roles.
Server-wide exceptions
Ignored channels
No trigger answers in these channels, or in their threads and forum posts. Bot channels and staff rooms are the usual choice. Up to 25 channels.
Ignored roles
Members with any of these roles never get an answer from any trigger. Up to 25 roles.
Free and Premium
Premium costs €6 a month per server and is shared by every admin of that server. It raises limits, it does not unlock the feature.
Free and Premium
What
Free
Premium
Triggers
10
200
Something not working?
The problems people run into most often, and how to fix each one.
The trigger does not answer at all
You have not pressed Save yet.
Triggers are switched off in the banner, or the trigger’s Active box is unticked.
The trigger is marked Paused because your list is longer than your plan allows.
Its phrase is marked in red as one that never fires.
The rule is stricter than the message: As a whole word does not fire inside helpful.
Type the message into Try a message. It shows which trigger would answer, or why one is held back.
It answered once and then stayed silent
The wait under Wait before answering again is running: 30 seconds per channel by default, and saving does not reset it. While you test, set it to Every time. Even then, a busy channel gets at most about one answer every two seconds, and the whole server about one a second after the first 20. Answers past that are dropped without notice.
The tester shows a match, but nobody gets an answer
Automatic moderation reacted to the message. When any of its rules catches a message, even in watch mode, no trigger answers it. See auto moderation.
The message was edited into the phrase. Triggers only read new messages.
The message came from a bot, was forwarded, or had no text.
ZombyIO may not write, react or delete in that channel. After it has been refused, it leaves that channel alone for ten minutes. See roles and permissions.
A different trigger answered than the one I expected
The order of the list only settles ties. First the strictest rule wins: The whole message, exactly, then At the start of the message, then As a whole word, then Anywhere in the message. Within one rule, the phrase that comes first in the message wins, and at the same place the longer phrase wins. Make the trigger you want stricter, or its phrases longer.
Some members never get the direct message
They do not accept direct messages from ZombyIO. After one refused message, the bot does not try that member again for six hours, and nobody is told. Answer in the channel if everyone must see it.
The emoji reaction is missing
Delete the message that fired it is on, so there is nothing to react to.
The emoji was deleted, or comes from a server ZombyIO is not on.
ZombyIO lacks Add Reactions or Read Message History in that channel.
The member has blocked ZombyIO.
I cannot add another trigger
You have reached 10 triggers on the free plan or 200 with Premium. Switched-off triggers count too, so delete the ones you no longer need. When Premium ends, your extra triggers stay saved and paused, and answer again once Premium is back.
Ask in the ZombyIO support server. Bring your support ID, your server’s support ID and a sentence about what you expected to happen, and someone will look at it with you.