Реалізація підтримки користувачів засобами JIRA або як ми позбулися OTRS

    0. Про що це все
Історія почалася з того, що в компанії, в якій я працював, була стара і, суб'єктивно, кілька незручна система обробки заявок (OTRS), з якою працювала технічна підтримка. Розробка використовувала JIRA, а відсутність інтеграції між JIRA і OTRS заважало толком формалізувати процес взаємодії відділів. Крім цього, в OTRS було кілька суттєвих недоліків, наприклад лист, взяте в роботу одним співробітником підтримки, не міг бачити інший. Ці проблеми треба було якось вирішувати і в процесі роздумів все звелося до двох варіантів:
 
     
  1. Оновлення OTRS і налаштування її інтеграції з JIRA
  2.  
  3. Повне перенесення роботи техпідтримки в JIRA і відключення OTRS
  4.  
Робити вирішили другий варіант: це дозволяло уніфікувати робочі інструменти, перестати підтримувати зайвий сервіс (який адміни підтримували за принципом «працює — не чіпай», що не дозволяло його оптимізувати і розвивати), реалізувати автоматичну складання статистики по роботі технічної підтримки і використовувати різні плюшки JIRA: канбан-дошки, створення шаблонного бага на розробку однією кнопкою, гнучкий пошук, автоматичну розсилку листів при виправленні помилки та інше.
 
Для спрощення роботи листування з користувачами вирішили звести до закладу завдання з першого листа від користувача і коментування завдання з усім наступним. Коментарі техпідтримки відправлялися назад користувачеві листом.
 
 
Для реалізації мінімально робочого проекту, про який піде мова в цій статті, нам знадобляться:
 
     
  1. JIRA на своєму сервері. Хмарна JIRA не підтримує необхідні плагіни,
  2.  
  3. JETI (можна і <a href="http://www.e-junkie.com/javahollic/product/473912.php#JIRA+Enterprise+Message+Handler+%28JEMH%29">JEMH
  4. , але дорого і не в даному мануалі) — плагін, який додає інструментарій для коректної роботи з вхідними та вихідними листами,
 Права адміністратора і руки середньої кривизни ;-)
 Користувач, яким ми будемо створювати завдання і коментарі (назвемо його support),
 Окремий проект JIRA для роботи з ящиком техпідтримки (у статті це буде support@example.com), налаштований на ваш смак. У ньому один тип завдань (в моєму випадку — Ticket)
 
 
 1. допілівать поля і ролі проекту
Спочатку нам потрібно внести в створений проект кілька змін, пов'язаних зі специфікою використовуваних плагінів і з особливостями проекту.
 
     
  1. Створюємо поле типу «Text Field (single line)» та прив'язуємо його до екранів редагування та перегляду завдань. У ньому плагін буде зберігати пошту користувача. Назвемо його «Customer Email».
  2.  
  3. В роль Developers проекту записуємо людей, які здійснюватимуть підтримку користувачів. Всі можливі зміни ТАСК забороняємо для всіх, крім даної ролі, за допомогою Permission Scheme, так як в нашому випадку «написав коментар в задачі» = «відправив лист користувачеві».
  4.  
 
 2. Налаштовуємо шаблони автоответа коментарів у JETI
У нас буде два типи листів:
 
     
  1. Автовідповідь — підтвердження для користувача про створення завдання. Дозволяє позбавити підтримку від зайвої роботи, а користувачів — від зайвої витрати нервів на написання другого листа.
  2.  
  3. Звичайний лист — основний спосіб комунікації підтримки з користувачем, буде надсилатися при коментуванні завдання.
  4.  
* У шаблонах можна зробити кльову верстку та інше, але не в рамках даної статті, тому приклади будуть некрасиві, але робітники. Для всього іншого на формі є Field picker (дозволяє витягувати значення полів з JIRA) і HTML-теги ;-)
 
Мабуть, почнемо. Для цього:
 
     
  1. Йдемо в Administration> Add-ons> JIRA Email This Issue (Configuration)> Templates> Add
  2.  
  3. У формі, вводимо назву шаблону (В моєму випадку «Comment template»), тиснемо «Add»
  4.  
  5. Заповнюємо поля Subject template (Тема листа) і HTML Body Template (Тіло листа), приклад: тут
     Скріншот
      
  6.  
  7. Повторюємо кроки 1-3 для шаблону автответа (В моєму випадку «Auto-reply template»), приклад: тут
     Скріншот
    Тепер «Comment template» потрібно прив'язати до конкретного проекту і події за допомогою Notification template. Для «Auto-reply template» цього робити не треба — ми прив'яжемо його до створення завдання з листа, а не до події в JIRA.
      
  8.  
  9. Йдемо в Administration> Add-ons> JIRA Email This Issue (Configuration)> Notifications> Add
  10.  
  11. У формі, вводимо назву шаблону повідомлень: «Comment notification template» і тиснемо «Add»
  12.  
  13. Знову тиснемо «Add» у правому верхньому кутку екрану
  14.  
  15. Заповнюємо форму:
    Event Type: «Issue Commented» — лист надсилається як реакція на подію в JIRA. У даному випадку вибираємо подія, яка висилається JIRA при коментуванні будь-якої задачі.
    Template: «Comment template»
      
  16.  
  17. Знову тиснемо «Add»
  18.  
  19. У формі, заповнюємо поля:
    Recipients (To): «Customer Email» з пункту 1.1
    Add attachments to email: Newest — у листі користувачеві будемо висилаються тільки останні вкладення.
      
  20.  
  21. Тиснемо «Save».
  22.  
 
 3. Конфігуріруем JIRA для роботи зі вхідною поштою
Тепер налаштуємо створення завдань і коментарів до них через пошту. Це можна зробити і без використання плагіна JETI, замінивши в 4-му пункті «Email this Issue Mail Handler» на «Create a new issue or add a comment to an existing issue».
 
     
  1. Йдемо по дорозі: Administration> System> Incoming Mail> Add POP> IMAP Mail Servers
  2.  
  3. Підключаємося до пошти підтримки «support@example.com» — абсолютно аналогічно будь-якому поштовому клієнтові. Зверніть увагу на корисну кнопочку «Test connection».
     Приклад заповнення
      
  4.  
  5. Після успішного закладу ящика тиснемо по кнопці «Add Incoming Mail Handler» трохи нижче, щоб додати обробник нашої пошти.
  6.  
  7. У вікні заповнюємо:
    «Server» — Пошта, створена трохи вище;
    «Handler» — «Email this Issue Mail Handler»
      
  8.  
  9. Заповнивши, тиснемо «Next»
  10.  
  11. На наступній сторінці заповнюємо форму таким чином:
     Project: Ваш проект
    Issue Type: Ticket
    Default Reporter: support
    Notify user: Прибираємо галочку
    Так само є кнопка «Test».
     Приклад заповнення
      
    Тепер JIRA вміє створювати завдання через пошту, але для коректної роботи всього проекту потрібно доналаштувати Handler в самому плагіні.
      
  12.  
  13. Йдемо в Administration> Add-ons> JIRA Email This Issue (Configuration)> Mail Handlers> Add
  14.  
  15. Заповнюємо форму:
     Project: Ваш проект
    Issue Type: Ticket
    Acknowledge new issues: «Auto-reply template» — вказуємо шаблон автоответа
    * Acknowledge new comments — сюди можна запиляти ще один шаблон автоответа на наступні листи від користувача. Особисто я не використовую, але можна.
    Sender field: «Customer Email» — вибираємо поле, куди будемо зберігати пошту користувача.
     Приклад заповнення
     
     
  16.  
  17. Натискаємо «Save»
  18.  
 
 4. Налаштовуємо вихідну пошту в JETI
Так як шаблони ми вже створили, нам залишилося тільки вказати контекст їх застосування:
 
     
  1. Йдемо в Administration> Add-ons> JIRA Email This Issue (Configuration)> Contexts> Add
  2.  
  3. У формі, заповнюємо:
     Project: Ваш проект
    Issue Type: Ticket
    Notification Template: «Comment notification template»
    From Address: «support@example.com» — вводимо пошту, яку будемо використовувати для листування з користувачами.
     Приклад заповнення
      
  4.  
  5. Знову «Save»
  6.  
 
 5. Перевіряємо
Тепер подивимося на результати наших праць:
 
     
  1. Надсилаємо листа на адресу підтримки — протягом п'яти хвилин повинна бути заведена завдання і повинен прийти автовідпов. У полі Customer Email створеної завдання має бути адреса відправника листа, якщо в JIRA немає такого користувача. На пошту повинен прийти автовідповідь про отримання листа.
  2.  
  3. Надсилаємо ще один лист з тією ж темою і з того ж адреси — задача має бути відкоментований.
  4.  
  5. Коментуємо задачу — користувачеві має прийти лист з коментарем.
  6.  
 
 Вид з боку Jira
 
 Вид з боку пошти користувача
 
 6. Резюме
На цьому етапі ми створили мінімально працездатний проект для обробки запитів користувачів на основі JIRA і JETI.
 
Плюси:
 
     
  1. Збирання технічної інформації про користувача сайту за допомогою складальників запитів (дозвіл, браузер, сторінка — в теорії взагалі все, що може витягнути js),
  2.  
  3. Інтеграція з іншими плагінами: канбан-дошка для проекту, автоматична розсилка листів при релізі, розсилка нагадувань про незакінчених завданнях etc,
  4.  
  5. Єдиний робочий інструмент для розробки та підтримки,
  6.  
  7. Реалізація аналітики будь-якого рівня складності по роботі технічної підтримки користувачів.
  8.  
 
Мінуси:
 
     
  1. Автором JETI досі не виконаний запит на відсилання кастомних подій при обробці листів. Тому не вдалося налаштувати перевідкриття завдань при отриманні повторного листи від користувача після того, як перше було оброблено техпідтримкою. Зараз доводиться фільтрами ловити в нотифікації від JIRA, але обіцяють виправити в наступному релізі: Посилання
  2.  
  3. Неможливість відправки конкретних аттачей користувачеві: відправляється кілька останніх за нікому хитрому алгоритмі.
  4.  
  5. Залежність від загальних налаштувань вихідної пошти JIRA (префікс листи, текстовий адреса) — не знайшов, як виправити, і буду радий ідеям, якщо знайдуться.
    Відсутність захисту від спаму — вирішили фільтрами через інтерфейс самої пошти, але кльово було б подібні речі робити через JIRA.
  6.  
  7. Не можна просто взяти і вислати лист від підтримки на якийсь лівий ящик. Рідкісний, але іноді потрібний кейс.
  8.  
 
На цьому все, в наступній статті я постараюся розповісти, як додати в цей проект такі кльові і потрібні речі, як:
 
     
  • Шаблони стандартних листів — проект для підтримки користувачів без шаблонів виглядає дивно,
  •  
  • відсиланням листа про Фіксе завдання при закритті завдання на розробку,
  •  
  • Сборщик запитів і канбан-дошку, згадані вище.
  •  
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.