Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Excerpt
hiddentrue

The Support Manager provides a ticket system where clients and staff can create tickets through email and the web interface.


Table of Contents
Table of Contents
maxLevel4
minLevel2
outlinetrue
classtoc

Description

The Support Manager is a support plugin included with Blesta. It may be installed under [Settings] > [Company] > [Plugins], but is not installed by default. It integrates a ticket system and knowledgebase to allow for clients to request support.

Note
titleMailParse

The Support Manager requires the MailParse and Iconv PHP extensions in order to parse tickets sent in through email. If tickets will be accepted via email, these PHP extensions must be installed. MailParse can typically be installed via root SSH access by running "pecl install mailparse". If using cPanel/WHM, PECL extensions can be installed through WHM, see https://documentation.cpanel.net/display/ALD/PHP+PECL

Tie-Ins

...

The support plugin ties into the following areas.

  1. Staff Area
    1. New "Support" primary navigation tab.
    2. Client Profile page, new "Actions" box link "Open Ticket".
    3. Client Profile page, new "Tickets" widget.
    4. Company Settings, Automation,  new "Download Tickets" task.
    5. New option "Ticket Search" in primary search box.
  2. Client Area
    1. New "Support" navigation link.

Support Emails

Support related email templates can be found under [Settings] > [Company] > [Emails] > Email Templates, in the section labeled "Plugin Templates".

Ticket Bounce

The ticket bounce email template does not support any tags.

Ticket Received

The ticket received email template allows for the following tags:

*

WidgetsNav LinksClient CardsAutomation TasksEmail TemplatesACL PermissionsSearchEventsService ManagementMessengers

Status
colourGreen
titleYES

Status
colourGreen
titleYES

Status
colourGreen
titleYES

Status
colourGreen
titleYES

Status
colourGreen
titleYES

Status
colourGreen
titleYES

Status
colourGreen
titleYES

Status
titleNone

Status
titleNone

Status
colourGreen
titleYES

* Plugins are powerful and are not limited to the tie-ins listed above, these are just some of the most common

Support Emails

Support related email templates can be found under [Settings] > [Company] > [Emails] > Email Templates, in the section labeled "Plugin Templates".

Ticket Bounce

The ticket bounce email template does not support any tags.

Ticket Received

The ticket received email template allows for the following tags:

TagsDescriptionNotesSince
{update_ticket_url}The URL for a client to visit to reply to this ticket
v2.21.0
{ticket_hash_code}A hash code for validating ticket repliesRequired to be in the subject line to allow for tickets to be replied to by email

{ticket.id}

The system-level ticket ID

{ticket.code}The ticket numbere.g. "1821914"
{ticket.department
TagsDescriptionNotesSince{ticket_hash_code}A hash code for validating ticket repliesRequired to be in the subject line to allow for tickets to be replied to by email 

{ticket.id}

The system-level ticket ID  {ticket.code}The ticket numbere.g. "1821914" {ticket.department_id}The system-level department ID of the department this ticket belongs to  {ticket.staff_id}The system-level staff ID of the staff member assigned to this ticketMay be empty {ticket.service_id}The system-level service ID of the service this ticket is in relation toMay be empty {ticket.client_id}The system-level client ID of the client this ticket is assigned to  {ticket.email}The email address the ticket was emailed in fromOnly set when the email address is piped in and unrecognized {ticket.summary}A brief ticket summary  {ticket.priority}The system-level ticket prioritye.g. "critical", "high", "medium", etc. {ticket.priority_language}The language for the translated ticket prioritye.g. "Critical", "High", "Medium", etc. {ticket.status}The system-level ticket statuse.g. "open", "awaiting_reply", "closed", etc. {ticket.status_language}The language for the translated ticket statuse.g. "Open", "Awaiting Reply", "Closed", etc. {ticket.date_added}The UTC datetime stamp of ticket creationFormatted as "YYYY-MM-DD HH:MM:SS" {ticket.date_closed}The UTC datetime stamp the ticket was closedMay be empty. Formatted as "YYYY-MM-DD HH:MM:SS" {ticket.reply
_id}The system-level
reply ID attached to this ticket  
department ID of the department this ticket belongs to

{ticket.
reply_
staff_id}The system-level staff ID of the staff member
that sent
assigned to this
reply 
ticketMay be empty
 

{ticket.
reply
service_
type
id}The system-level
type of replyi.e. "reply", "note", "log". Emails are only sent when the type is "reply"
service ID of the service this ticket is in relation toMay be empty
 

{ticket.
reply
client_
has_attachments}Whether or not this specific reply has any attachments 
id}The system-level client ID of the client this ticket is assigned to
v2.3.0


{ticket.
has_attachments}Whether or not any replies to this ticket have any attachments 
email}The email address the ticket was emailed in fromOnly set when the email address is piped in and unrecognized
v2.3.0

{ticket.
details
summary}
The ticket reply details in plain text  
A brief ticket summary

{ticket.
details_html
priority}The
ticket reply details in HTML 
system-level ticket prioritye.g. "critical", "high", "medium", etc.
 

{ticket.
reply
priority_
date_added
language}The
UTC datetime stamp of the replyFormatted as "YYYY-MM-DD HH:MM:SS" 
language for the translated ticket prioritye.g. "Critical", "High", "Medium", etc.
{ticket.status
{ticket.company_id
}The system-level
company ID this ticket was created under  {ticket.department_name}The name of the department this ticket belongs to  {ticket.department_email}The email address of the department this ticket belongs to  {ticket.override_from_email}Whether or not the email template's from address has been replaced with the department emaili.e. "1" or "0"
ticket statuse.g. "open", "awaiting_reply", "closed", etc.
{ticket.status_language}The language for the translated ticket statuse.g. "Open", "Awaiting Reply", "Closed", etc.
{ticket.date_added}The UTC datetime stamp of ticket creationFormatted as "YYYY-MM-DD HH:MM:SS"
{ticket.date_closed}The UTC datetime stamp the ticket was closedMay be empty. Formatted as "YYYY-MM-DD HH:MM:SS"
{ticket.reply_id}The system-level reply ID attached to this ticket

{ticket.reply_staff_id}The system-level staff ID of the staff member that sent this reply
v1.6.0


{ticket.reply_
by
type}The system-level type
indicating where the ticket reply came from
of replyi.e. "
staff
reply", "
client
note",
or "email" 

 

Ticket Updated

The ticket updated email template alows for the following tags:

"log". Emails are only sent when the type is "reply"
{ticket.reply_has_attachments}Whether or not this specific reply has any attachments
v2.3.0
{ticket.has_attachments}Whether or not any replies to this ticket have any attachments
v2.3.0
{ticket.details}The ticket reply details in plain text

{ticket.details_html}The ticket reply details in HTML

{ticket.reply_date_added}The UTC datetime stamp of the replyFormatted as "YYYY-MM-DD HH:MM:SS"
{ticket.company_id}The system-level company ID this ticket was created under
TagsDescriptionNotesSince{update_ticket_url}The URL for a client to visit to reply to this ticket  {ticket_hash_code}A hash code for validating ticket repliesRequired to be in the subject line to allow for tickets to be replied to by email 

{ticket.id}

The system-level ticket ID  {ticket.code}The ticket numbere.g. "1821914" 


{ticket.department_
id
name}The
system-level department ID
name of the department this ticket belongs to
  {ticket.staff_id


{ticket.department_email}The
system-level staff ID
email address of the
staff member assigned to
department this ticket
May be empty 
belongs to

{ticket.
service
override_from_
id}The system-level service ID of the service this ticket is in relation toMay be empty
email}Whether or not the email template's from address has been replaced with the department emaili.e. "1" or "0"v1.6.0
 
{ticket.
client
reply_
id
by}The system-level
client ID of the client this ticket is assigned to  
type indicating where the ticket reply came fromi.e. "system", "staff", "client", or "email"
{client.first_name}The first name of the client that opened this ticket
v2.20.0
{client.last_name}The last name of the client that opened this ticket
v2.20.0
{reply_contact.first_name}The first name of the last contact to reply to this ticket
v2.20.0
{reply_contact.last_name}The last name of the last contact to reply to this ticket
v2.20.0


Ticket Updated

The ticket updated email template allows for the following tags:

TagsDescriptionNotesSince
{update_ticket_url}The URL for a client to visit to reply to this ticket

{ticket_hash_code}A hash code for validating ticket repliesRequired to be in the subject line to allow for tickets to be replied to by email

{ticket.

{ticket.email}The email address the ticket was emailed in fromOnly set when the email address is piped in and unrecognized {ticket.summary}A brief ticket summary  {ticket.priority}The system-level ticket prioritye.g. "critical", "high", "medium", etc. {ticket.priority_language}The language for the translated ticket prioritye.g. "Critical", "High", "Medium", etc. {ticket.status}The system-level ticket statuse.g. "open", "awaiting_reply", "closed", etc. {ticket.status_language}The language for the translated ticket statuse.g. "Open", "Awaiting Reply", "Closed", etc. {ticket.date_added}The UTC datetime stamp of ticket creationFormatted as "YYYY-MM-DD HH:MM:SS" {ticket.date_closed}The UTC datetime stamp the ticket was closedMay be empty. Formatted as "YYYY-MM-DD HH:MM:SS" {ticket.reply_

id}

The system-level
reply
ticket ID
attached to this ticket
  


{ticket.
reply_staff_
code}The ticket numbere.g. "1821914"
{ticket.department_id}The system-level
staff
department ID of the
staff member that sent this reply  
department this ticket belongs to

{ticket.
reply
staff_
type
id}The system-level
type of replyi.e. "reply", "note", "log". Emails are only sent when the type is "reply"
staff ID of the staff member assigned to this ticketMay be empty
 

{ticket.
reply
service_
has_attachments}Whether or not this specific reply has any attachments 
id}The system-level service ID of the service this ticket is in relation toMay be empty
v2.3.0

{ticket.
has
client_
attachments}Whether or not any replies to this ticket have any attachments v2.3.0
id}The system-level client ID of the client this ticket is assigned to

{ticket.email}The email address the ticket was emailed in fromOnly set when the email address is piped in and unrecognized
{ticket.summary}A brief ticket summary

{ticket.priority}The system-level ticket prioritye.g. "critical", "high", "medium", etc.
{ticket.priority_language}The language for the translated ticket prioritye.g. "Critical", "High", "Medium", etc.
{ticket.status
{ticket.details}The ticket reply details in plain text  {ticket.details_html}The ticket reply details in HTML  {ticket.reply_date_added}The UTC datetime stamp of the replyFormatted as "YYYY-MM-DD HH:MM:SS" {ticket.company_id
}The system-level
company ID this ticket was created under 
ticket statuse.g. "open", "awaiting_reply", "closed", etc.
 

{ticket.
department
status_
name
language}The
name of the department this ticket belongs to  {ticket.department_email}The email address of the department this ticket belongs to  {ticket.override_from_email}Whether or not the email template's from address has been replaced with the department emaili.e. "1" or "0"v1.6.0{ticket.reply_by}The system-level type indicating where the ticket reply came fromi.e. "staff", "client", or "email" 

 

Staff Ticket Assigned

This email is sent to a staff member when a ticket has been assigned to them. This email template was made available in v2.6.0 of the plugin. The following tags are supported:

language for the translated ticket statuse.g. "Open", "Awaiting Reply", "Closed", etc.
{ticket.date_added}The UTC datetime stamp of ticket creationFormatted as "YYYY-MM-DD HH:MM:SS"
{ticket.date_closed}The UTC datetime stamp the ticket was closedMay be empty. Formatted as "YYYY-MM-DD HH:MM:SS"
{ticket.reply_id}The system-level reply ID attached to this ticket

{ticket.reply_staff_id}The system-level staff ID of the staff member that sent this reply

{ticket.reply_type}The system-level type of replyi.e. "reply", "note", "log". Emails are only sent when the type is "reply"
{ticket.reply_has_attachments}Whether or not this specific reply has any attachments
v2.3.0
{ticket.has_attachments}Whether or not any replies to this ticket have any attachments
v2.3.0
{ticket.details}The ticket reply details in plain text

{ticket.details_html}The ticket reply details in HTML

{ticket.reply_date_added}The UTC datetime stamp of the replyFormatted as "YYYY-MM-DD HH:MM:SS"
{ticket.company
TagsDescriptionNotesSince

{ticket.id}

The system-level ticket ID  {ticket.code}The ticket numbere.g. "1821914" {ticket.department_id}The system-level department ID of the department this ticket belongs to  {ticket.staff_id}The system-level staff ID of the staff member assigned to this ticketMay be empty {ticket.service_id}The system-level service ID of the service this ticket is in relation toMay be empty {ticket.client
_id}The system-level
client
company ID
of the client   
this ticket
is assigned to
was created under

{ticket.
email
department_name}The
email address
name of the
ticket was emailed in fromOnly set when the email address is piped in and unrecognized 
department this ticket belongs to

{ticket.
summary
department_email}
A brief ticket summary  
The email address of the department this ticket belongs to

{ticket.
priority}The system-level ticket prioritye.g. "critical", "high", "medium", etc.
override_from_email}Whether or not the email template's from address has been replaced with the department emaili.e. "1" or "0"v1.6.0
 
{ticket.
priority
reply_
language
by}The
language for the translated ticket prioritye.g. "Critical
system-level type indicating where the ticket reply came fromi.e. "system", "
High
staff", "
Medium
client",
etc. 
or "email"
{client.first_name}The first name of the client that opened this ticket
v2.20.0
{client.last_name}The last name of the client that opened this ticket
v2.20.0


Staff Ticket Assigned

This email is sent to a staff member when a ticket has been assigned to them. This email template was made available in v2.6.0 of the plugin. The following tags are supported:

TagsDescriptionNotesSince

{ticket.id}

The system-level ticket ID

{ticket.code}The ticket numbere.g. "1821914"
{ticket.department_id}The system-level department ID of the department this ticket belongs to

{ticket.
{ticket.status}The system-level ticket statuse.g. "open", "awaiting_reply", "closed", etc. {ticket.status_language}The language for the translated ticket statuse.g. "Open", "Awaiting Reply", "Closed", etc. {ticket.date_added}The UTC datetime stamp of ticket creationFormatted as "YYYY-MM-DD HH:MM:SS" {ticket.date_closed}The UTC datetime stamp the ticket was closedMay be empty. Formatted as "YYYY-MM-DD HH:MM:SS" {ticket.last_reply_date}The UTC datetime stamp of the last ticket replyFormatted as "YYYY-MM-DD HH:MM:SS" {ticket.last_reply_
staff_id}The system-level staff ID of the staff member
from the last reply
assigned to this ticketMay be empty
. Only set when {ticket.last_reply_by} is 'staff' 

{ticket.
department
service_
name
id}The
name
system-level service ID of the
department
service this ticket
belongs  
is in relation to
 
May be empty
{ticket.
company
client_id}The system-level
company
client ID of the client this ticket
was created under  
is assigned to

{ticket.
assigned_staff_first_name
email}The
first name of the staff member assigned to this ticket 
email address the ticket was emailed in fromOnly set when the email address is piped in and unrecognized
 

{ticket.
assigned_staff_last_name}The last name of the staff member assigned to this ticket 
summary}A brief ticket summary
 


{ticket.
last_reply_by
priority}The system-level
type indicating where the ticket reply came from
ticket prioritye.g. "critical
i.e. "staff
", "
client
high",
or
"
email
medium", etc.
 

{ticket.
last_reply_first_name
priority_language}The
first name of the user that last replied to the ticketMay be a client or staff user {ticket.last_reply_last_name}The last name of the user that last replied to the ticketMay be a client or staff user {ticket.last_reply_email}The email address the last reply came fromOnly set when {ticket.last_reply_by} is 'email' {staff.id}The system-level ID of the staff member this ticket is now assigned to  {staff.first_name}The first name of the staff member assigned to this ticket  

{staff.last_name}

The last name of the staff member assigned to this ticket  
language for the translated ticket prioritye.g. "Critical", "High", "Medium", etc.
{ticket.status}The system-level ticket statuse.g. "open", "awaiting_reply", "closed", etc.
{ticket.status_language}The language for the translated ticket statuse.g. "Open", "Awaiting Reply", "Closed", etc.
{ticket.date_added}The UTC datetime stamp of ticket creationFormatted as "YYYY-MM-DD HH:MM:SS"
{ticket.date_closed}The UTC datetime stamp the ticket was closedMay be empty. Formatted as "YYYY-MM-DD HH:MM:SS"
{ticket.last_reply_date}The UTC datetime stamp of the last ticket replyFormatted as "YYYY-MM-DD HH:MM:SS"
{ticket.last_reply_staff_id}The system-level staff ID of the staff member from the last replyMay be empty. Only set when {ticket.last_reply_by} is 'staff'
{ticket.department_name}The name of the department this ticket belongs to

{ticket.company_id}The system-level company ID this ticket was created under

{ticket.assigned_staff_first_name}The first name of the staff member assigned to this ticket

{ticket.assigned_staff_last_name}The last name of the staff member assigned to this ticket

{ticket.last_reply_by}The system-level type indicating where the ticket reply came fromi.e. "system", "staff", "client", or "email"
{ticket.last_reply_first_name}The first name of the user that last replied to the ticketMay be a client or staff user
{ticket.last_reply_last_name}The last name of the user that last replied to the ticketMay be a client or staff user
{ticket.last_reply_email}The email address the last reply came fromOnly set when {ticket.last_reply_by} is 'email'
{staff.id}The system-level ID of the staff member this ticket is now assigned to

{staff.first_name}The first name of the staff member assigned to this ticket

{staff.last_name}

The last name of the staff member assigned to this ticket


Expand
titleAdditional Tags

Due to the nature of tag objects containing several fields, many of which are likely irrelevant for use in email templates, but may be useful to you in certain circumstances, an example dump of the {staff} tag object is shown below.

Code Block
languagephp
titleThe {staff} object
collapsetrue
stdClass Object
    (
        [id] => 2
Expand
titleAdditional Tags

Due to the nature of tag objects containing several fields, many of which are likely irrelevant for use in email templates, but may be useful to you in certain circumstances, an example dump of the {staff} tag object is shown below.

Code Block
languagephp
titleThe {staff} object
collapsetrue
stdClass Object
    (
        [id] => 2
        [user_id] => 3
        [first_name] => First
        [last_name] => Last
        [email] => first.last@domain.com
        [email_mobile] => 
        [status] => active
        [username] => first.last@domain.com
        [two_factor_mode] => none
        [two_factor_key] => 6017d177a590b9cf0c04806e3634566a8f00190f
        [two_factor_pin] => 
        [groups] => Array
            (
                [0] => stdClass Object
                    (
                        [id] => 1
             [user_id] => 3
           [companyfirst_idname] => 1First
        [last_name]       => Last
         [nameemail] => Administratorsfirst.last@domain.com
        [email_mobile] => 
        [status] => )active
        [username]    )=> first.last@domain.com
        [noticestwo_factor_mode] => Arraynone
        [two_factor_key] =>   (6017d177a590b9cf0c04806e3634566a8f00190f
        [two_factor_pin] => 
        [groups] => Array
            (
                [0] => stdClass Object
                    (
                        [staff_group_id] => 1
                        [staffcompany_id] => 1
                        [actionname] => payment_ach_approvedAdministrators
                    )
            )
    )

 

Staff Ticket Updated

The ticket received email template allows for the following tags:

    [notices] => Array
            (
                [0] => stdClass Object
                    (
                        [staff_group_id] => 1
                        [staff_id] => 1
                        [action] => payment_ach_approved
                    )
            )
    )



Staff Ticket Updated

The ticket received email template allows for the following tags:

TagsDescriptionNotesSince
{ticket_hash_code}A hash code for validating ticket repliesRequired to be in the subject line to allow for tickets to be replied to by email

{ticket.id}

The system-level ticket ID

{ticket.code}The ticket numbere.g. "1821914"
{ticket.department
TagsDescriptionNotesSince{ticket_hash_code}A hash code for validating ticket repliesRequired to be in the subject line to allow for tickets to be replied to by email 

{ticket.id}

The system-level ticket ID  {ticket.code}The ticket numbere.g. "1821914" {ticket.department_id}The system-level department ID of the department this ticket belongs to  {ticket.staff_id}The system-level staff ID of the staff member assigned to this ticketMay be empty {ticket.service_id}The system-level service ID of the service this ticket is in relation toMay be empty {ticket.client
_id}The system-level
client
department ID of the
client
department this ticket
is assigned to 
belongs to

{ticket.staff_id}The system-level staff ID of the staff member assigned to this ticketMay be empty
{ticket.service_id}The system-level service ID of the service this ticket is in relation toMay be empty
{ticket.client_id}The system-level client ID of the client this ticket is assigned to
 


{ticket.email}The email address the ticket was emailed in fromOnly set when the email address is piped in and unrecognized
 

{ticket.summary}A brief ticket summary
  


{ticket.priority}The system-level ticket prioritye.g. "critical", "high", "medium", etc.
 

{ticket.priority_language}The language for the translated ticket prioritye.g. "Critical", "High", "Medium", etc.
 

{ticket.status}The system-level ticket statuse.g. "open", "awaiting_reply", "closed", etc.
 

{ticket.status_language}The language for the translated ticket statuse.g. "Open", "Awaiting Reply", "Closed", etc.
 {

{ticket.date_added}The UTC datetime stamp of ticket creationFormatted as "YYYY-MM-DD HH:MM:SS"
 

{ticket.date_closed}The UTC datetime stamp the ticket was closedMay be empty. Formatted as "YYYY-MM-DD HH:MM:SS"
 

{ticket.reply_id}The system-level reply ID attached to this ticket
  


{ticket.reply_staff_id}The system-level staff ID of the staff member that sent this reply
 
 


{ticket.reply_type}The system-level type of replyi.e. "reply", "note", "log". Emails are only sent when the type is "reply"
 

{ticket.reply_has_attachments}Whether or not this specific reply has any attachments
 

v2.3.0
{ticket.has_attachments}Whether or not any replies to this ticket have any attachments
 

v2.3.0
{ticket.details}The ticket reply details in plain text
  


{ticket.details_html}The ticket reply details in HTML
  


{ticket.reply_date_added}The UTC datetime stamp of the replyFormatted as "YYYY-MM-DD HH:MM:SS"
 

{ticket.company_id}The system-level company ID this ticket was created under
  


{ticket.department_name}The name of the department this ticket belongs to
  


{ticket.department_email}The email address of the department this ticket belongs to
 
 


{ticket.override_from_email}Whether or not the email template's from address has been replaced with the department emaili.e. "1" or "0"v1.6.0
{ticket.reply_by}The system-level type indicating where the ticket reply came fromi.e. "system", "staff", "client", or "email"
 

 

Staff Ticket Updated (Mobile)

The ticket received (mobile) email template allows for the following tags:


{client.first_name}The first name of the client that opened this ticket
v2.20.0
{client.last_name}The last name of the client that opened this ticket
v2.20.0
{reply_contact.first_name}The first name of the last contact to reply to this ticket
v2.20.0
{reply_contact.last_name}The last name of the last contact to reply to this ticket
v2.20.0


Staff Ticket Updated (Mobile)

The ticket received (mobile) email template allows for the following tags:

TagsDescriptionNotesSince
{ticket_hash_code}A hash code for validating ticket repliesRequired to be in the subject line to allow for tickets to be replied to by email

{ticket.id}

The system-level ticket ID
TagsDescriptionNotesSince{ticket_hash_code}A hash code for validating ticket repliesRequired to be in the subject line to allow for tickets to be replied to by email 

{ticket.id}

The system-level ticket ID  


{ticket.code}The ticket numbere.g. "1821914"
 

{ticket.department_id}The system-level department ID of the department this ticket belongs to
 
 


{ticket.staff_id}The system-level staff ID of the staff member assigned to this ticketMay be empty
 

{ticket.service_id}The system-level service ID of the service this ticket is in relation toMay be empty
 

{ticket.client_id}The system-level client ID of the client this ticket is assigned to
  


{ticket.email}The email address the ticket was emailed in fromOnly set when the email address is piped in and unrecognized
 

{ticket.summary}A brief ticket summary
  


{ticket.priority}The system-level ticket prioritye.g. "critical", "high", "medium", etc.
 

{ticket.priority_language}The language for the translated ticket prioritye.g. "Critical", "High", "Medium", etc.
 

{ticket.status}The system-level ticket statuse.g. "open", "awaiting_reply", "closed", etc.
 

{ticket.status_language}The language for the translated ticket statuse.g. "Open", "Awaiting Reply", "Closed", etc.
 

{ticket.date_added}The UTC datetime stamp of ticket creationFormatted as "YYYY-MM-DD HH:MM:SS"
 

{ticket.date_closed}The UTC datetime stamp the ticket was closedMay be empty. Formatted as "YYYY-MM-DD HH:MM:SS"
 

{ticket.reply_id}The system-level reply ID attached to this ticket
  


{ticket.reply_staff_id}The system-level staff ID of the staff member that sent this reply
  


{ticket.reply_type}The system-level type of replyi.e. "reply", "note", "log". Emails are only sent when the type is "reply"
 

{ticket.reply_has_attachments}Whether or not this specific reply has any attachments
 

v2.3.0
{ticket.has_attachments}Whether or not any replies to this ticket have any attachments
 

v2.3.0
{ticket.details}The ticket reply details in plain text
  


{ticket.details_html}The ticket reply details in HTML
  


{ticket.reply_date_added}The UTC datetime stamp of the replyFormatted as "YYYY-MM-DD HH:MM:SS"
 

{ticket.company_id}The system-level company ID this ticket was created under
  


{ticket.department_name}The name of the department this ticket belongs to
  


{ticket.department_email}The email address of the department this ticket belongs to
 
 


{ticket.override_from_email}Whether or not the email template's from address has been replaced with the department emaili.e. "1" or "0"v1.6.0
{ticket.reply_by}The system-level type indicating where the ticket reply came fromi.e. "system", "staff", "client", or "email"
 

Departments

Info
titlePOP/IMAP Settings

When selecting POP or IMAP for email handling, be sure to select the proper Security option for the port you are using. None, TLS, or SSL may be required depending upon the port number you are connecting to. See http://www.arclab.com/en/amlc/list-of-smtp-and-pop3-servers-mailserver-list.html for a list of common configurations.

Creating a Department

A support department may be created under [Support] -> [Departments] -> [Add Department].

Options

OptionDescription
NameThe department name is shown throughout the interface to reference the department a ticket may be assigned to.
DescriptionThe department description is shown on client-facing pages.
Allow only clients to open or reply to ticketsChecking this option will only allow tickets to be assigned to this department from a known client.
EmailA unique department email address should be set for email handling.
Override the from address set in email templates with the email address set for this departmentChecking this option will set the From address in support ticket emails to this department's email.
Default PriorityTickets created without a priority set (e.g. from email) will be created using the default priority status.
Email Handling

Email Handling will allow for additional configuration for automatic ticket retrieval via email through POP/IMAP or piping.

Configuring departments for ticket piping will allow tickets to be retrieved and processed into Blesta immediately.

OptionDescription
Piping ConfigurationConfiguring piping may vary. See Email Piping for more information.

 

Configuring departments for POP/IMAP ticket retrieval is dependent on the automation task "Download Tickets". Ticket emails will be retrieved at the interval set for that cron task.

OptionDescription
SecuritySSL, TLS, or no security flags may be configured to determine whether tickets are retrieved securely.
Box NameThis is the name of the folder/inbox on the email account that will contain new tickets for import.
Mark Messages asEmails that are processed need to be marked as Read, or Deleted entirely so that they are not imported again. POP3 will always delete messages, but IMAP may be marked as read to avoid importing the same message as a ticket more than once.
HostEnter the hostname to connect to to retrieve email.
UserEnter the username of the email account.
PassEnter the password to the email account.
PortEnter the port to connect on to retrieve email. This may vary depending on mail server settings and protocol.
Automatically Close Tickets

After the selected number of days have passed, any tickets belonging to the department will be automatically closed if the following conditions are met:

  • The last person to reply to the ticket was a staff member
  • The ticket status is not "In Progress", or already closed.

Tickets are closed by cron, and are so dependent on the "Close Tickets" automation task.

A pre-defined response may be defined, and any tickets that are auto-closed will be updated with the set response.

StatusThe department status may be Hidden or Visible. This indicates whether a client may view and create a ticket in this department from the client interface. Note that tickets may still be created if emailed into this department.

 

...


{client.first_name}The first name of the client that opened this ticket
v2.20.0
{client.last_name}The last name of the client that opened this ticket
v2.20.0
{reply_contact.first_name}The first name of the last contact to reply to this ticket
v2.20.0
{reply_contact.last_name}The last name of the last contact to reply to this ticket
v2.20.0

Support Messages

Support related message templates can be found under [Settings] > [Company] > [Messengers] > Message Templates, in the section labeled "Plugin Templates".

Staff Ticket Updated

The ticket received message template allows for the following tags:

TagsDescriptionNotesSince
{ticket_hash_code}A hash code for validating ticket repliesRequired to be in the subject line to allow for tickets to be replied to by email

{ticket.id}

The system-level ticket ID

{ticket.code}The ticket numbere.g. "1821914"
{ticket.department_id}The system-level department ID of the department this ticket belongs to

{ticket.staff_id}The system-level staff ID of the staff member assigned to this ticketMay be empty
{ticket.service_id}The system-level service ID of the service this ticket is in relation toMay be empty
{ticket.client_id}The system-level client ID of the client this ticket is assigned to

{ticket.email}The email address the ticket was emailed in fromOnly set when the email address is piped in and unrecognized
{ticket.summary}A brief ticket summary

{ticket.priority}The system-level ticket prioritye.g. "critical", "high", "medium", etc.
{ticket.priority_language}The language for the translated ticket prioritye.g. "Critical", "High", "Medium", etc.
{ticket.status}The system-level ticket statuse.g. "open", "awaiting_reply", "closed", etc.
{ticket.status_language}The language for the translated ticket statuse.g. "Open", "Awaiting Reply", "Closed", etc.
{ticket.date_added}The UTC datetime stamp of ticket creationFormatted as "YYYY-MM-DD HH:MM:SS"
{ticket.date_closed}The UTC datetime stamp the ticket was closedMay be empty. Formatted as "YYYY-MM-DD HH:MM:SS"
{ticket.reply_id}The system-level reply ID attached to this ticket

{ticket.reply_staff_id}The system-level staff ID of the staff member that sent this reply

{ticket.reply_type}The system-level type of replyi.e. "reply", "note", "log". Emails are only sent when the type is "reply"
{ticket.reply_has_attachments}Whether or not this specific reply has any attachments

{ticket.has_attachments}Whether or not any replies to this ticket have any attachments

{ticket.details}The ticket reply details in plain text

{ticket.details_html}The ticket reply details in HTML

{ticket.reply_date_added}The UTC datetime stamp of the replyFormatted as "YYYY-MM-DD HH:MM:SS"
{ticket.company_id}The system-level company ID this ticket was created under

{ticket.department_name}The name of the department this ticket belongs to

{ticket.department_email}The email address of the department this ticket belongs to

{ticket.override_from_email}Whether or not the email template's from address has been replaced with the department emaili.e. "1" or "0"
{ticket.reply_by}The system-level type indicating where the ticket reply came fromi.e. "system", "staff", "client", or "email"
{client.first_name}The first name of the client that opened this ticket

{client.last_name}The last name of the client that opened this ticket

{reply_contact.first_name}The first name of the last contact to reply to this ticket

{reply_contact.last_name}The last name of the last contact to reply to this ticket

Departments

Info
titlePOP/IMAP Settings

When selecting POP or IMAP for email handling, be sure to select the proper Security option for the port you are using. None, TLS, or SSL may be required depending upon the port number you are connecting to. See http://www.arclab.com/en/amlc/list-of-smtp-and-pop3-servers-mailserver-list.html for a list of common configurations.

Creating a Department

Warning
titleImporting Email

When importing email via piping or POP/IMAP, choose your department email address carefully. The address should not be used with PayPal or any other third-party service, which could be considered a security risk.

A support department may be created under [Support] -> [Departments] -> [Add Department].

Options

OptionDescription
NameThe department name is shown throughout the interface to reference the department a ticket may be assigned to.
DescriptionThe department description is shown on client-facing pages.
Allow only clients to open or reply to ticketsChecking this option will only allow tickets to be assigned to this department from a known client.
Require Human Verification for unauthenticated usersOnly appears when the client only option is unchecked.  Checking this option will require human verification for unauthenticated users to create a new ticket.
Email

A unique department email address should be set for email handling.

Info

If you are importing email via POP/IMAP/Piping the email address of your department MUST match the email address you are checking. If you are forwarding mail from support@domain.com to support@sub.domain.com then the address for your department must be support@sub.domain.com


Override the from address set in email templates with the email address set for this departmentChecking this option will set the From address in support ticket emails to this department's email.
Default PriorityTickets created without a priority set (e.g. from email) will be created using the default priority status.
Email Handling

Email Handling will allow for additional configuration for automatic ticket retrieval via email through POP/IMAP or piping.

Configuring departments for ticket piping will allow tickets to be retrieved and processed into Blesta immediately.

OptionDescription
Piping ConfigurationConfiguring piping may vary. See Email Piping for more information.


Configuring departments for POP/IMAP ticket retrieval is dependent on the automation task "Download Tickets". Ticket emails will be retrieved at the interval set for that cron task.

OptionDescription
SecuritySSL, TLS, or no security flags may be configured to determine whether tickets are retrieved securely.
Box NameThis is the name of the folder/inbox on the email account that will contain new tickets for import.
Mark Messages asEmails that are processed need to be marked as Read, or Deleted entirely so that they are not imported again. POP3 will always delete messages, but IMAP may be marked as read to avoid importing the same message as a ticket more than once.
HostEnter the hostname to connect to to retrieve email.
UserEnter the username of the email account.
PassEnter the password to the email account.
PortEnter the port to connect on to retrieve email. This may vary depending on mail server settings and protocol.


Automatically Close Tickets

After the selected number of days have passed, any tickets belonging to the department will be automatically closed if the following conditions are met:

  • The last person to reply to the ticket was a staff member
  • The ticket status is not "In Progress", or already closed.

Tickets are closed by cron, and are so dependent on the "Close Tickets" automation task.

A pre-defined response may be defined, and any tickets that are auto-closed will be updated with the set response.

Automatically Delete Tickets (v2.14.0)

After the selected number of days have passed, any tickets belonging to the department will be automatically deleted if the following conditions are met:

  • The ticket is in the "Trash" status.

Tickets are deleted by cron, and are so dependent on the "Delete Trash Tickets" automation task. Tickets can also be deleted manually as noted in the 'Tickets' section of this page.

StatusThe department status may be Hidden or Visible. This indicates whether a client may view and create a ticket in this department from the client interface. Note that tickets may still be created if emailed into this department.


Anchor
email-piping
email-piping
Email Piping

If your department is set up to receive tickets via email piping, your server must be configured to pipe those messages into the support manager.

Email should be piped to "/plugins/support_manager/pipe.php".

Note
titleAddon Companies

If you have any addon companies, you will need to copy pipe.php to something like pipe2.php, and edit the $company_id variable in the top of the file to reference the proper company ID that email should be piped to. The primary company is 1, a second company would be 2, etc. Go to [Settings] > [System Settings] > Companies, and you can determine the company ID by the "Edit" link. A link with a URL of "/admin/settings/system/companies/edit/2/" has a company ID of 2.

In your /etc/aliases file, it might look something like this..

No Format
support: "|/usr/bin/php /home/user/public_html/plugins/support_manager/pipe.php"

If you experience any trouble with that, you can alternatively pipe mail to "index.php plugin/support_manager/ticket_pipe/index/1" assuming "1" in the company ID.

No Format
support: "|/usr/bin/php /home/user/public_html/index.php plugin/support_manager/ticket_pipe/index/1"


Note
titleHashbang
In some cases, when piping using the 1st method above, it may be necessary to update or add the hashbang for the path to php in the pipe script located at "/plugins/support_manager/pipe.php".

The first line of the file should begin with the hashbang, for example:

No Format
#!/usr/bin/php -q


No Format
#!/usr/local/bin/php -q


On some systems you may need to create a symlink to php and pipe.php in /etc/smrsh..

No Format
cd /etc/smrsh
ln -s /usr/bin/php
ln -s /home/user/public_html/plugins/support_manager/pipe.php

Testing Piping

If you are having trouble with piping, it may be useful to try piping a sample email manually via SSH. This will bypass your mail server and help determine where the issue exists.

Step 1: Enable Error Reporting and Debugging

To enable error reporting, edit /config/blesta.php and change Configure::errorReporting(0); to Configure::errorReporting(-1); You may also wish to enable System Debug (Version 4.0+). To do so, change Configure::set("System.debug", false); to Configure::set("System.debug", true);

Note
titleDisable System.debug

When you're done, be sure to disable System.debug. If left enabled, it may cause licensing issues.


You should change these settings back when you are done.

Step 2: Create a Sample Text Email

Copy the following content into a text file called email.txt, changing all instances of support@domain.com to your department email. You may also need to update the from address customer@domain.com to a valid customer email if your department only allows customers to create tickets. Then upload to your web server at ~/plugins/support_manager/

Code Block
languagexml
From - Thu Jun  1 10:15:17 2017
Return-Path: <customer@domain.com>
Delivered-To: support@domain.com
Received: from localhost (localhost.localdomain [127.0.0.1])
	by mail.blesta.com (iRedMail) with ESMTP id 2E05935C4CC
	for <support@domain.com>; Thu,  1 Jun 2017 13:14:48 -0400 (EDT)
To: Support Department <support@domain.com>
From: Test Testerson <customer@domain.com>
Subject: Test Ticket Subject
Message-ID: <59304B86.2080303@domain.com>
X-ASG-Orig-Subj: Test Ticket Subject
Date: Thu, 1 Jun 2017 10:14:46 -0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.8.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Test ticket body. Please disregard.

Step 3: Direct the Output of the Text File to Blesta

Via SSH, change directories to ~/plugins/support_manager/ i.e cd /path/to/plugins/support_manager/

Run the following command:

./pipe.php < email.txt

Did that work? Did you get any errors?

Possible Errors & Solutions:

  • ERROR: "Use of undefined constant STDIN - assumed 'STDIN' on line 34 in ~/plugins/support_manager/controllers/ticket_pipe.php" SOLUTION: Edit ~/plugins/support_manager/pipe.php and add the following on its own line after $company_id = 1;: define('STDIN', fopen('php://stdin', 'r'));
  • ERROR: "Uncaught Error, code 0 in ~/vendors/minphp/bridge/src/Components/Session.php on line 75 Message: Call to a member function save() on null" SOLUTION: Edit ~/plugins/support_manager/pipe.php and make sure there is only a single line between your hashbang and the <?php tag. <?php should begin on line 2 and you should not have made any other modifications to the file.

Formatting, Styling, and Adding Links to Replies

The Markdown syntax is supported for ticket replies. Adding links, making text bold, italic and more can be all be done by using Markdown. See https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet to learn more.

Tickets

Tickets may be created by admins, clients, or emailed in to the system depending on the support department settings. As of version 2.5.0 of the Support Plugin, client contact's may also create and reply to tickets on behalf of the client, and will be included in any email correspondence for tickets they are directly involved in.  As of version 2.14.0 tickets can be deleted.  This can be done by changing a ticket to the 'Trash' status, selecting it in the ticket list for that status, and using the delete option in the action window that appears.

Knowledge Base

The Knowledge Base was added in version 2.6.0, and included in Blesta v3.4.0. It allows for the creation of a directory structure and articles to supplement client support. The public-facing knowledge base pages are viewable from your Blesta installation at "/client/plugin/support_manager/knowledgebase/" (e.g. If Blesta is installed under the "billing" directory on your domain, the URL to the knowledge base would be http://yourdomain.com/billing/client/plugin/support_manager/knowledgebase/).

Messengers

To enable messengers for the Support System, you need to go to Support > Staff. Simply tick the boxes that you would like to get a notification when a ticket has been created.

Image Added

Problems & Errors

Issue: Blesta shows a number of tickets for the Status, but the tickets are not displayed.

Solution: Tickets that have no replies are not displayed. It should not be possible to create a ticket without any reply. If you imported from another system, or there was an issue that prevented ticket replies from being created, then you may wish to delete tickets that do not have any replies. To do so, backup your database first and then run the following query in its entirety.

Code Block
languagesql
DELETE support_tickets.*
FROM support_tickets
LEFT JOIN (
SELECT `st`.`id`
FROM `support_tickets` `st`
INNER JOIN `support_replies` `sr` ON `sr`.`ticket_id` = `st`.`id`
GROUP BY `st`.`id`
) t ON t.id = support_tickets.id
WHERE t.id IS NULL

Issue: When using POP/IMAP, all emails are imported as tickets including those with a different TO address.

Solution: Departments assume that all emails in a POP/IMAP inbox are intended for the department. If you are using a single mailbox for multiple email addresses and want Blesta to import only emails addressed to the department email, you can make a code modification. In ~/plugins/support_manager/models/ticket_manager.php around line 287 change:

Code Block
languagephp
            // Handle creating a new ticket
            $department_found = false;

To:

Code Block
languagephp
            // Handle creating a new ticket
            $department_found = false;
            $department = null;

Note that this change will need to be made again if upgrading.

Issue: When I update the date and date time formats under Settings > Company > Localization, they do not take affect in the Support Manager. I see the original date time format in support replies.

Solution: The Support Manager has its own config file under /plugins/support_manager/config/support_manager.php that sets the date and date time formats independently. To resolve, edit this file and look for the following variables, and change the formats as desired.

Code Block
languagephp
Configure::set('SupportManager.time_format', 'H:i:s');
Configure::set('SupportManager.reply_date_format', 'M j Y g:i A');

If your department is set up to receive tickets via email piping, your server must be configured to pipe those messages into the support manager.

Email should be piped to "/plugins/support_manager/pipe.php".

Note
titleAddon Companies

If you have any addon companies, you will need to copy pipe.php to something like pipe2.php, and edit the $company_id variable in the top of the file to reference the proper company ID that email should be piped to. The primary company is 1, a second company would be 2, etc. Go to [Settings] > [System Settings] > Companies, and you can determine the company ID by the "Edit" link. A link with a URL of "/admin/settings/system/companies/edit/2/" has a company ID of 2.

In your /etc/aliases file, it might look something like this..

No Format
support: "|/usr/bin/php /home/user/public_html/plugins/support_manager/pipe.php"

If you experience any trouble with that, you can alternatively pipe mail to "index.php plugin/support_manager/ticket_pipe/index/1" assuming "1" in the company ID.

No Format
support: "|/usr/bin/php /home/user/public_html/index.php plugin/support_manager/ticket_pipe/index/1"
Note
titleHashbang
In some cases, when piping using the 1st method above, it may be necessary to update or add the hashbang for the path to php in the pipe script located at "/plugins/support_manager/pipe.php".

The first line of the file should begin with the hashbang, for example:

No Format
#!/usr/bin/php -q
No Format
#!/usr/local/bin/php -q

 

On some systems you may need to create a symlink to php and pipe.php in /etc/smrsh..

No Format
cd /etc/smrsh
ln -s /usr/bin/php
ln -s /home/user/public_html/plugins/support_manager/pipe.php

Testing Piping

If you are having trouble with piping, it may be useful to try piping a sample email manually via SSH. This will bypass your mail server and help determine where the issue exists.

Step 1: Enable Error Reporting and Debugging

To enable error reporting, edit /config/blesta.php and change Configure::errorReporting(0); to Configure::errorReporting(-1); You may also wish to enable System Debug (Version 4.0+). To do so, change Configure::set("System.debug", false); to Configure::set("System.debug", true);

It's a good idea to change these settings back when you are done.

Step 2: Create a Sample Text Email

Copy the following content into a text file called email.txt, changing all instances of support@domain.com to your department email. You may also need to update the from address customer@domain.com to a valid customer email if your department only allows customers to create tickets. Then upload to your web server at ~/plugins/support_manager/

Code Block
languagexml
From - Thu Jun  1 10:15:17 2017
Return-Path: <customer@domain.com>
Delivered-To: support@domain.com
Received: from localhost (localhost.localdomain [127.0.0.1])
	by mail.blesta.com (iRedMail) with ESMTP id 2E05935C4CC
	for <support@domain.com>; Thu,  1 Jun 2017 13:14:48 -0400 (EDT)
To: Support Department <support@domain.com>
From: Test Testerson <customer@domain.com>
Subject: Test Ticket Subject
Message-ID: <59304B86.2080303@domain.com>
X-ASG-Orig-Subj: Test Ticket Subject
Date: Thu, 1 Jun 2017 10:14:46 -0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.8.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Test ticket body. Please disregard.

Step 3: Direct the Output of the Text File to Blesta

Via SSH, change directories to ~/plugins/support_manager/ i.e cd /path/to/plugins/support_manager/

Run the following command:

./pipe.php < email.txt

Did that work? Did you get any errors?

Formatting, Styling, and Adding Links to Replies

The Markdown syntax is supported for ticket replies. Adding links, making text bold, italic and more can be all be done by using Markdown. See https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet to learn more.

Tickets

Tickets may be created by admins, clients, or emailed in to the system depending on the support department settings. As of version 2.5.0 of the Support Plugin, client contact's may also create and reply to tickets on behalf of the client, and will be included in any email correspondence for tickets they are directly involved in.

Knowledge Base

The Knowledge Base was added in version 2.6.0, and included in Blesta v3.4.0. It allows for the creation of a directory structure and articles to supplement client support. The public-facing knowledge base pages are viewable from your Blesta installation at "/client/plugin/support_manager/knowledgebase/" (e.g. If Blesta is installed under the "billing" directory on your domain, the URL to the knowledge base would be http://yourdomain.com/billing/client/plugin/support_manager/knowledgebase/).

...