a ticket is a private channel between one member and your staff. they pick a topic on a panel, drain makes the channel, and everything that happens to it is kept: who claimed it, who was added, what it was set to, and why it closed.

setting it up

every setting is a command, and the dashboard changes the same settings.
open the dashboard, pick your server and go to tickets. set the staff roles, where a closed ticket’s record goes, how many one person may have open and whether staff are pinged. build your panels and their topics there, with the questions asked before a ticket opens. pick a channel for a panel and save: drain posts it there, and redraws it in place whenever it changes. quiet tickets, pausing, blocked people and roles, and the ai’s mode and voice are on the same page.

topics

a topic is one choice on a panel, and each one carries its own rules. any of them takes off to clear it.

asking before it opens

up to five questions, answered in a box before the channel is made, so the first message already says what happened. the answers are written into the ticket’s first message.
five is discord’s limit on one box, not drain’s.

inside a ticket

staff can claim, release, transfer, set the urgency, add and remove people, and read and write notes. the opener can add somebody and close it too. the claim and close buttons at the top of the channel do the same as the commands.

letting drain answer

drain can answer in a ticket, but only from notes you write. there is no general knowledge, no web search and no guessing: a question your notes do not cover is handed to a person, which is a correct answer.
1

write the notes

,ticket brain set <markdown>: write what your staff answer over and over. use a heading per subject; drain picks the sections that look like they answer the question, and a wall of text with no headings is one section. long notes can be attached as a .md file instead, and ,ticket brain export hands them back as one to edit.
2

check them

,ticket brain ask how long does shipping take shows what drain would do with that question, without anybody opening a ticket. do this before turning it on.
3

turn it on, carefully

,ticket ai draft writes a suggestion into your logs channel and nothing into the ticket, so being wrong costs nothing. when the drafts are consistently right, ,ticket ai answer lets it talk to the member.
every message drain writes is marked as written by the ai. it never claims to be a person.

how it sounds

out of the box the answers are short, plain and lowercase, signed as drain, in whatever language the member wrote in. all of that is yours to change, and none of it touches the rules below: a tone can make the answers warmer, it can’t make drain answer past its notes. the tone takes up to 240 characters, and off on any one of these puts that one back.

what it decides

for each message, drain picks one of four:

the rules you don’t get to change

  • five exchanges, then a person. whatever drain thinks, after five it hands over. a bot arguing with somebody in a support ticket is worse than no bot.
  • no notes, no ai. a server that hasn’t written any gets silence, not a model answering from nothing.
  • it fails towards a person. an answer drain can’t parse, an empty answer, or a model that ignored the format all become escalations.
turn the ai off on appeals, reports and anything about somebody’s punishment. those are the topics where being wrong costs the most, and they’re the ones a model should not touch. ,ticket topic set appeals ai off.

every command

,tickets works anywhere ,ticket does.

the server

panels

topics and questions

inside a ticket

the ai

the notes

a ticket channel counts against discord’s limit of 500 channels in a server. drain stops opening new ones at 480 and says so rather than failing at the last one.

what drain keeps

one row per ticket, one per message in it, and one for every change it went through. nothing about a ticket in a server that has never turned them on. closing a ticket keeps its record and deletes the channel. the record is what a transcript is built from.