Support plugin
This plugin allows you to manage communication with front-end users using a basic ticketing system. Tickets are created by users and assigned to support staff. Support staff can respond via the back-end, make internal notes and reassign tickets to other support staff. Users and staff can interact with eachother by making comments against the ticket and can also provide file attachments.
To note:
- This plugin requires
RainLab.User
to operate. - Only registered users can submit tickets.
Notifications
All ticket activity will be sent to the user who logged the ticket, except for internal messages between staff. Likewise ticket activity will be sent to the assigned staff member or to all staff members if no assignee is used. When a ticket is closed, all participants will be notified. Notifications are not sent to the person who triggered the event.
By default all back-end administrators are considered staff members. You can restrict this by creating a administrator group that uses the API code support-members
and assigning administrators who you wish to act as support staff. Follow these instructions to create a group:
- Select Settings > Administrators > Manage Groups > New Group in the backend area.
- Place a tick in Add new administrators to this group by default. to add all the existing admins to this new group (optional).
- Enter a name: Support members
- Enter the code:
support-members
- Click Create
System requirements
This plugin relies on the system schedule process for running its automated tasks. You should ensure that your cron table is configured correctly for this plugin to work. Alternatively you can manually process the support logic by calling php artisan support:run
and run it every 5-10 minutes.
Automatically closing tickets
Tickets will close automatically after 7 days if they meet the following criteria:
- Last message sent was by a support member.
- Last message was not an internal message.
- Ticket is not closed already.
The following plugin is required
Configuration
If you want to change the behavior of this plugin, create a config file config/responsiv/support/config.php and place the content inside:
<?php return [ /* |---------------------------------------------------------------------- | Automatically close expired tickets |---------------------------------------------------------------------- | | Set this to the number of days to wait before closing an expired ticket | automatically, or set to false to disable this feature. | */ 'expireInterval' => 7, ];
Implementing front-end pages
The plugin provides several components for building the support pages.
Ticket submission page
Use the supportTicketSubmit
component to display a form used for submitting new tickets. The component has the following properties:
- redirect - a page name to redirect to after submitting a ticket.
The supportTicketSubmit component injects the following variables to the page where it's used:
- ticketTypes - a list of available ticket types loaded from the database.
The next example shows the basic component usage on the ticket submission page:
title = "Submit support ticket" url = "/support/submit" [supportTicketSubmit] redirect = "support/ticket" == {% component 'supportTicketSubmit' %}
Ticket list page
Use the supportTickets
component to display a list of tickets logged by a user. The component has the following properties:
- submitPage - a page name to link to for submitting a new ticket.
- ticketPage - a page name to link to for viewing a ticket.
The supportTickets component injects the following variables to the page where it's used:
- tickets - a list of support tickets loaded from the database.
The next example shows the basic component usage on the ticket listing page:
title = "Support tickets" url = "/support/tickets" [supportTickets] submitPage = "support/submit" ticketPage = "support/ticket" == {% component 'supportTickets' %}
Ticket page
Use the supportTicket
component to display a single ticket. The component has the following properties:
- updatePage - a page name to link to for updating a user posted message.
- isPrimary - set this to true to use this page for generating links within mail notifications. Only one ticket page should be primary.
The supportTicket component injects the following variables to the page where it's used:
- ticket - the ticket object loaded from the database. If the ticket is not found, the variable value is null.
The next example shows the basic component usage on the ticket view page:
title = "Support ticket" url = "/support/ticket/:id?" [supportTicket] updatePage = "support/update" isPrimary = "1" == {% component 'supportTicket' %}
Ticket update page
Use the supportTicketUpdate
component to allow a user to update the content of posted messages. The component has the following properties:
- ticketPage - a page name to link to for returning to the ticket view.
The supportTicketUpdate component injects the following variables to the page where it's used:
- model - the ticket or message object loaded from the database. If the object is not found, the variable value is null.
- updateMode - determines if this page is being used for updating ticket or message content. The value will either be
message
orticket
.
The next example shows the basic component usage on the ticket update page:
title = "Support tickets" url = "/support/update/:id" [supportTicketUpdate] ticketPage = "support/ticket" == {% component 'supportTicketUpdate' %}
-
PS Dhillon
Found the plugin useful on 28 Jun, 2017
Allowing users to upload anything on server in the same directory as web is very bad security practice. ref: https://paragonie.com/blog/2015/10/how-securely-allow-users-upload-files
Can you please either improve upon above mentioned suggestions or provide option to disable file upload?
Note: I love your product though and wanted to provide constructive feedback!!
-
Peter Deed
Found the plugin useful on 26 Dec, 2016
Very useful and clean support tool. Replaces our previous slow and complex Fault Management System with something vry user friendly
-
1.0.13 |
Fixes display issue when full name is missing. Oct 24, 2022 |
---|---|
1.0.12 |
Add status filter to tickets component. Aug 19, 2021 |
1.0.11 |
Minor update to support command internals. Jul 14, 2017 |
1.0.10 |
Ticket submission component now supports forcing a ticket type. Aug 18, 2016 |
1.0.9 |
Added validation to ticket submission. Aug 16, 2016 |
1.0.8 |
Update main menu item to include SVG version. Aug 14, 2016 |
1.0.7 |
Minor UI and code improvements. Aug 14, 2016 |
1.0.6 |
Fixes protection level on Support model class. Sep 21, 2015 |
1.0.5 |
Add pagination to the ticket list component. Sep 08, 2015 |
1.0.4 |
Attachment links are now shown in staff notifications. Sep 02, 2015 |
1.0.3 |
Seed all database tables Sep 01, 2015 |
1.0.2 |
Set up database tables Sep 01, 2015 |
1.0.1 |
First version of Support Sep 01, 2015 |