Workflow Rules

The Workflow Rules allows you to monitor your tickets and when they meet a certain requirements , the Rule starts the action. You can automatically assign any ticket to your best staff members or to a certain department, so they can provide the best service to your customers and to keep the job done. Auto-set up a tickets status to 'In Progress' after the first reply of a support team member, notify all the department members when a new ticket is created, send a reminder to the ticket owner if there is no reply during 3 days, etc.

Please, check this blog post for detailed information http://mirasvit.com/blog/how-to-streamline-workflow-with-a-unique-help-desk-mx-rules-feature.html.

Conditions in workflow rules

Help Desk Workflow Rules can contain conditions, which allows to filter tickets, that are applied to this rule actions. Here is the list of them:

  • Subject - title of ticket
  • Last message body - contents of last public message, leaved in particular ticket
  • Created at - date of ticket creation
  • Updated at - date of ticket last update (e. q. new message appeared, or properties changed)
  • Store - store, from where ticket was submitted (note: this condition can not detect backend-created tickets, as they can be binded to any store. Use for this task Ticket Source condition)
  • Priority (before change) - priority, which particular ticket has prior to event firing (used only for Ticket was changed event)
  • Priority - current ticket priority
  • Priority (before change) - priority, which particular ticket has prior to event firing (used only for Ticket was changed event)
  • Priority - current ticket priority
  • Status (before change) - status, which particular ticket has prior to event firing (used only for Ticket was changed event)
  • Status - current ticket status
  • Department (before change) - department, which particular ticket has prior to event firing (used only for Ticket was changed event)
  • Department - current ticket department
  • Owner (before change) - owner, which held particular ticket prior to event firing (used only for Ticket was changed event)
  • Owner - current ticket owner
  • Is Archived (before change) - whether particular ticket was in archive prior to event firing (used only for Ticket was changed event)
  • Is Archived - whether ticket is archived
  • Last Reply By - who was the last replier in this ticket: Customer of Staff agent
  • Hours since Created - time period from creation of particular ticket (note: this condition is not precise, use equal or greater or equal or lesser comparators here)
  • Hours since Updated - time period from last update of particular ticket (note: this condition is not precise, use equal or greater or equal or lesser comparators here)
  • Hours since Last Reply - time period from last message appearance in particular ticket (note: this condition is not precise, use equal or greater or equal or lesser comparators here)
  • Last Reply By - who was the last replier in this ticket: Customer of Staff agent
  • Tags - tags, associated with particular ticket in Additional tab at Tags field.
  • Customer Email - email, which used author of particular ticket.
  • Carbon Copy - email, set as CC field in particular ticket.
  • Blind Carbon Copy - email, set as BCC field in particular ticket.
  • Order number - number of order, associated with particular ticket (useful, if orders has a structured numbering on given store).
  • Ticket Source - source, from there ticket was created. Has four options: Email, Backend, Contact Tab and Customer Account.

Also, if there is custom field, it also can be used as condition. Each field will be listed in two forms: standard field value and "before changed", used especially for Ticket has changed event. E. q., if the field is Telephone, then conditions will be Telephone and Telephone (before change) respectively.

Email variables in workflow notifications

Help Desk notifications also support standard Magento Email Template variables, such as {{var logo_alt}}, and supports function calling, like {{var store.getFrontendName()}}, and also 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 field From in notificators

  • {{var ticket.getCode()}} - Code of current ticket, e. q. 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 of staff member, who last replied in current ticket.
  • {{var ticket.getFrontendLastReplyName()}} - Name of last reply author as it is displayed at frontend (depending from option Help Desk -> Settings -> General Settings -> Sign staff replies )
  • {{var ticket.getChannel()}} - Name of channel, which created this ticket - e.q. 'email', 'backend' or 'feedback_tab'.
  • {{var ticket.getExternalUrl()}} - Frontend URL of current ticket.
  • {{var ticket.getBackendUrl()}} - Backend URL of current ticket.
  • {{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 is binded. It provides access to all order's properties (see example below, note that these properties can be used within {{depend}} tag).

Assume you have to get order number, to which current ticket is binded. This requires the following code:

{{depend ticket.getOrder()}}
    {{var ticket.getOrder().getIncrementId()}}
{{/depend}}

Also, if there is custom field, it also can be used as email variable. Each such custom field has a code. Assume, that we had created field with custom_reason code. Then the corresponding email variable would be:

  • {{var ticket.getCustomReason()}} - Email of current customer.
Help Desk MX