#55

Product support

Visit this product's website for support.

Categories

  • Miscellaneous
  • Utility

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:

  1. Select Settings > Administrators > Manage Groups > New Group in the backend area.
  2. Place a tick in Add new administrators to this group by default. to add all the existing admins to this new group (optional).
  3. Enter a name: Support members
  4. Enter the code: support-members
  5. 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:

  1. Last message sent was by a support member.
  2. Last message was not an internal message.
  3. Ticket is not closed already.

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 or ticket.

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' %}
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