Skip to content
Eric Trenkel edited this page Sep 12, 2026 · 3 revisions

Commands

Commands are divided into staff commands (used in the staff group) and user commands (sent directly to the bot). All command response text is configurable via language strings.


Staff Commands

Staff commands are used by replying to a specific ticket message in the staff group, except where noted.

Ticket Management

Command Usage Description
/open Send alone in staff chat Lists all currently open tickets (messages that have not yet been replied to)
/close Reply to a ticket Manually closes the referenced ticket. Also unbans the user if they were banned. Use when auto_close_tickets is disabled and you want to close without replying.
/reopen Reply to a closed ticket Reopens a previously closed ticket so it can receive further replies
/clear Send alone in staff chat Closes all open tickets silently — no "ticket closed" notification sent to users. Useful during migration or upgrading.
/ticket <id> Send with an id, or reply to a ticket Shows a ticket's details: status, user, category, priority, tags, assignee, first response / closed timestamps, AI triage summary, number of internal notes and the last 5 messages of the conversation. Accepts 1234, T1234 or #T001234.

User Moderation

Command Usage Description
/ban Reply to a ticket Bans the referenced user from sending new messages to the bot. The ban persists until the user is unbanned or the ticket is closed with /close.
/unban Reply to a banned user's ticket Removes an existing ban, allowing the user to message the bot again

Assignment & Organization

Command Usage Description
/assign <telegram_id> Reply to a ticket or send alone Assigns the referenced ticket to a specific staff member by their Telegram ID. The assigned member receives notifications for that ticket. Can also be triggered via inline callback button on tickets when staff_roles is configured.
/unassign Reply to an assigned ticket Removes the current assignment, returning the ticket to the general pool. All staff can see and respond again.
/tag <tag_name> Reply to a ticket Adds a tag to the referenced ticket for filtering and organization (e.g., /tag billing, /tag bug). Multiple tags can be applied.
/untag <tag_name> Reply to a tagged ticket Removes a specific tag from the ticket.
/priority <level> Reply to a ticket Sets the ticket priority level. Accepted values: low, normal, high, urgent. Priority is displayed with colored icons in staff chat. Defaults to normal if not set.

Canned Responses

Command Usage Description
/templates Send alone in staff chat Lists all canned_responses keys defined in the config.
/<key> Reply to a ticket Sends the canned response with that key to the user as a normal staff reply (e.g. /shipping). Keys are single words and must not clash with built-in commands.

Communication & Notes

Command Usage Description
/note <text> Reply to a ticket Adds an internal note visible only to staff members (not forwarded to the user). Useful for private team discussion about a ticket.
/notes Reply to a ticket Lists all internal notes attached to the referenced ticket.
!note <text> or !internal <text> Prefix in reply text Alternative way to add an internal note — prefix your reply with !note or !internal. The text after the prefix is stored as a staff-only note rather than being sent to the user.

Information & Analytics

Command Usage Description
/id Send alone in staff chat Returns your Telegram user ID and the group chat ID (format: 1234567 -1234567890). Useful for obtaining IDs needed during configuration.
/staff Send alone in staff chat Lists all configured staff members with their roles (admin, supervisor, agent) and names from the staff_roles config section.
/stats Send alone in staff chat Shows support analytics: ticket counts, average response and resolution time, per-agent stats and CSAT score. Requires enable_csat: true for rating data.
/links Send alone in staff chat Shows direct support links for each configured category (language.links).
/broadcast <text> Send alone in staff chat Sends the text to every known, non-banned user (web chat visitors excluded) and reports how many were reached. Requires allow_broadcast: true; the text is sent as plain text.

Notification Control

Command Usage Description
/mute Reply to a ticket Mutes notifications for the referenced ticket — suppresses staff chat alerts for new messages on this ticket. The ticket remains open and can still be replied to.
/unmute Reply to a muted ticket Re-enables notifications, restoring normal alert behavior for the ticket.

Command Flow Examples

Closing a resolved ticket:

Staff member replies to user's ticket message with: /close
→ Ticket is marked as closed and unbanned (if banned)
→ User receives "Your ticket was closed by our staff" notification

Banning an abusive user:

User sends inappropriate message → forwarded to staff group
Staff member replies with: /ban
→ User's subsequent messages are blocked until unbanned

Reopening a ticket for follow-up:

Ticket was auto-closed after first reply, but user needs more help
Staff member replies to the closed ticket with: /reopen
→ Ticket is reopened and can receive further replies

Assigning and tagging a high-priority ticket:

New VIP customer ticket arrives in staff chat
Staff replies: /assign 123456789 → assigns to specific agent
Staff replies: /priority urgent → marks as urgent with visual indicator
Staff replies: /tag enterprise → adds organizational tag for filtering

User Commands

Users send these commands directly to the bot on Telegram. All response text is configurable via language strings.

Command Description Configurable String
/start Initializes conversation with the bot. Shows a welcome message and prompts the user to ask their question. Also triggered automatically when a user first messages the bot. language.startCommandText
/help Displays available commands and brief usage explanation for end users. When used by staff in the group chat, shows extended help including all staff commands. language.helpCommandText (user) / language.helpCommandStaffText (staff)
/faq Shows frequently asked questions or a custom message defined in configuration. Often used to provide a link to documentation or an external FAQ page. language.faqCommandText
/id Returns the user's Telegram (or Signal) id and, in a group, the group chat id. —
/close Closes the user's own open ticket. Staff are notified and the CSAT survey is sent. Requires allow_user_close: true; otherwise the command is ignored for users. language.closedByUser
/<custom> Any command defined in user_commands answers with its static text and is listed in /help. user_commands[].text

Buttons defined in start_keyboard are shown below the /start message and simply send their label, so they can trigger a custom user command (/hours) or an autoreply rule.

Edited messages and stickers

  • With forward_edited_messages: true (default) an edited user message is re-posted to the staff chat marked with language.editedMessage, so the ticket history stays complete.
  • With forward_stickers: true stickers are forwarded in both directions; the ticket header follows the sticker as a separate message.

Language String Reference

All command responses and system messages are fully customizable. See Configuration → Language Strings for the complete list of ~50 configurable strings, including:

  • Welcome messages (startCommandText)
  • Help text (helpCommandText, helpCommandStaffText)
  • Ticket status notifications (ticketClosed, ticketReopened, banned)
  • Spam warnings (blockedSpam)
  • Private chat messages (prvChatOpened, prvChatEnded)
  • Reply salutations and sign-offs (dear, regards, regardsGroup)
  • CSAT survey strings (csatRatingRequest, csatThankYou)
  • Assignment notifications (ticketAssignedTo, ticketUnassigned, assignedBy)
  • Internal note labels (internalNote, noteAddedBy)
  • Business hours messages (offlineMessage, businessHoursClosed)
  • Escalation alerts (escalationNotify)
  • Replied mark, ticket details, edited messages, broadcast and user close (replied, ticketDetails, editedMessage, broadcastSent, closedByUser)

Clone this wiki locally