User Support

Ticket system for communicating with users

  • Tickets - managing tickets in the admin panel, the ticket lifecycle and support staff
  • Ticket Types - ticket categories, hidden types and automatic assignment
  • Mail Templates - notifications sent to users and support staff
  • Configuration - automatic closing and attachment rules
  • Theming - AJAX forms, partials, styles and translation of the default markup
  • Extending - events and methods for adding to the ticket page, the support worker and the notifications
  • Upgrade Guide - changes to check when upgrading from an earlier version

Introduction

The Support plugin adds a helpdesk to your website. Signed-in users submit support tickets with file attachments and follow the conversation on your site. Support staff answer from the admin panel, post internal messages to each other, assign tickets and close them. Both sides receive email notifications about ticket activity, and tickets that wait too long for the user to respond close automatically.

Only registered users can submit tickets. Their accounts come from the RainLab.User plugin.

This table describes the moving parts found in this plugin.

Object Description
Ticket A support request from a user, with its subject, message, attachments, type, status and assigned administrator.
Ticket Message A reply on a ticket. A public reply comes from the user or from staff, and both sides see it. An internal message is a note between staff that the user never sees.
Ticket Type A category that the user picks when submitting a ticket, for example Technical support. See Ticket Types.
Ticket Status The stage of a ticket, which is New, Processing or Closed. See Ticket Status.
Support Staff The administrators who answer tickets. By default, every administrator is support staff. See Support Staff.

Getting Started

  1. Install the plugin and RainLab.User v3, which it requires, with php artisan plugin:install RainLab.User and php artisan plugin:install Responsiv.Support. Then set up user registration and sign in with the RainLab.User components.
  2. Create the support pages in your theme: a ticket list with the Tickets component, a submission form with the Ticket Submit component, a ticket page with the Ticket component and an edit page with the Ticket Update component. Add the {% framework extras %} tag to their layout, see AJAX Framework.
  3. Review the ticket types in Support > Ticket types. The plugin creates five example types. See Ticket Types.
  4. To limit who acts as support staff, create an administrator group with the code support-members. See Support Staff.
  5. Configure the scheduler, so that expired tickets close automatically. See Closing Expired Tickets.

The Creating a Helpdesk tutorial in the user guide builds each of these pages step by step, with custom markup for every component.

System Requirements

  • October CMS 4.4 or later. Sites on older versions, including October CMS 3.6, stay on version 1.2 of this plugin.
  • PHP 8.2 or later.
  • RainLab.User v3. Version 3.5 or later is needed for tickets to follow merged accounts.
  • The system scheduler configured to run every minute, so that expired tickets close automatically. Without it, run php artisan support:run from a cron job of your own.
  • The {% framework extras %} tag in the layout of each support page, for the default component markup. See AJAX Framework.

Reserved Schema

These database items are kept for existing installs, but nothing reads or writes them. Treat them as reserved and do not store data in them.

  • The responsiv_support_ticket_assignees table. The TicketAssignee model only provides the listSupportMembers() helper.
  • The has_new_messages column of the responsiv_support_tickets table. The has_new attribute is worked out from the last public message instead.
  • The author column of the responsiv_support_ticket_messages table.