Requests

- Manage requests and inquiries already in the system
- Create internal and external requests
- Respond to incoming inquiries
- Obtain an overview of the statuses of all requests in the system
Terminology
A request is a form of communication where a (potential) customer, client, or business partner seeks information or assistance. For example, support issues, questions about the product and services, questions about invoices, or feedback regarding their experience with interaction with the company.
The terms request and ticket are often used interchangeably in SuperOffice. For example, youâll see the Request screen in the SuperOffice user interface, the ticket database table, and the Ticket CRMScript class. In the context of CRM, not to be confused with API requests (such as GET, POST, PUT, DELETE) or authorization credentials (such as system user ticket).
Request handling
Requests can be linked to contacts, who in turn can belong to a company. This means that requests cannot be linked directly to companies (only indirectly via contacts).
Companies employ varying procedures for handling requests and may utilize SuperOffice in diverse manners. Here are two common scenarios:
Scenario 1: The customer submits the request by email
- The customer emails
support@company.comor fills out a form in a user-support portal. - The customer gets an automatic reply letting them know the inquiry is received.
- The system automatically turns the inquiry into a request in SuperOffice.
- The request goes to a request handler, who reads through it.
- The request handler sends a response to the customer.
- The request handler closes the request and proceeds to deal with other requests.
Scenario 2: The customer calls the request handler
- The customer has a problem with a product and calls user-support.
- The request handler who answers the call registers the request.
- The request handler sends a response to the customer.
- The request handler closes the request and proceeds to deal with other requests.
In both scenarios, if the request handler is unable to fulfill the request on their own, they can either:
- Ask a colleague.
- Or, get help from outside the organization, for example for a sub-contractor or supplier.
Status
A request has one of the following statuses:
- Active
- Closed
- Postponed
- Deleted
- Merged
The status will change as the request flows through the support system. You can create additional request statuses.
Request category
All requests belong to a category, and each category has its own rules that define how requests are processed in the system. The request categories are arranged in a tree structure. Users can be added as members in the categories individually or via the user groups they belong to. You can create additional request categories.
Tags are a more flexible alternative to request categories. You can create tags on the fly and tag any request with as many tags as you want.
Priority
The priority of a request reflects the importance of the enquiry, such as high, medium, or low. After a request is assigned a priority, the priority can be used to control any escalation of the request.
Priority is tied to:
- Deadline
- Read status
- Actions and escalation chain
You can add new priorities and edit the settings of existing priorities.
Escalation
The escalation chain has multiple levels. Each level has its own settings, such as:
- Priority
- Alert level (strictly ascending number)
- Time (in minutes) before the ticket is escalated to the next level
- Action (what should be done when escalating to this level)
- If and who the ticket should be delegated to on escalation
- The ID of a CRMScript to run when the ticket alert goes off
You can define additional escalation levels for each priority.
Response time and time spent
ticket.replied_at is set (if empty) based on the time of action (selecting Reply/Reply all).
All other calculations run in the background. We use time_counter to mark which field in the ticket to count time spent on (queue, internal, external).
Service reply templates
A reply template is a blueprint for an email. It consists of regular text and template variables.
Example email confirmation template:
Hi [[fullname]]
Thank you for registering on our Customer Centre.
Please click on the following link to complete registration.
[[confirmUrl]]
Best regards
[[config.companyName]]
Example new request assignment template:
You have been assigned request no. [[ticket.id]]. The URL of the request is:
[[ticket.url]]
Title............: [[ticket.title]]
Posted by........: [[ticket.author]]
Category.........: [[ticket.category.fullname]]
Security level...: [[ticket.slevel]]
Customer.........: [[ticket.custName]]
E-mail...........: [[ticket.custEmail]]
Company..........: [[ticket.custCompany]]
Template components
Reply templates have the following general components:
- Name
- ID
- Subject
- Body
- Attachments
You can look up specific fields in the database reference.
Translation
If customer languages are configured it is possible to create language versions of each reply template. More information about this can be found in embedded help under working with customer languages
Template variables
A template variable is a named placeholder that you can put in a document- or email template. When the template is applied, the variable is substituted with the actual value. For example, {customer.firstname} translates to the customerâs first name. This lets you automate the personalization of content.
Complete list of all standard fields (does not cover your user-defined fields)
Each incoming email box can be configured to send an automatic answer back to the customer using a reply template. In addition, you have a parser variable called ticket.lastMessage which will contain the last message on the request, normally the text the customer wrote.
You can also extract anything from the email using Find regular expressions, and those matches will be available as parser variables (see the help for syntax).
ticket.id, it will contain no value since the request does not exist yet.Syntax
The syntax for a parser variable is the name of the variable enclosed by the tags <cs:parser> </cs:parser>.
To get a complete overview of template variables available for your database, create a new reply template with the plain text body %PARSER_TREE% (case sensitive).
When this reply template is used in a request, you will get a list of all available template variables by using the parser tree variable. %PARSER_TREE% is especially useful when you want to debug why something is not working.
System templates
Not all parser variables are available in every context in SuperOffice Service. The following tables show which parser variables are available in which reply templates.
Standard variable
The standard variables are Message, Company, Customer, Ticket, and Config.
| Template type | Customer, Company | User | Ticket | Message | Config | Other |
|---|---|---|---|---|---|---|
| new request, edit request, add message | x | x | x | |||
| autoreply | x | x | ||||
| email filter | x | x | x | |||
| on incoming email | x | x | x | ticket.lastMessage | ||
| notify: new request | x | x | x | x | ticket.lastMessage | |
| notify: open requests | x | x | x | ticket.lastMessage | ||
| notify: new message | x | x | x | x | ||
| notify activated request, escalated request, re-assigned request | x | x | x | |||
| new customer contacts | x (customer only) | custPassword, to, from | ||||
| send password to customer contacts | x (customer only) | x | to, from | |||
| format FAQ questions | x | x | faq.question, faq.answer |
Other parser variables
| Variable | Description |
|---|---|
| ticket.lastMessage | The last message on the request |
| custPassword | The un-encrypted version of the password only if this customer was generated at the same time as the ânew customerâ email was sent and encryption is turned on |
| from | The sender email address |
| to | The recipient address |
| faq.question | The first message in the request that âpublishâ was called from |
| faq.answer | The last message in the request that âpublishâ was called from |
Some parser variables that exist will not be described. These are present only for backward compatibility.