Tickets Plugin šŸŽŸ

Repo

Summary

This plugin adds a ticketing system to Discourse. It requires tagging to be enabled and works best alongside the Assign Plugin.

It is based on @tobiaseigenā€™s original spec, and has been built in collaboration with @tobiaseigen and an awesome Ruby for Good team, for the benefit of both Namati and the Discourse community.

Notes

  • When you install the plugin, three new tag groups are added tickets_priority, tickets_reason and tickets_status. Add tags to these groups (at /tag_groups) to add tickets to each ticket type.

  • Tickets are added in the ā€˜edit topicā€™ UI (see screenshot below).

  • You can create topics or PMs with tickets via the api using is_ticket and a tags[] for each ticket tag (learn more)

  • There are four site settings you need to look at. To access quickly, go to ADMIN > SETTINGS on your instance and search for tickets.

    • tickets enabled: Enable tickets on topics (requires tagging to be enabled).

    • tickets icon: set the font-awesome class of the tickets icon

    • tickets include group: default group to include on private messages with tickets (on Global Legal Empowerment Network forum this is a helpdesk group).

    • tickets redirect assigned: redirects the user from the ā€˜assigned topicsā€™ route in their profile to Tickets dashboard filtered by tickets assigned to them.

    • allow staff to tag pms needs to be enabled if you wish to use tickets on PMs.

Tickets Dashboard

Topic

Hit the pencil icon near the title to edit the Topic meta, which appear like so:

Topic List

Tasks list

This list pulls together bug reports and feature requests that have come up in this discussion below and in the active usage of this plugin by @tobiaseigen and colleagues on the Global Legal Empowerment Network. @angus has agreed to schedule some time regularly to try to chip away at this list via https://discourse.angusmcleod.com.au/c/work/l/agenda, but can always use help! :seedling:

Bugs:

  1. Hijacked link to a userā€™s assigned tickets appears to not work for usernames that have mixed case.
  2. Ticket tags showing up in print view, also for those without access to ticket system

Features weā€™d like to add:

  1. Add ability to indicate the user (or users) a ticket is about.
  2. Add columns on tickets dashboard for date ticket was created and date created, date of last activity.
  3. Hijack :mag: search on tickets dashboard to allow searching for tickets by keyword
  4. Revamp tickets dashboard filtering/sorting/pagination
  5. Add to tickets dashboard default filters and options to quickly see only tickets assigned to me or only open tickets
  6. Add ability to monitor overall health of ticket system (time to resolution, open tickets, etc)
  7. (low priority) Add ā€œSettingsā€ button in /admin/plugins (details)
  8. (low priority) Allow ticket system and ticket tag groups to be renamed (requested by @GeertClaes)

Requested features that are low priority/hard/likely not to be added:

  • add TICKET options to topic menu at bottom as well as topic title edit.
  • notify user of number of open tickets assigned to user every time they log in
  • automated system messages are always tickets marked low, waiting
  • ticket PMs are sent to group messages archive by default so they donā€™t clutter group messages inbox
  • typically when we create a ticket, we set the status tag to #waiting. If there were some way to change this status to #underway when someone replies, that would be a big helpā€¦ if not, we can rely on the ticket dashboard if it shows activity so we know someone has replied and we need to take action.
  • for sake of transparency, would be interesting to indicate in a whisper when ticket tags are added or changed, following the example of the assign behavior.
  • on the flag interface itā€™s possible for moderators to ā€œclaimā€ spam posts. Maybe this is a model we can follow for tickets? This would speed things up - right now the flow is to unassign then assign.

Other discourse functionality that would help

  • bulk select and update ticket priority, status, reason, group, assignee (if not on the UI, then command line queries?)
76 Likes