Implementing user support using JIRA or how we got rid of OTRS

  • Tutorial

0. What is it all about


The story began with the fact that the company I worked for had an old and, subjectively, somewhat inconvenient application processing system (OTRS), with which technical support worked. The development used JIRA, and the lack of integration between JIRA and OTRS made it difficult to formalize the process of interaction between departments. In addition, there were several significant shortcomings in OTRS, for example, a letter hired by one support employee could not see another. These problems had to be solved somehow, and in the process of thinking it all came down to two options:
  1. Update OTRS and configure its integration with JIRA
  2. Full migration of technical support to JIRA and disabling OTRS

They decided to do the second option: it allowed to unify work tools, stop supporting unnecessary service (which administrators supported on the principle of “work - do not touch”, which did not allow optimizing and developing it), implement automatic statistics collection on technical support work and use various JIRA buns : Kanban boards, creating a template bug for one-button development, flexible search, automatic mailing of letters when fixing a bug, and more.

To simplify the work, the correspondence with users was decided to reduce to the institution the tasks by the first letter from the user and commenting on the tasks for all subsequent ones. Technical support comments were sent back to the user by letter.


To implement the minimum working draft, which will be discussed in this article, we need:
  1. JIRA on its server. Cloud JIRA does not support necessary plugins,
  2. JETI (you can also JEMH , but expensive and not in this manual) - a plugin that adds tools for the correct work with incoming and outgoing letters,
  3. Administrator rights and hands of medium curvature ;-)
  4. The user with whom we will create tasks and comments (let's call him support),
  5. A separate JIRA project for working with the technical support box (in the article it will be support@example.com), customized to your taste. It has one type of task (in my case - Ticket)


1. We finish the fields and roles of the project


First, we need to make several changes to the created project related to the specifics of the plugins used and the features of the project.
  1. Create a field of type “Text Field (single line)” and bind it to the screens for editing and viewing tasks. In it, the plugin will store user mail. Call it “Customer Email.”
  2. In the role of Developers of the project, we write people who will provide user support. We prohibit all possible task changes for everyone except this role using the Permission Scheme, since in our case “wrote a comment in the task” = “sent a message to the user”.


2. Set up auto-response and comment templates in JETI


We will have two types of letters:
  1. Auto Answer - confirmation for the user about creating a task. Allows you to save support from unnecessary work, and users from unnecessary waste of nerves in writing a second letter.
  2. A regular letter is the main way of communicating support with the user, will be sent when commenting on the task.

* In templates, you can make cool layout and more, but not within the framework of this article, so the examples will be ugly, but working. For everything else on the form, there is a Field picker (allows you to pull out field values ​​from JIRA) and HTML tags ;-)

Perhaps we will start. For this:
  1. Go to Administration> Add-ons> JIRA Email This Issue (Configuration)> Templates> Add
  2. In the form that opens, enter the name of the template (in my case, “Comment template”), click “Add”
  3. Fill in the fields Subject template (Subject of the letter) and HTML Body Template (Body of the letter), example: here
    Screenshot

  4. Repeat steps 1-3 for the auto-response template (In my case, "Auto-reply template"), example: here
    Screenshot

    Now the “Comment template” needs to be attached to a specific project and event using the Notification template. This is not necessary for the “Auto-reply template” - we will tie it to the creation of a task from a letter, and not to an event in JIRA.
  5. Go to Administration> Add-ons> JIRA Email This Issue (Configuration)> Notifications> Add
  6. In the form that opens, enter the name of the notification template: “Comment notification template” and click “Add”
  7. Click “Add” again in the upper right corner of the screen.
  8. Fill out the form:
    Event Type: “Issue Commented” - the letter is sent as a reaction to the event in JIRA. In this case, select the event that JIRA sends when commenting on any task.
    Template: “Comment template”
  9. Click Add again
  10. In the form that opens, fill in the fields:
    Recipients (To): “Customer Email” from paragraph 1.1
    Add attachments to email: Newest - in the letter we will only send the latest attachments to the user.
  11. Click “Save.”


3. We configure JIRA for work with incoming mail


Now we’ll configure the creation of tasks and comments to them through the mail. This can also be done without using the JETI plugin, replacing “Email this Issue Mail Handler” in paragraph 4 with “Create a new issue or add a comment to an existing issue”.
  1. We go along the path: Administration> System> Incoming Mail> Add POP> IMAP Mail Servers
  2. We connect to the support mail "support@example.com" - exactly the same as any email client. Pay attention to the useful button "Test connection".
    Filling example

  3. After successfully opening the mailbox, click on the “Add Incoming Mail Handler” button just below to add our mail handler.
  4. In the window that opens, fill out:
    “Server” - Mail created just above;
    “Handler” - “Email this Issue Mail Handler”
  5. After filling, click "Next"
  6. On the next page, fill out the form as follows:
    Project: Your project
    Issue Type: Ticket
    Default Reporter: support
    Notify user: Uncheck
    There is also a “Test” button.
    Filling example


    Now JIRA is able to create tasks via mail, but for the entire project to work correctly, you need to configure Handler in the plugin itself.
  7. Go to Administration> Add-ons> JIRA Email This Issue (Configuration)> Mail Handlers> Add
  8. Fill out the form:
    Project: Your project
    Issue Type: Ticket
    Acknowledge new issues: “Auto-reply template” - indicate the auto-reply template
    * Acknowledge new comments - here you can file another auto-response template for subsequent letters from the user. Personally, I do not use, but it is possible.
    Sender field: “Customer Email” - select the field where we will save the user's mail.
    Filling example


  9. Click “Save”


4. Configure outgoing mail in JETI


Since we already created the templates, we only need to indicate the context of their application:
  1. Go to Administration> Add-ons> JIRA Email This Issue (Configuration)> Contexts> Add
  2. In the form that opens, fill out:
    Project: Your project
    Issue Type: Ticket
    Notification Template: “Comment notification template”
    From Address: “support@example.com” - enter the mail that we will use for correspondence with users.
    Filling example

  3. Save again


5. Check


Now let's look at the results of our work:
  1. We send a letter to the support address - within five minutes the task should be started and an auto answer should come. In the Customer Email field of the created task, there should be the address of the sender of the letter, if there is no such user in JIRA. An automatic reply about receiving a letter should come to the mail.
  2. We send another letter with the same subject and from the same address - the task should be commented out.
  3. We comment on the task - the user should receive an email with a comment.


View from the side of Jira


View from the user's mail


6. Summary


At this stage, we created a minimally workable project for processing user requests based on JIRA and JETI.

Pros:
  1. Gathering technical information about the site user using query collectors (permission, browser, page - in theory, in general, everything that js can pull out),
  2. Integration with other plugins: kanban board for a project, automatic mailing of letters upon release, sending reminders of unfinished tasks etc,
  3. A single working tool for development and support,
  4. Implementation of analytics of any complexity for the work of technical user support.


Minuses:
  1. The author of JETI has not yet fulfilled a request to send custom events when processing letters. Therefore, it was not possible to configure rediscovery of tasks when receiving a repeated letter from the user after the first was processed by technical support. Now I have to catch filters in notifications from JIRA, but they promise to fix it in the next release: link
  2. Inability to send specific attachments to the user: the last few are sent according to some tricky algorithm.
  3. Dependence on the general JIRA outgoing mail settings (letter prefix, text address) - I did not find how to fix it, and I will be glad to ideas if there are any.
    Lack of protection against spam - they decided to use filters through the interface of the mail itself, but it would be cool to do such things through JIRA.
  4. You can’t just take and send a letter of support to some kind of left box. A rare, but sometimes necessary case.


That's all, in the next article I will try to tell how to add cool and necessary things to this project, such as:
  • Standard letter templates - the project for supporting users without templates looks strange,
  • Sending a letter about a task fix when closing a development task,
  • Query collector and kanban board mentioned above.

Also popular now: