Welcome to the Help Desk MX documentation.
Here you will find everything you need to set up your Help Desk service and create a flexible customer service, which will boost up your support.
Our extension provides you with a single point of handling all queries, emails, offline chat messages, and other contact sources. Each of them will be turned into either a separate thread or added to an already created one. It will greatly help you to communicate with customers and provide them with the speedy support they need.
Tickets can later be collected and analyzed via reports, which will also help you to build a better support strategy and improve your services and products.
Firstly, please find our extension in the My Downloadable Products section of our store. Learn how to install extension, and proceed with Quick Start, which will guide you through setting up your Help Desk service.
php -f bin/magento module:enable Mirasvit_Core Mirasvit_Report Mirasvit_Helpdesk
to enable the extension.php -f bin/magento setup:upgrade
to install the extension.php -f bin/magento cache:clean
to clean the cache.Deploy static view files
rm -rf pub/static/*; rm -rf var/view_preprocessed/*; php -f bin/magento setup:static-content:deploy
php -f bin/magento setup:static-content:deploy -f
to deploy static contents.
Set up a cron job for Magento.
You can skip this step if you have already configured cron jobs for your Magento 2 store.
php -f bin/magento module:enable Mirasvit_Core Mirasvit_Report Mirasvit_Helpdesk
to enable extension.php -f bin/magento setup:upgrade
to install the extension.php -f bin/magento cache:clean
to clean the cache.Deploy static view files
rm -rf pub/static/*; rm -rf var/view_preprocessed/*; php -f bin/magento setup:static-content:deploy
php -f bin/magento setup:static-content:deploy -f
to deploy static contents.
Set up a cron job for Magento.
You can skip this step if you have already configured cron jobs for Magento 2 store.
Run the commands:
composer require hyva-themes/magento2-mirasvit-helpdesk
Enable the installed Hyva modules:
bin/magento module:enable Hyva_MirasvitHelpdesk
Update the Magento database schema and data with the command:
bin/magento setup:upgrade
Compile the code of the installed extension:
bin/magento setup:di:compile
bin/magento cache:flush
Our Help Desk MX extension is a simple yet powerful extension for building and boosting your customers' support. Most of its functions work out-of-box, but for full productivity, several settings can be tuned up.
Start by establishing an organizational structure for support. All staff members (they're regular backend users, defined at System -> Permissions -> All Users) should be registered in their corresponding Department. Each staff member's Permission can be defined to ensure proper duties separation.
Establish an Email Gateways service. This allows customers to place tickets and communicate via email. It will include two additional steps:
Create a ticketing workflow. Each stage of ticket resolving is marked by corresponding Status. Our extension provides a set of legal statuses out-of-box, but you may also extend or even define your statuses.
Create a ticket ranking system. Our extension provides a Priorities dictionary, which contains standard priorities that allow it to rank tickets by their urgencies. You may also extend it or define your set of priorities.
If you have a set of standard questions or situations that require typical answers, create Quick Responses to help speed up support in these cases.
If you need customers to supply additional information upon ticket submission, use our Custom Fields. In the same vein, you can create additional internal properties for tickets that can speed up your staff members' interoperability - for example, case details, intermediate results, and so on.
Observe your tickets flow, and if you encounter spamming, eliminate it by adding Spam Patterns. They will be used by our email fetch submodule to cut off spammers.
Automate your regular tasks with our Workflow Rules, with an extensive set of conditions allowing you to automate almost every routine task.
This should be a good beginning.
Refer to appropriate sections of our manual to find out more info.
Go to the Customers > Help Desk MX > Settings. There you will find all Help Desk MX setting, divided into the following sections:
It contains the most available options you can use for global Help Desk configuration.
Option | Description |
---|---|
Helpdesk title in the customer account | Sets the ticket page header that is visible for the customer in their account on the frontend. |
Priority for new tickets | Sets the default priority for new tickets. |
Status for new tickets | Sets the default status for new tickets. |
Sign staff replies | This option allows you to specify how the agent's replies should be signed. Help Desk can sign them using the agent's name, or the name of the agent's department. |
Move Ticket to Archive if it has one of the following statuses | Option allows you to place solved tickets into the archives solved- e.g., you can automatically move tickets to the archive with the status Closed. |
Lock Ticket if it has one of following statuses | When activated, the customer cannot add a new message to the ticket. Choose the ticket status for the option to automatically lock tickets with the selected status. |
Create Tickets from the Contact Us form | If the option is enabled, Help Desk will replace the default Magento contact form (/contacts/) with the Help Desk contact form. This form has additional fields and allows you to create a new ticket when the customer posts a message. |
Send a blind carbon copy (BCC) of all emails to | Here you can enter a comma-separated list of emails. The Help Desk will send a blind carbon copy (BCC) of all outgoing emails using the email addresses. |
Use WYSIWYG Editor in backend | Allows for a rich text editor in backend messages and dictionary forms options. After setting this option, you need to purge the cache to apply the options changed and make the editor appear or disappear. |
Show previous/next button at the backend ticket edit page | Allows you to jump from ticket to ticket using two additional buttons on the toolbar - Previous Ticket and Next ticket. |
Use the default Magento cron | If the option is enabled, the default Magento cron will be used. To set up a cron job, follow this manual. |
Allow customer to open ticket by unique URL (without additional authentication) | A button "Show source" appears when customer hovers over a reply in a ticket in his acccount. The "Show source" button has a direct link to the reply. |
Auto-removing old attachments | Enables automatic removal of files attached to ticket messages. |
Remove attachments older than, days | Set the threshold in days for the automatic removal of attachments. |
Only allow upload of attachments with extensions | Sets a list of filetypes alowed for uploading in the ticket. |
Tickets autosave period, sec | Specify in seconds a time period for the ticket reply to be autosaved. |
Show Help Desk link in customer menu | A link to the Helpdesk page is placed in the customer menu dropdown on the frontend. |
Show Quick Data Bar in admin ticket grid | Уnables the tickets grid page i admin to display a data block with recent statistics on tickets. It shows the number of current admin tickets (My Tickets), the total number of tickets, ticket statistics for each admin, and the number of open, closed, and in-progress tickets. |
Show User Activity Data Bar in admin ticket grid | Enables the tickets grid page in the backend to display statistics on tickets per admin at the bottom. |
Store attachments in | Sets storage place for the ticket attachments. |
Only allow the upload of attachments with extensions | Lets you block forbidden files in the attachments for ticket's messages. The blocked files' names will be displayed in red, so you can request this file again. |
Tickets autosave period, sec | Governs autosaving of message form on the Ticket Edit form. On heavy-loaded systems can cause productivity loss - in this case, place empty value here or increase this value to 500-600 secs. |
This section governs a special pop-up dialog activated at the side button "Contact Us" button, visible on each store page. The pop-up enables the customer to submit a ticket with a source link to the page from where it was placed. The Feedback Tab is a convenient way to post a guest ticket or a ticket about a particular product or service page.
Option | Description |
---|---|
Enable Feedback Tab | If the option is enabled, Help Desk will show a Feedback Tab at the side of each frontend page. |
Assign to Department | Sets default department for new tickets created via Feedback Tab. |
Tab Color | Sets the color of the Feedback Tab. |
Tab Title | Sets the title of the Feedback Tab. |
Tab Position | Sets the position of Feedback Tab ( at the left or right side of your store). |
Form Title | Sets the title of the popup window. |
Subject Title | Sets the title of field 'Subject' |
Subject Placeholder | Sets placeholder of field 'Subject' |
Description Title | Sets the title of field 'Description' |
Description Placeholder | Sets the placeholder of the field 'Description' |
Allow customer to attach files | Enable or disable the ability to attach files |
Allow customers to select Priority | Enable or disable the ability to set the priority |
Allow customer to select Department | Enable or disable the ability to select the department |
Search Knowledge Base Topics first | A store-based setting can be used when Mirasvit Knowledge Base is installed, and integration enabled. Then, just the prior ticket submission customer will be presented with search results of their inquiry in Knowledge Base articles. |
This section governs templates which are used for email notifications. Each option corresponds with a specific type of email sent to customers or staff on a certain event.
Option | Description |
---|---|
Show Ticket ID in the email title | If the option is enabled, the email subject will contain a ticket ID (e.g. [#VEP-728-96190] Email subject here..) |
Add customers Cc emails to the ticket | Enables sending a CC email. Warning: If option is enabled spam CC email is possible. |
The Number of last replies to be shown in the ticket history | When a customer receives a reply from an agent, the email includes a conversation history. You can limit the number of last replies to the history using this option. If you set it to 0 , you will completely hide the history. |
Template of New Ticket Email for Customers' | When a customer creates a new ticket, he or she receives an email with confirmation. This option sets a template for this email. |
Template of New Ticket Email for Staff | When the customer creates a new ticket, the agent receives an email notifying the agent about the new ticket. This option sets a template for an email. |
Template of New Message Email for Customers' | When the agent replies to a ticket, the customer receives an email with this reply. This option sets a template for this email. |
Template of New Message Email for Staff | When a customer replies to a ticket, the agent receives an email with this reply. This option sets a template for this email. |
Template of New Message Email for a Third-Party | This option sets a template for an email that an agent sends to 3rd party users. |
Template of Ticket Reminder | This option sets a template for an email that the Help Desk reminder sends to an agent. |
Template of Rule Notification | This option sets a template for an email that can be sent using the Help Desk Workflow Rules. |
Template of Survey Satisfaction Result | This option sets a template of an email that allows a customer to rate the quality of the agent's reply. |
The satisfaction survey is an additional block displayed both on email notifications and in messages in frontend. It features three base rate classes and allows you to measure the clients' satisfaction level.
Option | Description |
---|---|
Include a satisfaction survey in the reply email from staff members | Includes a satisfaction block to the email notifications, sent after staff have submitted a message to the ticket. |
Show survey results in the frontend ticket history | Enables the customer to view the satisfaction rating they provided in their account. |
Show survey results in the backend ticket history | Enables display of customer satisfaction rates (per message) in the backend ticket Edit page. |
Send survey results to the ticket owner | If the option is enabled, the store agent will receive a result of the customer's support rate for their reply. |
Send survey results to emails | Sets emails that will receive the results of the support survey. You can enter multiple emails separated by a comma. |
It contains options that manage a policy of ticket submission for registered customers.
Option | Description |
---|---|
Show the Help Desk section in the Customer Account | If the option is enabled, customers will see a Help Desk section in the customer account of the store. |
Allow customers to select Priority | If the option is enabled, customers can select a priority for a new ticket. |
Allow customers to select Department | If the option is enabled, customers can select a department for a new ticket. |
Allow customers to select Order | If the option is enabled, customers can select an order for a new ticket. |
Allow customers to attach files | Enable/disable the ability to attach files |
This section contains only one option - Solved Statuses. This list box allows you to set custom ticket Statuses, which will be used by the Help Desk MX reporting subsystem to determine how many tickets were resolved for a certain period.
Ticket reports can be seen at Customers -> Help Desk MX -> Reports.
The section contains the Working Hours display options. For more information on this topic, see Working Hours
Option | Description |
---|---|
Show online/offline status on the Contact Us page | If this option is enabled, customers will see your store's status on the Contact Us page. |
Show online/offline status in the Feedback popup | If this option is enabled, customers will see your store's status in the Feedback popup. |
Show online/offline status in the Customer Account > My Tickets | If the option is enabled, customers will see your store's status in the Customer Account > My Tickets. |
Default message when we are open | Default message when we are open. Can be overwritten for each schedule in Customers > Help Desk MX > Working Hours. |
Default message when we are closed | Default message when we are closed. Can be overwritten for each schedule in Customers > Help Desk MX > Working Hours. You can use the variable [time_left_to_open] |
Show the working hours on the Contact Us page | If the option is enabled, customers will see the Working Hours of your store on the Contact Us page. |
Show the holiday schedule X days before activation | The number of days to display holiday schedule before activation |
Working schedule title | Title of Working Hours block on the Contact Us page |
Upcoming working schedule title | Title of Upcoming Working Hours block on the Contact Us page |
Normally, these options should be used only in a staging environment. Make sure that they are turned off after moving to production. For example, if Sandbox remains enabled, customers won't receive any email notification.
Option | Description |
---|---|
Activate Sandbox | If the option is enabled, the Help Desk will not send any email to your customers. All emails will be sent to the sandbox email. |
Send All Outgoing emails to Email | Specifies a sandbox email (see previous option). |
Force store's theme to apply styles | If a store theme overrides the Magento way of including styles, this option will add Help Desk styles to the page. |
Log ticket deletion | This option logs ticket deletion in file /var/log/mirasvit/helpdesk.log |
This section manages desktop notifications used for real-time information about the ticket's arrival or update. On heavy-loaded systems, this can cause production loss - so in this case, you need to disable this feature, or increase the check period to 500-600 secs.
Option | Description |
---|---|
Notifications check period, sec | Frequency of updates checks. Setting to 0 will disable them. |
Show notification about the arrival of new tickets for | Users to display a notification for. |
Enable notification about the arriving new messages in tickets assigned for user | If the option is enabled, users will receive notifications about new messages in their tickets. |
Enable notification about assigning a ticket to the user | If the option is enabled, users will receive notifications about new tickets assigned to them. |
This section manages desktop notifications used for real-time information about the ticket's arrival or update. On heavy-loaded systems, this can cause production loss - so in this case, you need to disable this feature, or increase the check period to 500-600 secs.
Option | Description |
---|---|
Help Text | This text will be shown under title on "Contact Us" page and "Feedback" tab |
Show customer the local time in backend | Display the customer's local time in the backend. To ensure the option works correctly, you need to download a timezone database. |
Path to GeoLite2 City database | Used for determining a customer's timezone by using a timezone file. You can download it here https://dev.maxmind.com/geoip/geoip2/geolite2/. Please enter a full absolute path to the file. E.g. /var/lib/GeoLite2-City.mmdb. |
Enable Google reCaptcha | This option allows to control Google reCaptcha on Helpdesk pages. Find settings for Google reCaptcha in Configuration > Security > Google reCaptcha. |
To work correctly, the Help Desk MX requires you to have at least one department where all staff members are registered.
To create a new department, go to the Customers > Help Desk MX > Departments backend page. Press the button Add New. You will see the following properties in two sections:
From
when a member of this department replies to a ticket, so the customer can directly reply to email notifications. Such replies will be automatically fetched and added to tickets only when the corresponding mailbox is registered as a Gateway.If a ticket is unassigned, send notifications to all department members - If this option is activated, all agents (all agents in all departments) will receive notifications (i.e., new messages) about unassigned tickets (including notifications about new tickets).
Help Desk MX can automatically fetch emails from your email account and convert them into tickets. To enable this feature, you have to connect your email account with Help Desk using Gateway, and enable cron.
All Gateways have their Grid, at Customers -> Help Desk MX -> Gateways, where you can create, edit and remove Gateways.
Go to the Customers -> Help Desk MX -> Gateways backend page. Press the button Add New and fill in the following properties:
Our extension supports the following types of encryption:
Example of connecting Gateway to Gmail
You will need the following setup to connect to the Gmail mailbox.
Gmail gateway
(in fact, there can be any logical name)[email protected]
[email protected]
the password to your Gmail account
Yes
imap.gmail.com
IMAP
SSL
993
If you use the Two-Step Authentication, you will need to create a special Password for Application and provide it at Password property instead of a regular one.
Example of connecting Gateway to Outlook/Exchange server
You will need the following setup to connect to the Outlook/Exchange mailbox:
Outlook gateway
[email protected]
[email protected]
the password to your Outlook account
Yes
imap-mail.outlook.com
IMAP
SSL
993
You can check Gateway's current status by pressing the Debug button at the top menu ribbon.
This button will start our special script, to connect to your mailbox using the provided credentials, and display the following data:
The debug page is used to troubleshoot fetching issues. Read more here.
Statuses mark the different stages of a ticket's resolution. Our extension provides three default variations:
If you wish, you can create a set of statuses. If so, you also need to include them to your tickets workflow using the following options:
You can also assign different statuses, using Workflow Rules, or by setting a reminder for a ticket.
To create a new status, go to the Customers > Help Desk MX > Statuses backend page. Press the button Add New. You will see the following settings:
If you wish to have the same status displayed differently on other stores, use the Store View switcher to jump to other store views and put a translation into the Title field.
Priorities are used to rank tickets by their urgency (or other metrics you are using). Our extension comes with three default priorities:
If you think you can create your priority set, you also need to include them in your tickets workflow using the following options:
You can also assign different priorities using Workflow Rules, or by setting a reminder for a ticket.
To create a new priority, go to the Customers > Help Desk MX > Priorities backend page. Press the button Add New. You will see the following settings:
If you wish to have the same priority displayed differently on other stores, use the Store View switcher to jump to other store views and put translation to the Title field.
Quick Responses are message templates which are used to give stereotypical answers to queries about tickets. They are visible only by staff and used only as answers to customers' questions, which are found at the backend Ticket Edit Page.
For detailed information on how to use Quick Response, refer to the How to Reply to a Ticket section.
To create a new quick response, go to the Customers > Help Desk MX > Quick Responses backend page. Press the button Add New. You'll see the following properties:
[ticket_customer_name]
- Customer's full name.[ticket_customer_email]
- Customer's email address.[ticket_code]
- Ticket number (eg. #TX-234234).[store_name]
- Name of the store.[user_firstname]
- Agent's first name.[user_lastname]
- Agent's last name.[user_email]
- Agent's email address.Help Desk MX allows you to create custom fields. You can use them to store any additional information about tickets. You can set it up where you would like to show some custom fields, and can filter and search tickets by custom fields.
To create a new custom field, go to the Customers > Help Desk MX > Custom Fields, and press the button Add New. You will see the following properties:
value1 | label1
value2 | label2
Custom fields can also be used in email templates by their codes. For a detailed description, see the How to customize email notifications template section.
The Help Desk MX allows you to filter incoming emails automatically and cuts off spammers. It is done via special patterns to which emails are compared, and if a match is found - the corresponding message moves to the Spam folder.
To create a new spam pattern, go to Customers > Help Desk MX > SPAM Pattern. Press the button Add New. You will see the following properties:
Spam filter for all emails with the domain example.com
Scope: Headers
Pattern: /[^@][email protected]/
Filter for users who have emails which includes user
, works for any domain.
Matches with: "[email protected]", [email protected]", "[email protected]".
Scope: Headers
Pattern: /.*user.*[@](?!domain\.com).*$/
Filter block for emails beginning with the word "free" or containing the base word "free" after space.
Matches with: "free", "free money!", "free discount".
Doesn't match: "freeze", "nofree".
Scope: Subject
Pattern: /^free[ ].*|^free/
Filter block for emails with text: Special offer.
Matches with: "$pecia1 Offer", "!!special Offer!!", "Special 0ffer?!".
Scope: Body
Pattern: /.*[\$Ss]pecia[l1]\W[Oo0]ffer.*/
The permission grid provides the backend agents with the ability to limit access to tickets. It promotes the separation of duties and can boost effectiveness.
Go to Customers > Help Desk MX > Permissions. Here you can add restrictions for each role, defined on a particular Magento store. By default, there is only one record which allows full access to all agents:
Role | Has access to tickets of department | Can remove tickets |
---|---|---|
All Roles | All Departments | Yes |
That means that any staff member has access to tickets from all departments, and any user can delete tickets.
Administrators can edit this record and add additional ones to set up the correct permissions.
Let's imagine that we have three roles in our store: Administrators, Support, and Sales. We can set up a Help Desk in a way that administrators will be able to access every department and have the ability to delete tickets. Still, Support and Sales will have restricted access to all but tickets from their departments without deleting them. Doing this enables us to make the following set up:
Role | Has access to tickets of department | Can remove tickets |
---|---|---|
Administrators | All Departments | Yes |
Support | Support | No |
Sales | Sales | No |
Also, take note that if, due to any reason, a ticket is sent to the wrong department, that department's team members can redirect the ticket to another department. For example, even if the Support Department team does not have access to the Sales Department tickets, they can assign the ticket to the Sales Department.
The Workflow Rules allow you to automate your task routines.
Each rule is bound to a certain event, contains a set of conditions - which an average ticket needs to meet - and an action that should be executed if the conditions are met. Here is a list of the most frequently used examples:
The possibilities are nearly endless. Please, check this blog post for detailed information on https://mirasvit.com/blog/how-to-streamline-workflow-with-a-unique-help-desk-mx-rules-feature.html.
Also, a set of useful examples can be found in Workflow Rule Examples section.
Rule creation is quite complex; therefore, we will divide this section into five respective subsections:
Here are the basic properties that manage rules execution:
Each Workflow rule shall be bound to an event. These are the following possible events:
Each rule can contain conditions that allow you to determine whether the rule can be applied to the tickets or not, as is listed below:
If there is a custom field, it can also be used as a condition. Each field will be listed in two forms: a standard field value and "before changed," especially for Tickets, which has changed event-- e.g., if the field is Telephone, then conditions will be Telephone and Telephone (before change), respectively.
Conditions can be organized into groups using a mode selector, which appears as a separate condition Conditions Combination. It allows for the creation of very complex rule sets.
Each rule also contains actions that should be executed if a ticket has met its conditions. For now, supported are the following:
This rule definition section allows for the creation of custom email notifications, which are sent upon the triggering of a rule.
To establish a custom notification, you can use the following options:
Beginning from version 1.1.84, we have added two widgets:
You can use API to attract customers and increase sales rate in your store. At this point, you can simultaneously use Help Desk MX from external tools that work on separate servers and use other programs, which includes the use of mobile applications. Using Help Desk MX a store can get a single point of handling all queries, emails, offline chat messages, and other contact sources.
To get the full list of available GraphQL APIs, check GraphQL Reference.
The full documentation on GraphQL is available on the Magento DevDocs page GraphQL Developer Guide
Your store should have installed the module Help Desk MX. In order to begin using GraphQL in the Help Desk MX module it is mandatory to install Helpdesk GraphQl for Magento 2 module. It is not available separately, but it can be installed after the purchase of Help Desk MX.
After you have installed the module Helpdesk Graph Ql, open command line interface and go to the directory with your Magento setup. Run command composer require mirasvit/module-helpdesk-graph-ql
and after it finishes activate Helpdesk Graph Ql module with
command bin/magento module:enable Mirasvit_HelpdeskGraphQl
.
In the end run bin/magento setup:upgrade
to avoid errors regarding the unavailability of the module's data.
Customer object
The Customer object is responsible for providing data on the tickets that include a specific customer.
The Customer
object can contain the following attributes.
Attribute | Data Type | Description |
---|---|---|
mstHelpdeskTickets |
HelpdeskTickets | Displays the tickets of the chosen customer. On input requires customer or parameters "external_id" or "order_id" is required |
Mutation object
A mutation can create, update, or delete objects and fields. In REST terminology, queries operate like GET requests, while mutations are similar to POST, PUT, and DELETE.
A mutation contains the following elements:
The Mutation
object in this module can contain the following attributes.
Attribute | Data Type | Description |
---|---|---|
mstHelpdeskCreateTicket |
MstHelpdeskTicketInput | This attribute is used for creating ticket. The attribute in non-nullable. |
mstHelpdeskAddMessage |
MstHelpdeskMessageInput | Adds a message for created ticket. The attribute in non-nullable. |
HelpdeskTicketInput input object
Being an input type the HelpdeskTicketInput
object can consist of fields that are a scalar, list or other input types.
The HelpdeskTicketInput
object can contain the following attributes:
Attribute | Data Type | Description |
---|
subject
| String | The subject of the ticket. The field is non-nullable.
message
| String | The body message of the ticket. The field is non-nullable.
channel
| HelpdeskTicketChannel object | Depicts the communication channel that was used for the ticket. The field is non-nullable.
telephone
| String | Customer's phone number.
current_url
| String | Depicts current URL to the ticket.
close_ticket
| Boolean | Displays if the ticket is closed.
department_id
| Int | Shows the ID of the department the ticket belongs to.
priority_id
| Int | Displays the ticket priority level.
custom_fields
| Array | Array of of HelpdeskCustomField input objects.
Attributes customer_name and customer_email each can have a description
field that is used only for guest customer
HelpdeskTicketsFilterInput input object
This is another object of the HelpDesk MX module and it is used to filter out the tickets from the database. The HelpdeskTicketsFilterInput
object can contain the following attributes:
Attribute | Data Type | Description |
---|---|---|
external_id |
String | Filters the list of tickets by specific External ID. |
order_id |
Int | Filters tickets by the Order ID. |
HelpdeskMessageInput input object
It contains the message that has to be sent by the Helpdesk service. The HelpdeskMessageInput
object can contain the following attributes:
Attribute | Data Type | Description |
---|---|---|
customer_name |
String | This attribute is used only for guest customer. |
customer_email |
String | This attribute is used only for guest customer. |
message |
String | Message that has to be placed in the ticket. |
HelpdeskCustomFieldInput input object
The HelpdeskCustomFieldInput
input object can contain the following fields regarding the
Field | Data Type | Description |
---|---|---|
code |
Srting | Shows the code ID of the custom field. The field in non-nullable |
value |
String | Contains the information of the custom field. |
HelpdeskTicketsOutput output object
It displays the general information on the list of tickets. The MstHelpdeskTicketsOutput
object can contain the following attributes.
Attribute | Data Type | Description |
---|---|---|
items |
Array | Is the array of MstHelpdeskTicket objects. The field in non-nullable. |
total_count |
Int | Displays a number of total tickets in the output. |
page_info |
SearchResultPageInfo | Displays search results. |
HelpdeskStatus object
This object shows the curent status of the HelpDesk. The MstHelpdeskStatus
contains data with the following attributes:
Attribute | Data Type | Description |
---|---|---|
status_id |
Int | ID of the HelpDesk current status. The field is non-nullable. |
name |
String | Displays the name of the status. The field is non-nullable. |
code |
String | Displays the code of the HelpDesk status. The field is non-nullable. |
color |
String | Depicts the color of the HelpDesk status. The field is non-nullable. |
HelpdeskDepartment object
This object is used to work with the HelpDesk department data. The MstHelpdeskDepartment
contains data with the following attributes:
Attribute | Data Type | Description |
---|---|---|
department_id |
Int | ID of the HelpDesk department. The field is non-nullable. |
name |
String | Displays the name of the HelpDesk department. The field is non-nullable. |
HelpdeskPriority object
This object is used to work with the HelpDesk priority data. The MstHelpdeskPriority
contains data with the following attributes:
Attribute | Data Type | Description |
---|---|---|
priority_id |
Int | ID of the HelpDesk priority level. The field is non-nullable. |
name |
String | Displays the name of the HelpDesk priority level. The field is non-nullable. |
color |
String | Shows the color coding of the HelpDesk priority level. The field is non-nullable. |
HelpdeskTicket object
This object is used to work with the ticket data. The MstHelpdeskTicket
contains data with the following attributes:
Attribute | Data Type | Description |
---|---|---|
subject |
String | The text for the subject field of the ticket. The field is non-nullable. |
code |
String | Displays the code of the ticket type. The field is non-nullable. |
priority |
MstHelpdeskPriority | Shows the ticket priority level. |
status |
MstHelpdeskStatus | Depicts the current ticket status. |
department |
MstHelpdeskDepartment | Shows the data on the department the ticket is processed in. |
customer |
Customer | Shows the data on the customer. |
order |
Order | Shows the data on the order. |
messages |
MstHelpdeskMessages | Displays the list of messages created in the ticket. |
customFields |
Array of MstHelpdeskTicketCustomField | Displays the custom fields data of the ticket. |
HelpdeskMessages object
It is used to work with the ticket's messages data. The MstHelpdeskMessages
contains data with the following attributes:
Attribute | Data Type | Description |
---|---|---|
items |
Array of MstHelpdeskMessage | Represents the messages of the ticket. The field is non-nullable. |
page_info |
SearchResultPageInfo | Displays the resulting page of the search. |
total_count |
Int | Depicts the total number of messages. |
HelpdeskMessage object
It is used to work with the message data fields. The MstHelpdeskMessage
contains data with the following attributes:
Attribute | Data Type | Description |
---|---|---|
triggeredBy |
MstHelpdeskTriggeredBy | Represents who has triggered the message. The field is non-nullable. |
ownerName |
String | Shows the name of a person who triggered the message. The field is non-nullable. |
text |
String | represents a message content. The field is non-nullable. |
createdAt |
String | Depicts a date and time the message was created. The field is non-nullable. |
HelpdeskTicketCustomField object
It is used for the message's custom fields. The MstHelpdeskTicketCustomField
contains data with the following attributes:
Attribute | Data Type | Description |
---|---|---|
name |
MstHelpdeskTriggeredBy | Represents a name for the custom field. The field is non-nullable. |
value |
String | Depicts the custom field content. |
HelpdeskCustomFieldsFilterInput object
It is used to filter the input type of custom fields. The MstHelpdeskCustomFieldsFilterInput
contains data with the following attributes:
Attribute | Data Type | Description |
---|---|---|
is_visible_customer |
Boolean | Filters the customer visible fields. |
is_visible_contact_form |
Boolean | Filters the input contact form. |
HelpdeskCustomFieldsOutput object
It is used to output the custom fields. The MstHelpdeskCustomFieldsOutput
contains data with the following attributes:
Attribute | Data Type | Description |
---|---|---|
items |
Array of MstHelpdeskCustomField | Represents the custom fields of the ticket The field is non-nullable. |
total_count |
Int | Depicts the total number of messages. |
page_info |
SearchResultPageInfo | Displays the resulting page of the search. |
HelpdeskCustomField object
Works with the custom fields of the ticket. The MstHelpdeskCustomField
contains data with the following attributes:
Attribute | Data Type | Description |
---|---|---|
name |
String | Represents the name of the custom field. The field is non-nullable. |
code |
String | Stands for the code marking of the custom field. The field is non-nullable. |
type |
String | The type of the custom field data. The field is non-nullable. |
options |
Array of MstHelpdeskCustomFieldOption | Options of the custom field. |
description |
String | Description of the custom field. The field is non-nullable. |
is_required_customer |
Boolean | If the field requires customer actions. The field is non-nullable. |
is_visible_customer |
Boolean | If the field is customer visible. The field is non-nullable. |
is_editable_customer |
Boolean | If the field can be edited by customer. The field is non-nullable. |
is_visible_contact_form |
Boolean | If the field contains customer visible contact form. The field is non-nullable. |
HelpdeskCustomFieldOption object
Sets the options for the custom fields of the ticket. The MstHelpdeskCustomFieldOption
contains data with the following attributes:
Attribute | Data Type | Description |
---|---|---|
value |
String | Represents the value of the custom field option. The field is non-nullable. |
label |
String | Stands for the label of the custom field option. The field is non-nullable. |
This section contains all you need to do to manage tickets from the backend (i.e. by acting as an Agent). There you will find the following topics addressed:
The main part of the Help Desk MX extension is the Ticket Grid. It is located at Customers > Help Desk MX and contains a list of all tickets submitted by customers. It is also divided into three separate folders (by default all tickets are shown):
Normally, tickets are sent to a proper folder automatically by two checks:
The same action can also be done manually or by using a **Workflow Rule.
Near the drop-down account menu (see screenshot below), the ticket counter is shown.
It consists of two values:
The Ticket Grid also provides you with some practical actions.
If you have chosen to leave the initial reply, then three events will be fired into the ticket's creation - New ticket created, Ticket was changed and New reply from staff.
Use these events wisely to properly create your Workflow Rules and automate workflow.
You can reply to a ticket by either using the Help Desk backend interface or by email, using a special notification which is sent to staff on each customer's reply.
Using Backend Interface.
When you open a particular ticket, you will see that the General tab is divided into two areas - the left-sided panel with To and Ticket Summary section, and the Reply Area, which contains the Public Reply section, which allows you to reply to the ticket.
There are four main options in replying:
If you have Quick Responses, you can use them in the Reply Area, using the Insert Quick Response drop-down menu.
Then go to Help Desk MX -> Quick Responses, and select a record. The field Store View shall contain the same store view (or All Store Views).
Using Email Notification.
This type of reply is available only when you have configured one or more Email Gateways, and registered them in their Departments as a Sender Email. Then, to each customer (or a third party), a reply is added to the particular ticket; an email notification will come to an agent's mailbox.
Just answer that email, and a reply will come to the Gateway and be properly added to the ticket.
{{var ticket.getHiddenCodeHtml() | raw}}
is present on your template. Otherwise, our fetch procedure will turn the reply into a separate ticket (it will think that this is a new ticket request).
An agent can set an email reminder for him or herself (or other agents) and customers - if a ticket is not answered for a long time, the action will be executed along with the reminder.
To establish such a reminder, pick up a ticket, and proceed to the Follow Up tab. There, you will find the following properties which allow you to set up reminders easily:
Three last properties are extremely useful in building an effective policy for managing tickets. For example, using Follow-Up reminders, you can automatically pass long and unfinished tickets on to an expert. The possibility of assigning statuses and priorities allows you to bring the staff's attention to such tickets.
Each ticket also contains useful info that can be used for different kinds of analytics. It is located in the Additional tab, and consists of the following properties:
http://store.com/contact/
.Help Desk MX includes a satisfaction survey in the tickets, which is extremely useful in measuring a level of support and staff productivity.
This survey appends a special block containing a simple form that allows customers to rate each staff reply to all email notifications. There are three possible remarks:
When a customer selects one, he or she is transferred via a corresponding link to the form, where he or she can write detailed feedback.
This feedback can later be seen at Customers > Help Desk MX > Satisfaction Survey Results, with the possibility of per-staff and per-customer filtering.
You can enable this feature at Store > Configuration > Help Desk > Customer Satisfaction Survey, and control the display of its results:
This section describes how Email Notifications are being used and fitted to suit your needs. It consists of the following subsections:
Help Desk MX allows the sending of emails with different types of notifications to the customer and support team. Here is a list of all of our templates, along with its associated actions:
These templates cover virtually any action which can take place while working with customers.
All Email Notification Templates from the Help Desk are regular transactional emails - e. g. they can be customized using default Magento 2 means.
To customize the Help Desk MX email template, you need to perform the following, according to the steps enlisted below:
In email templates, you can use the following variables:
{{var customer.name}}
- customer name{{var customer.email}}
- customer email{{var ticket.code}}
- ticket code{{var ticket.name}}
- ticket subject{{var ticket.department}}
- name of ticket department{{var ticket.status}}
- name of ticket status{{var ticket.priority}}
- name of ticket priority{{var ticket.getCreatedAtFormated($format)}}
- date ticket was created{{var ticket.getUpdatedAtFormated($format)}}
- date ticket was updated{{var ticket.getLastMessageHtmlText()}}
- current ticket's message (in HTML format){{block class='Mirasvit\\Helpdesk\\Block\\Email\\History' area='frontend' template='Mirasvit_Helpdesk::email/history.phtml' ticket=$ticket}}
- block with ticket history{{var ticket.getExternalUrl() }}
- external ticket's URL{{var store.getFrontendName()}}
- name of your store{{var user.firstname}}
- first name of ticket owner{{var user.lastname}}
- last name of ticket owner{{var user.email}}
- email of ticket owner{{var department.name}}
- name of ticket's departmentNote $format can only be of one of these types: "none", "full", "long", "medium", "short", "traditional", "gregorian". For more information, please check https://www.php.net/manual/en/class.intldateformatter.php#intl.intldateformatter-constants
Custom fields can also be used as variables through their codes, which are prefixed with "f_" prefix. If you have a custom field with the code "test_field", the proper email variable should be "{{var ticket.f_test_field}}". For custom fields of type "Drop-down list", the variable "{{var ticket.f_test_field_label}}" displays a label for the selected value.
Help Desk notifications also support standard Magento Email Template variables, such as {{var logo_alt}}, and supports function calling, like {{var store.getFrontendName()}}, and adds a set of its own variables.
{{var customer}}
- allows access to customer properties;{{var ticket}}
- allows access to ticket properties, including custom fields (see below).{{var department}}
- allows access to department properties.The most usable properties are:
{{var customer.getName()}}
- Name of current customer{{var customer.getEmail()}}
- Email of current customer
{{var department.getName()}}
- Name of department to which current ticket was assigned{{var department.getSenderEmail()}}
- Sender email, used as the field From
in notificators
{{var ticket.getCode()}}
- Code of current ticket, e. g. YVB-459-53185.{{var ticket.getName()}}
- Subject of current ticket.{{var ticket.getCustomerEmail()}}
- Email of current customer.{{var ticket.getCustomerName()}}
- Full name of current customer.{{var ticket.getLastReplyName()}}
- Full name of customer or staff member who last replied to the current ticket.{{var ticket.getFrontendLastReplyName()}}
- Name of the author to the last reply as it is displayed at the frontend (depending from option Store > Configuration > Help Desk -> General Settings -> Sign staff replies){{var ticket.getChannel()}}
- Name of the channel that created the ticket - e.g. 'email', 'backend' or 'feedback_tab'.{{var ticket.getExternalUrl()}}
- Frontend URL of current ticket.{{var ticket.getBackendUrl()}}
- Backend URL of current ticket. The variable works correctly if the "Stores > Configuration > ADVANCED > Admin > Security > Add Secret Key to URLs" option is disabled.{{var ticket.getLastMessagePlainText()}}
- Contents of last message posted.{{var ticket.getUserName()}}
- Full name of current ticket owner.{{var ticket.getOrder()}}
- Returns Order object to which current ticket was binded. It provides access to all order's properties (see example below, note that these properties can be used within {{depend}} tag).{{depend ticket.getOrder()}}
{{var ticket.getOrder().getIncrementId()}}
{{/depend}}
Also, if there is a custom field, it can be used as an email variable. Each custom field has a code. Assume that we have created a field with the custom_reason
code. Then the corresponding email variable is:
{{var ticket.getCustomReason()}}
- Email of the current customer.Our extension allows agents to have their signatures automatically added at the end of each response to the ticket. To add a signature, perform the following steps:
From that moment, each notification sent by that agent will be signed with the entered text.
To disable a Notification Email, you need to go to the Store > Configuration > Help Desk > Email Notification Settings. In the dropdown list of notifications, select the option Disable these emails. Then save the configuration to apply changes.
All custom Notification Emails in Help Desk are created using Workflow Rules.
To add a separate notification to the email flow, you need to set the conditions that should trigger emails to customers' properly, and add a message to the Email Subject and Email Body in Notifications tab. Here are a few real-life examples, which will help you create your custom notifications.
Notify Staff of Change of Ownership
Event: Ticket assigned to staff
Conditions: None
Notifications:
Send email to ticket owner: Yes
Notify a customer about ticket closing, if the customer has not answered for 30 days
Event: Check every hour
Conditions:
Hours since Last reply is 720
Status is not Closed
Notifications:
Send email to customer: Yes
Notify if a ticket has not been answered within three days
Event: Check every hour
Conditions:
Hours since Last reply greater then 72
Status is Waiting for Customer
Notifications:
Send email to customer: Yes
This feature allows you to set a timetable for your store. It is displayed on the Contact Us page in the form of a working hours table.
The Contact Us popup will display only the current status message (open/closed - as defined in particular Schedule).
To create a new schedule, go to the Customers > Help Desk MX > Working Hours backend page. Press the button Add New Schedule. You will see the following settings:
Reports are used in monitoring the statistics of tickets' flow and support quality.
They are divided into two separate menu actions:
These actions can be selected from the menu drop-down in the Customers -> Help Desk MX section.
Reports contain the following metrics:
Automatically assigns a ticket to sales staff members only if the tickets have 'Order' as the subject
Selects a department and a staff member, who will be responsible for the basic Order questions - say, Jane Doe from the Sales department.
Event: New ticket created
Conditions: Subject contains Order
Actions:
Sales
Jane Doe
Automatically assigns a ticket, created from email, to a certain department
Event: New ticket created
Conditions: Ticket Source (Channel) is Email
Actions:
Support
Automatically sets a ticket's status to 'In Progress' after the first reply of a support team member
Event: New Reply from Staff
Conditions: None
Actions:
In Progress
Creates a custom manager notification when the tag "Problem" is added to the ticket
Event: Ticket was changed
Conditions:
Tags contains Problem
Actions: None
Notifications:
[email protected]
'A problem ticket arrived'
(your notification message)
Change priority to High when it has not been answered for three days
Event: Check every hour
Conditions:
Hours since the Last reply is greater than 72
Last Reply Type is the Last Reply of the Customer
Actions:High
This section describes the most common problems that customers report and how they can be resolved:
If you see an error message like "Fatal error: Uncaught Error: Call on a member function appendChild() on null in ../emogrifier/src/Emogrifier.php:1419", please run the following command composer require pelago/emogrifier:2.0.0
.
There are several possible reasons why the fetch stopped:
IMAP fetch capacity limit
IMAP Protocol has a limited time window in fetching an email collection. When your mailbox contains over 2048 emails, the fetching collection becomes too long, and IMAP returns an empty collection. Our extension, therefore, thinks that there are no new emails and exits.
Incorrect Email Format
Some emails can come in a special format, such as a non-standard encoding (Chinese Unicode, for example) or non-standard origin (Telnet, for example). Not all of them can be parsed since they are not standard. But they can block subsequent emails' fetch since a parse error stops the fetching cron task.
Third-Party Tool or Extension Conflict
Our extension requires a monopoly in the mailbox, which is registered as Gateway. It fetches unread emails and marks them as read - so they will not be fetched next time. If you use a third-party tool which also uses the same mailbox, it can also mark emails as read, and our extension will skip them.
To resolve this case, you need to create two different Gateways for each store.
Latest fetch was incomplete due to the issue with the server
The reason why the emails weren't fetched may be that probably the latest fetch was incomplete due to the issue with the server(may be due to the upgrade process etc) and the fetch process was locked.
To check if fetching works, you can run the following command to fetch emails manually: bin/magento mirasvit:helpdesk:run
If the process is locked you should only delete the helpdesk.lock file and fetch emails again. The file is created with each cron run, so the file is always on the server, you should remove the file only if there is an issue with fetching.
This error indicates that the extension could not connect to the mailbox. Possible causes are:
You use two-factor authentication in your mailbox
In this case, you need to create a separate password for the helpdesk and use it when you configure the gateway.
IMAP is disabled for your mailbox
Please, contact your mailbox provider and ask them to email IMAP.
This issue is reported by our Email Fetching module and can be seen at Customers > Help Desk MX > Gateways, where the error "Can't fetch" appears.
You can also run the following test: Open your shell console and run the following command: php -m | grep imap
. If you see an empty result, then IMAP is not enabled, and you need to enable it.
The cause of this issue is that PHP has two configurations. One for Apache (or other servers), the other for shell where the php-imap extension should work. Our extension fetches emails at shell level (via cron tasks) to use only php shell.
Solution:
Contact your hosting provider and ask to enable php-imap for PHP at the shell level.
Example:
/* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */, OKD-384-58649, AntioxiBoost, AntioxiBoost, Administrator, [email protected]
/* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */
This script is used by the CloudFlare Email Protection cloud service, which masks 'on-the-fly' email addresses by placing a special script after them.
Solution:
Possible causes:
Variable {{var ticket.getHiddenCodeHtml()}} is missing on the email template
This issue can appear when a special variable {{var ticket.getHiddenCodeHtml()}} is missing in the email template. Also, it can be caused by some filter or spam protection means of your email provider.
Solution 1
Solution 2
Email service removes hidden ticket code
This issue can appear when the email service (Office360, for example), which cleans all additional email attributes, is used as either a sender or a gateway. This means that the ticket code is stripped from the email, and the customer's answer cannot be bound to the proper ticket.
Solution:
Please, check your sender emails: if they are also registered as Gateways, these replies are skipped because our extension treats them as auto-notifications.
Moreover, all emails that originate from Gateway mailboxes will be skipped to avoid an infinite cycle due to "conversations" between Gateways.
Solution:
Remove all mailboxes that are used as sender emails from Gateways or provide your staff with separate mailboxes.
Please, check the full error message. It should look like one of these examples (or similar):
PHP Fatal error: Call to undefined method Mirasvit_Ddeboer_Imap_Message::getErrors() in /.../app/code/local/Mirasvit/Helpdesk/Helper/Fetch.php on line 299
Fatal error: Uncaught Error: Class 'Mirasvit_Ddeboer_Imap_Server' not found in /.../app/code/Mirasvit/Helpdesk/Helper/Fetch.php:83
Causes: during upgrade or installation, not all of the required files of our extension were copied.
Solutions:
lib/Mirasvit
from the installation package was correctly installed to lib/internal
subdirectory into your Magento store root.This section describes the most frequently asked tasks with a detailed description, on how to do it:
You can insert the help desk contact form to the CMS page as a Magento widget.
To do this, please take the following steps:
It is our extension's default behavior, so we do not recommend changing it unless you need it to be changed.
If you have decided to go through with changing, nevertheless, do the following steps:
/vendor/mirasvit/module-helpdesk/src/Helpdesk/Model/Ticket.php
and find the function addMessage
.$this->setUserId($user->getId());
type.The module works with the different chats that send offline messages. You only need to send the offline messages to the email that is configured as a Gateway
To change the email template of the Helpdesk, you need to do the following steps:
Below are examples of scripts that can be used in transferring data from Mirasvit Help Desk MX for Magento 1 to Mirasvit Help Desk MX for Magento 2. To use these scripts, you need the help of a PHP developer. The scripts may contain bugs which may not transfer all necessary data. Therefore, you may need to change them to meet your needs. Migration service is not a part of our support service, so if you need our team's help, you will need to buy a migration service.
Click on the names of scripts below to download:
mirasvit_helpdesk_m1_export.php
- script for exporting Help Desk data to XML file.mirasvit_helpdesk_m2_import.php
- script for importing Help Desk data from XML file.freshdesk_migration.php
- script for importing Freshdesk json data.Follow these steps to correctly perform the migration:
mirasvit_helpdesk_m1_export.php
at the root of your M1 store, and run it either:
http://store_m1.com/mirasvit_helpdesk_m1_export.php
, orphp -f mirasvit_helpdesk_m1_export.php
helpdesk_export.xml
will be created at the store's root with all your data. Transfer it to the root of your M2 store;mirasvit_helpdesk_m2_import.php
at the root of your M2 store, and run it either:
http://store_m1.com/mirasvit_helpdesk_m2_import.php
, orphp -f mirasvit_helpdesk_m2_import.php
mirasvit_helpdesk_m2_import.php
to the root of your M2 store, and run it either:
http://store_m1.com/freshdesk_migration.php
, orphp -f freshdesk_migration.php
In some cases, imported scripts can crash at the stage of a timeout or memory overloading errors (due to a large quantity of data). In this case, all you have to do is restart the import script by reloading the browser page. It will skip the previously uploaded data and proceed to the last unprocessed record.
To upgrade the extension, follow the next steps:
Run the command composer require mirasvit/module-helpdesk:* --update-with-dependencies
to update the current extension with all dependencies.
composer require mirasvit/module-helpdesk:* hyva-themes/magento2-mirasvit-helpdesk:* --update-with-dependencies
composer update mirasvit/*
. It will update all the Mirasvit modules installed in your store. php -f bin/magento setup:upgrade
to install the updates.php -f bin/magento cache:clean
to clean the cache.Deploy the static view files
rm -rf pub/static/*; rm -rf var/view_preprocessed/*; php -f bin/magento setup:static-content:deploy
To temporarily disable the extension, please take the following steps:
php -f bin/magento module:disable Mirasvit_Helpdesk
to disable the extension.
php -f bin/magento module:disable -f Mirasvit_Helpdesk Hyva_MirasvitHelpdesk
To uninstall the extension, please follow these steps:
Run the command composer remove mirasvit/module-helpdesk
to remove the extension.
composer remove mirasvit/module-helpdesk hyva-themes/magento2-mirasvit-helpdesk
(2024-11-13)
(2024-11-06)
(2024-10-17)
(2024-10-07)
(2024-08-15)
(2024-07-31)
(2024-07-26)
(2024-07-23)
(2024-06-20)
(2024-06-13)
(2024-05-30)
(2024-05-24)
(2024-02-12)
(2023-12-13)
(2023-12-12)
(2023-12-04)
(2023-12-01)
(2023-11-23)
(2023-11-06)
(2023-11-01)
(2023-09-26)
(2023-08-28)
(2023-06-29)
(2023-05-19)
(2023-04-20)
(2023-02-21)
(2023-02-10)
(2023-02-08)
(2023-02-01)
(2023-01-23)
(2022-11-21)
(2022-10-28)
(2022-10-06)
(2022-09-12)
(2022-08-23)
(2022-08-10)
(2022-08-02)
(2022-08-01)
(2022-07-24)
(2022-07-21)
(2022-07-04)
(2022-06-20)
(2022-05-24)
(2022-05-17)
(2022-04-18)
(2022-02-07)
(2022-01-19)
(2021-11-23)
(2021-07-27)
(2021-07-19)
(2021-05-31)
(2021-03-01)
(2021-01-26)
(2021-01-21)
(2021-01-15)
(2020-12-15)
(2020-12-07)
(2020-11-11)
(2020-10-30)
(2020-10-20)
(2020-09-30)
(2020-09-09)
(2020-09-03)
(2020-09-02)
(2020-08-13)
(2020-07-29)
(2020-07-23)
(2020-07-06)
(2020-05-27)
(2020-05-15)
(2020-05-14)
(2020-04-15)
(2020-03-27)
(2020-03-19)
(2020-03-10)
(2020-02-26)
(2020-02-25)
(2020-02-18)
(2020-02-11)
(2020-01-17)
(2019-12-24)
(2019-12-13)
(2019-12-05)
(2019-11-28)
(2019-11-19)
(2019-11-11)
(2019-11-07)
(2019-10-22)
(2019-10-17)
(2019-10-11)
(2019-10-01)
(2019-09-06)
(2019-09-06)
(2019-08-23)
(2019-08-13)
(2019-08-12)
(2019-07-31)
(2019-07-15)
(2019-07-10)
(2019-06-12)
(2019-06-05)
(2019-06-04)
(2019-05-14)
(2019-05-13)
(2019-05-06)
(2019-04-19)
(2019-03-15)
(2019-03-07)
(2019-02-28)
(2019-01-28)
(2019-01-24)
(2019-01-23)
(2019-01-09)
(2018-11-30)
(2018-11-29)
(2018-11-19)
(2018-11-16)
(2018-11-15)
(2018-11-01)
(2018-09-28)
(2018-09-26)
(2018-09-07)
(2018-08-23)
(2018-08-21)
(2018-08-16)
(2018-07-13)
(2018-07-13)
(2018-07-04)
(2018-05-22)
(2018-05-08)
(2018-04-13)
(2018-04-03)
(2018-03-28)
(2018-03-26)
(2018-03-16)
(2018-03-13)
(2018-03-01)
(2018-02-21)
(2018-02-14)
(2018-01-31)
(2018-01-02)
PHP Fatal error: Uncaught Error: Class 'Mirasvit_Ddeboer_Imap_Server' not found
(2017-10-25)
(2017-10-24)
(2017-10-02)
(2017-09-27)
(2017-09-18)
(2017-09-14)
(2017-09-05)
(2017-08-30)
(2017-08-29)
(2017-08-08)
(2017-07-05)
(2017-04-25)
(2017-03-30)
(2017-03-10)
(2017-03-07)
(2017-02-24)
(2017-02-20)
(2017-02-08)
(2017-02-06)
(2017-02-03)
(2017-01-31)
(2017-01-30)
(2017-01-23)
(2017-01-17)
(2017-01-13)
(2017-01-11)
(2017-01-10)
(2016-12-22)
(2016-12-08)
(2016-11-29)
(2016-10-31)
(2016-09-07)
(2016-06-29)
(2016-06-24)
(2016-06-22)
(2016-06-10)
(2016-05-27)
(2016-04-30)
(2016-04-26)
(2016-04-21)
(2016-04-20)
(2016-04-11)
(2016-03-14)
(2016-03-07)
(2016-03-02)
(2016-03-02)
(2016-03-01)
(2016-02-25)
(2016-02-15)