Autoresponder

Reply automatically to messages that match a trigger, so your staff stop answering the same question.

Configure Autoresponder in the dashboard

Overview#

An autoresponder is one trigger and one reply. When somebody says the trigger, Iris posts the reply. That is the whole idea, and it covers most of what a busy server asks a human moderator to repeat: where the rules are, how to get verified, when the next event is.

Each autoresponder decides for itself how the trigger has to match, whether it is limited to one channel or one role, and how long it waits before answering the same member again. Only one autoresponder fires per message: the lowest id that matches wins, so two overlapping triggers never turn into the bot talking over itself.

Setup#

  1. Add your first responder: .autoresponder add hello | Hi there, {user}!, or press Add Autoresponder on the dashboard page. The | is what separates the trigger from the reply.
  2. Check it does what you meant with .autoresponder test hello there before anyone else trips it.
  3. Tune how it matches. The default fires when a message *contains* the trigger as a whole word; .autoresponder match 1 exact narrows it to messages that are only the trigger.
  4. Narrow where it fires if it should not answer server-wide: .autoresponder channel 1 #support, or .autoresponder role 1 @Member.
  5. Add a cooldown to anything people will play with: .autoresponder cooldown 1 30 stops one member re-triggering it for 30 seconds.
  6. Run .autoresponder list any time to see every responder with its id, or .autoresponder show 1 for one in full.

Matching#

The match mode decides how strict a trigger is. Change it per responder with .autoresponder match <id> <mode>.

SettingTypeDefaultWhat it does
containsModeDefaultFires when the message contains the trigger. A plain word only matches as a whole word, so cat does not fire on concatenate.
exactMode-Fires only when the message is exactly the trigger and nothing else.
startswithMode-Fires when the message begins with the trigger.
endswithMode-Fires when the message ends with the trigger.
regexMode-Reads the trigger as a regular expression, matched case-insensitively. A pattern that does not compile is refused when you save it.

Settings#

These belong to one autoresponder, not to the server. Everything here is on the dashboard page as well as the command listed with it.

SettingTypeDefaultWhat it does
TriggerTextRequiredWhat Iris listens for. Change it with .autoresponder trigger <id> <new trigger>.
ResponseTextRequiredWhat Iris replies. Change it with .autoresponder edit <id> <new response>.
MatchChoicecontainsHow the trigger is compared to a message. See the table above.
ChannelChannelEvery channelLimit it to one channel with .autoresponder channel <id> <#channel>. any clears it.
Required roleRoleEveryoneOnly fire for members holding a role, with .autoresponder role <id> <@role>. any clears it.
CooldownNumber0Seconds before the same member can trigger it again. 0 is no cooldown.
Reply to triggerToggleOnPost the response as a reply to the message that triggered it, rather than a loose message.
Delete triggerToggleOffRemove the message that triggered it. A deleted message has nothing to reply to, so the response is sent normally.
EnabledToggleOnTurn one responder off without deleting it, with .autoresponder toggle <id>.

Placeholders#

Put any of these in a response and Iris fills them in when it posts. Run .autoresponder variables in your server for the same list.

SettingTypeDefaultWhat it does
{user}Text-The member's display name.
{user.mention}Text-A ping for the member.
{user.name}Text-The member's username.
{user.id}Text-The member's id.
{server}Text-The server name.
{server.count}Text-How many members the server has.
{channel}Text-A link to the channel it fired in.
{trigger}Text-The trigger text that matched.

Commands#

Building responders#

CommandWhat it doesRequires
.autoresponder add <trigger> | <response>Create one. The | separates the two halves.Manage Server
.autoresponder edit <id> <new response>Replace what it replies with.Manage Server
.autoresponder trigger <id> <new trigger>Change what it listens for.Manage Server
.autoresponder remove <id|trigger>Delete one.Manage Server
.autoresponder clearDelete every autoresponder on the server.Administrator

Tuning one responder#

CommandWhat it doesRequires
.autoresponder match <id> <contains|exact|startswith|endswith|regex>Change how the trigger is compared to a message.Manage Server
.autoresponder channel <id> <#channel|any>Limit it to one channel, or let it fire anywhere.Manage Server
.autoresponder role <id> <@role|any>Only trigger for members holding a role.Manage Server
.autoresponder cooldown <id> <seconds>Stop one member re-triggering it for a while. 0 removes it.Manage Server
.autoresponder reply <id> <on|off>Reply to the triggering message, or send a loose message.Manage Server
.autoresponder deletetrigger <id> <on|off>Delete the message that triggered it.Manage Server
.autoresponder toggle <id> [on|off]Turn one responder off without deleting it.Manage Server

Looking around#

CommandWhat it doesRequires
.autoresponder helpThe full command list, in Discord.Anyone
.autoresponder variablesThe placeholders a response can use.Anyone
.autoresponder listEvery responder with its id and trigger.Manage Server
.autoresponder show <id|trigger>One responder and all of its settings.Manage Server
.autoresponder test <message text>Check which responder a message would trigger, without posting anything.Manage Server
.autoresponder statusWhether the engine is on, and how many responders exist.Manage Server
.autoresponder enable / disableTurn the whole engine on or off. Nothing is deleted.Manage Server

Permissions#

PermissionWhy Iris needs it
Send MessagesPosts the response.
Read Message HistoryNeeded to reply to the triggering message.
Manage MessagesOnly for responders set to delete the message that triggered them.

What it looks like#

A
ada Today at 8:54 PM

how do i get verified here

I
Iris APP Today at 8:54 PM

Head to #verify and press the button, ada. It takes a few seconds.

A `contains` responder answering a question nobody wants to answer twice.

Tips and gotchas#

Two of my responders match the same message. Which one replies?

The one with the lowest id. Only one fires per message, on purpose. .autoresponder test shows you the winner and everything else that matched.

It is not firing at all.

Check .autoresponder status for the server-wide switch, then .autoresponder show <id> for that responder: it may be disabled, locked to another channel, locked to a role, or still inside its cooldown for you.

Why is there no slash command?

Autoresponder is prefix only by design, like VoiceMaster. Everything runs from .autoresponder or from the dashboard page.

Does it reply to other bots?

No. Messages from bots are ignored, which is what stops two bots answering each other forever.

How many can I have?

Up to 200 per server. Every message is checked against the list, so the cap is there to keep the bot fast.