Using discourse as ticket system, so no balls are dropped 🤹‍♀️

Turning my attention to the ticket system again. I think it’s working quite well for managing various aspects of member engagement in my community, including inviting new people (staged users!), answering questions, nudging members to take advantage of various opportunities etc.

I’m impressed - looking at the “up next” list in my OP above, I have done it all and it works quite well. Staged users I create by writing messages to email addresses - I avoid the email-in staged user creating because it’s still a little unpredictable and I like to have a bit of control. I’ve also upped the ninja edit window for messages to 10 minutes to give me time to make sure the messages look their best.

There are a few features still lacking that I’d like to brainstorm - some of it will likely need to be done in core, but other things might be suitable as a ticket system plugin. Open to ideas.

Having used it for a bit, it seems to me there are 3 main aspects to this - adding tickets, managing/handling tickets, and analyzing ticket system health. I’ve noted some thoughts below on what’s working and what’s not working below.

Creating tickets

Right now, to create a ticket, you edit an existing message or topic to add ticket tags. I have a #ticket staff tag, which ‘unlocks’ the other ticket tags for setting priority, status, reason. Additional tags can be used to help organize the tickets e.g. by country, theme, or language. The priority and status tags only allow one from each, which is helpful.

It’s possible to assign tasks to people, and to schedule reminders, though the interface is a little cumbersome. It’s also not possible to enforce inclusion of all the required tags, assignment and scheduled reminder.

Maybe the trick here would be to add tickets to the assign functionality. E.g. assign a message or topic to someone and be prompted to set ticket status, priority, reason and any other tags, maybe a staff note to the user the ticket is targeting. Then you’re on your way. :rocket:

Managing/handing existing tickets

The only way to see tickets is to browse the messages or topics, which has limited functionality. It displays solved indicator, message title, tags, avatars of users but that’s pretty much it. The only way to see lists of e.g. high priority, new tickets assigned to me is via an advanced search.

  • tags are not in any particular order and are not distinguished from one another (there is a styling customization hack for this)
  • it’s a bit cumbersome to add tags, assign, schedule reminders, and there is no way to require ticket tags (e.g. priority, status). Tags, reminders, etc also have to be manually updated as people reply and the ticket moves through the stages towards completion.
  • there is currently no way to mark a ticket solved if it has no reply. (mentioned this elsewhere)
  • there is no suitable bulk update feature for messages, equivalent to bulk topic editing. selecting and bulk updating scheduled reminder for assignee, updating tags, reassigning, setting solved/unsolved etc would be a big help. (discussed elsewhere)
  • there is no suitable interface for filtering messages by assignee, priority, status, or sorting the list
  • the message list is missing most relevant info.

The following column view might work for a support ticket dashboard, with column sorting and filtering options:

  • title
  • non-ticket tags (e.g. language, location, theme/issue)
  • date created
  • scheduled reminder date
  • ticket tags (one column per tag, filterable/sortable)
  • usernames of users involved (does currently show avatars)
  • username of user who started the ticket
  • username of user who is assigned the ticket
  • ticket is message or topic

I wouldn’t prioritize automation, but it would be helpful to have e.g. status-new tag changed to status-waiting when a reply is sent and the ticket is waiting for a response from the user. And for a reminder to be set automatically for the assignee when a reply is sent, with different intervals based on priority (eg. immediate = tomorrow, normal = 2 weeks, low = 2 months etc). Some sort of easy snooze feature for reminders would also be helpful.

Analyzing health of ticket system

It’s possible to look at lists of tagged tickets, but otherwise there is no immediately apparent way to see stats on overall ticket system health. I wouldn’t want to go overboard here and might want to learn from other ticket systems what is useful to track.

Some ideas for data points that can help here, filterable by assignee, priority, status:

  • number of tickets by status
  • time to completion
  • ratio of tickets by status
  • chart showing completion rates over time
9 Likes