ДжазТим — надежный технологический партнер

Agile разработка ПО на Java

Интеграция системы для локализации приложений с Customer Service платформой

Описание проекта

Решение позволяет крупным службам поддержки, которые используют Zendesk, обрабатывать обращения на всех популярных языках без необходимости иметь в штате носителей всех этих языков.

Для этого веб-сервис Nitro, который предназначен для автоматизации процессов по локализации текста, интегрирован с Zendesk платформой, которая предоставляет комплексное решение для обслуживания клиентов.

Система работает следующим образом. Клиент пишет вопрос в техподдержку на сложном или незнакомом для специалистов языке. Данный текст отправляется на платформу Nitro и переводится (решение включает возможности автоматического перевода там, где это допустимо). Далее специалисты поддержки получают перевод сообщения и могут составить ответ и перевести его на язык клиента.

Техническое описание проекта

Для взаимодействия платформы Zendesk с системой заказчика необходимо создать приложение с базовым функционалом: переводом сообщений пользователей в службу поддержки, а также переводом ответов от службы поддержки пользователям. Приложение в основном включает фронтенд-часть, а также взаимодействие с серверной частью уже существующих решений (созданных в рамках разработки других продуктов заказчика).

Фронтенд-часть системы разработана на ReactJS. Управление состоянием приложения выполняется посредством Redux. Взаимодействие между фронтенд и бэкенд частями осуществляется следующим образом:

  1. С помощью gRPC сервисов для приложения Nitro с заранее сформированными ProtoBuf-объектами.
  2. С помощью REST сервисов для общения с Zendesk платформой.

Используемые технологии

Разработка: JavaScript ES6, React, Redux, HTML5, CSS3, PostCSS, redux-thunk, gRPC, npm, WebPack, i18n.

Окружение: Slack, Trello, Drone.io, Github, Sentry.

Особенности проекта

  • Использование gRPC как протокола межсервисного взаимодействия.
  • Авторизация пользователей Nitro на платформе Zendesk реализована с помощью протокола OAuth 2.0.
  • Автоматический перевод комментариев в офлайн-режиме приложения Nitro реализован с помощью WebHook функционала, который предоставляет Zendesk.
  • Динамически меняющиеся требования во время разработки.

Результаты проекта

  • Разработана фронтенд-часть интеграционного приложения на ReactJS. Некоторые части системы имели схожий функционал, связанный с выводом информации. Инженеры ДжазТим разработали один общий компонент, который был многократно переиспользован. Это значительно сократило время разработки.
  • Введены новые решения и собственные наработки для ускорения разработки и уменьшения однотипного кода:
  • Утилитарная функция для отслеживания события закрытия фрейма, своего рода callback для родительского фрейма.
  • Генерация вебхуков для автоматического отслеживания нового комментария.
  • Компонент «обёртка», которая служит для сохранения позиции скролла и в дальнейшем скроллинга на сохранённую позицию при переходе на страницу.
  • Произведена существенная оптимизация работы фронтенд-части приложения заказчика. Из-за особенностей предоставления данных платформой Zendesk потребовалось улучшение структуры Nitro, с чем наша команда справилась в необходимые сроки.
  • Внедрена интеграция авторизации пользователей разных платформ, средствами протокола OAuth 2.0. Пользователю достаточно иметь только учётную запись Nitro, чтобы работать в системе Zendesk.

Достижения компании на проекте

  • Наша команда реализовала интеграционное приложение для Zendesk с нуля. При этом система полностью соответствовала нуждам заказчика.
  • Для улучшения читабельности и переиспользования компонентов были продуманы и внедрены модульная структура компонентов и css-модули для организации стилей.
  • Применены собственные разработки, сокращающие время написания кода при работе с Redux и запросами к бэкенд части.

Скриншоты

Свяжитесь с нами, чтобы обсудить Ваш IT-проект

    Имя *

    Название компании

    Email *

    Телефон

    Чем мы можем Вам помочь? *

    * – Обязательные поля для заполнения