This guide covers the ticket lifecycle and management features in Rustmail.
A ticket is created when:
- A user sends a direct message to the bot
- Staff uses
/new_threadto initiate contact - (Optional) A user creates a channel in a designated category
When created:
- A channel is created in the inbox category
- The user receives the
welcome_message - Staff can see the new channel
During the ticket:
- User messages appear in the ticket channel
- Staff respond with
/replyor!reply - Messages are tracked with unique IDs
- Edit and delete history is preserved
Tickets are closed when:
- Staff uses
/close - A scheduled closure triggers
- The user leaves the server (if
close_on_leaveis enabled)
On closure:
- The user receives the
close_message(unless silent) - The channel is archived or deleted
- Records are preserved in the database
Users open tickets by sending a DM to the bot:
- User finds the bot in the server member list
- User sends a direct message
- Bot creates a ticket channel
- Bot sends
welcome_messageto the user
Staff can create tickets for users:
/new_thread user:@Username
!new_thread 123456789012345678
Useful for:
- Proactive outreach
- Following up on issues
- Contacting users who can't DM
If enabled in configuration:
[thread]
create_ticket_by_create_channel = trueStaff can create a channel in the inbox category to start a ticket. The channel name should be the user's ID.
/reply content:Hello, how can I help you today?
!reply Hello, how can I help you today?
The message is sent to the user's DMs and logged in the ticket channel.
Hide your identity from the user:
/reply content:This is from the staff team. anonymous:true
!anonreply This is from the staff team.
Anonymous messages show a generic staff label instead of your username.
Slash command:
/reply content:Here's the document you requested. attachment:<file>
Text command: Upload the file with your message:
!reply Here's the document you requested.
[Attached file]
Each message has a unique ID shown in the footer. Use this ID for edit and delete operations.
/edit message_id:42 new_content:Updated message text
!edit 42 Updated message text
Edits are:
- Reflected in the user's DMs
- Logged (if
show_log_on_editis enabled) - Tracked in the database
/delete message_id:42
!delete 42
Deletions:
- Remove the message from user's DMs (if possible)
- Log the deletion (if
show_log_on_deleteis enabled) - Mark the record as deleted in database
/close
!close
The user receives close_message and the ticket is archived.
/close silent:true
!close -s
No message is sent to the user.
Schedule automatic closure:
/close time:2h
!close 2h
Supported formats: 30m, 2h, 1d, 1d12h
/close cancel:true
!close -c
For orphaned tickets (user left the server):
/force_close
!force_close
/take
!take
Marks you as the assigned staff member.
/release
!release
Removes your assignment.
Grant specific staff access:
/add_staff user:@StaffMember
!add_staff 123456789012345678
Remove access:
/remove_staff user:@StaffMember
!remove_staff 123456789012345678
Get pinged after a delay:
/add_reminder time:2h content:Check if user responded
!add_reminder 2h Check if user responded
/remove_reminder reminder_id:5
!remove_reminder 5
Get notified on the next user response:
/alert
!alert
Cancel an alert:
/alert cancel:true
!alert cancel
You can configure Rustmail to ask users to choose a category before their ticket is opened. This allows you to route tickets directly to specialized teams (e.g., Support, Billing, Escalations).
Staff can manage categories using the /category or !category command:
!category create <discord_id> <name> | <description> | <emoji>- Create a new category!category list- View existing categories!category on/off- Enable or disable the category prompt globally!category timeout <seconds>- Change how long the bot waits for the user to make a choice before routing to the default inbox category.
When the category prompt is enabled, the bot will hold the user's initial messages in a queue and present them with interactive buttons. Once a category is selected (or the timeout expires), all queued messages are forwarded to the newly created ticket channel.
Relocate a ticket to a different category:
/move_thread category:Escalated
!move_thread Escalated
Useful for:
- Escalation workflows
- Department routing
- Priority categorization
/id
!id
Displays the ticket user's Discord ID.
/logs
!logs
View the ticket's history and activity log.
If the bot goes offline, users may send messages that aren't immediately processed. Rustmail automatically recovers these messages when restarting.
Manual recovery:
/recover
!recover
Key settings affecting ticket behavior:
| Option | Description |
|---|---|
welcome_message |
Sent when ticket opens |
close_message |
Sent when ticket closes |
time_to_close_thread |
Default scheduled close time |
close_on_leave |
Auto-close when user leaves server |
embedded_message |
Display messages as embeds |
block_quote |
Use block quotes for messages |
See Configuration Reference for all options.