Интеграция Zendesk с формой веб-чата Easiio с использованием node.js

2020-10-24

Zendesk — это системная служба поддержки клиентов, продаж и обработки заявок, которая очень популярна в сфере поддержки клиентов. В сфере продаж и поддержки клиентов организации используют программное обеспечение колл-центров и веб-чат в качестве инструментов общения с клиентами. Когда клиенты обращаются в организацию, службу поддержки или отдел продаж, используйте колл-центр или инструмент веб-чата с программным обеспечением для управления клиентами, таким как система заявок от Zendesk, вместе для выполнения задач поддержки и отслеживания запросов клиентов. Zendesk предоставляет множество API для интеграции со сторонними приложениями, такими как средства связи.

Большинство приложений колл-центра или контакт-центра интегрируются с приложениями CRM и системами продажи билетов, такими как SalesForce, HubSpot и Zendesk и т. д. Но их интеграция обычно является внутренней для их приложения и представляет собой готовые компоненты интеграции.

Easiio предоставляет облачный колл-центр, чат-бот на веб-сайте и онлайн-чат. Он имеет интеграцию с CRM, как и большинство приложений колл-центра. Помимо готовых компонентов интеграции, Easiio также предоставляет API, позволяющий разработчику быстро разработать собственную интеграцию. В этом примере мы покажем, насколько легко создать интеграцию с Zendesk с помощью веб-чата Easiio, Zendesk HTTP API и node.js.

Интеграция билетов Zendesk с веб-чатом Easiio

1. Форма веб-чата Easiio

Веб-чат Easiio поддерживает множество расширенных функций, включая пользовательские формы, которые пользователь может определить самостоятельно. Чтобы использовать форму веб-чата Easiio, обычно необходимо выполнить следующие действия.

  1. Создайте форму ITR
  2. Настройте поля формы в соответствии с требованиями
  3. В конфигурации Visual IVR. Используйте форму в одном из пунктов меню сбора ITR.
  4. В форме ITR настройте поле «URL-адрес данных», чтобы оно указывало на правильный API.

В этом руководстве мы будем использовать пользовательскую форму веб-чата Easiio для интеграции с Zendesk. Пользователи могут создать форму Easiio, используя внутреннее меню «Форма IVR», чтобы создать собственную форму. Здесь мы просто используем уже созданную форму, которая называется «Zendesk Ticket». В нем всего два поля «Тема» и «Комментарий». На следующем рисунке показан пункт меню сбора «Создать заявку в службу поддержки», в котором используется форма «Заявка Zendesk». Чтобы получить этот экран, вам необходимо зарегистрировать бесплатную учетную запись Easiio (Расширенная конфигурация -> Визуальный IVR -> Редактировать).

Интеграция веб-чата Easiio с ITR, шаг 1.

2. Настройте форму веб-чата.

Нажмите кнопку «Изменить» в разделе «Создать заявку в службу поддержки», чтобы изменить данные формы, включая «URL-адрес данных». Поле «URL-адрес данных» определяет, куда будут отправлены данные формы после отправки формы пользователем. В этом случае мы отправляем данные формы в формате JSON в API node.js. Мы реализуем это в следующем разделе. См. форму ниже.

Интеграция веб-чата Easiio с ITR. Шаг 2. Настройте форму заявки и API.

3. Напишите API Zendesk для node.js.

В этом разделе мы реализуем API интеграции Zendesk для нашей формы. Он проанализирует JSON, отправленный из веб-чата Easiio, и создаст новый билет в Zendesk с помощью Zendesk HTTP API. В разделе кода ниже показано, как это делается.

   if (request.url.indexOf ("/zendesk_ticket_create") >=0 ) {
      var requestBody = '';
      request.on('data', function(data) {
        requestBody += data;
        if(requestBody.length > 1e7) {
          response.writeHead(413, 'Request Entity Too Large', {'Content-Type': 'text/html'});
          response.end('<!doctype html><html><head><title>413</title></head><body>413: Request Entity Too Large</body></html>');
        }
      });
      
      request.on('end', function() {
        console.log("post info:", requestBody);
        var formData = JSON.parse( requestBody );
        
        if (formData == null || formData.subject == null  || formData.comment == null) {
          response.write('[ { "id": 1, "action": "play", "text": "missing subject or comment" }]');
          response.end('');
          return;
        }

        var request1 = require("request");

        var queryObject = url.parse(request.url,true).query;
        if (queryObject == null || queryObject.user == null || queryObject.pass == null) {
          console.log("zendesk 1.0.1 request url missing username or password");
          response.write('[ { "id": 1, "action": "play", "text": "The zendesk create ticket failed request url missing username or password" }]');
          response.end('');
          return 0;
        }
        var remoteurl = "https://" + queryObject.user + ":" + queryObject.pass + "@" + queryObject.domain + ".zendesk.com/api/v2/tickets.json";

        var options = {
            method: 'POST',
            url: remoteurl,
            headers: {accept: 'application/json', 'content-type': 'application/json'},
            body: {
              "ticket":
                {
                  "subject": formData.subject,
                  "comment": {
                    "body": formData.comment
                  }
                }
              },
            json: true
          };

          request1(options, function (error, response1, body) {
            if (error) throw new Error(error);
            if (body != null && body.ticket != null && body.ticket.id != null)
            {
              console.log("result", body.ticket.id);
              response.write('[ { "id": 1, "action": "play", "text": "The zendesk create ticket successful ticket number: ' + body.ticket.id+ '" }]');
            }
            response.end('');
            console.log(body);
          });

        function handleError(err) {
            console.log(err);
            process.exit(-1);
        }
      
      });
    } 

Отправка формы «URL-адрес данных» настроена с использованием имени пользователя и пароля Zendesk API для аутентификации Zendesk. Поля темы и комментария передаются данными JSON в теле запроса. В этом примере кода для аутентификации Zendesk в URL-адресе используются имя пользователя и пароль. Существуют и другие варианты аутентификации Zendesk. Пожалуйста, ознакомьтесь с документ Zendesk Чтобы получить больше информации. Полный исходный код можно найти по адресу Ссылка на GitHub.

После отправки и результатов Zendesk все в порядке. Он запишет ответ в формате JSON обратно в веб-чат Easiio, и ответ можно будет отобразить в качестве результатов отправки.

4. Проверьте код node.js.

Вы можете проверить URL-адрес, запустив код локально, используя комментарий «node zendesk_tasks.js». Проверьте код, используя команду curl, например следующую. Измените имя пользователя, пароль и домен в соответствии с вашей учетной записью Zendesk.

curl -H "Content-Type:application/json" -X POST -d '{"subject":"My ticket from API","comment":"I have a broken computer and wifi is down."}' 'http://localhost:1341/zendesk_ticket_create?user=last.firstname%40sample.com&pass=mytestpass&domain=mydomain'

Он должен вернуть что-то вроде этого.

[ { "id": 1, "action": "play", "text": "The zendesk create ticket successful ticket number: 28" }]

5. Запустите его в окне чата.

Протестировав код node.js и убедившись, что с ним все в порядке, вы можете выполнить развертывание в серверной среде. Начните тестировать его с помощью реального клиента веб-чата Easiio, предполагая, что вы уже настроили форму ITR для использования правильного «URL-адреса данных», включая правильное имя пользователя и пароль для Zendesk в URL-адресе. Откройте веб-страницу, на которой размещен сценарий ITR, как показано на следующем рисунке («Создать заявку в службу поддержки»).

Простая интеграция веб-чата ITR с Zendesk, работающая в пользовательском интерфейсе чата веб-сайта

Нажмите меню «Создать заявку в службу поддержки», чтобы открыть форму заявки. Заполните информацию. Нажмите «Отправить», чтобы отправить данные формы в API node.js. После создания заявки вы увидите ответ от кода node.js, отображающийся в окне чата.

Отправьте форму веб-чата Easiio в Zendesk и проверьте результаты.

Заключение

Из этого примера видно, что очень легко создать интеграцию веб-чата из формы веб-чата Easiio с Zendesk, а также с другими CRM или любыми сторонними приложениями, поддерживающими интеграцию API. Веб-чат Easiio — это очень мощная платформа интеграции для чата на веб-сайте. Вы можете зарегистрироваться и использовать его бесплатно. Вы можете зарегистрироваться здесь.

Easiio также предоставляет мощное программное обеспечение для колл-центров и системы деловой телефонии.

Другие статьи по теме:

Twilio API и веб-чат Easiio для проверки номера телефона.

Простая интеграция голоса и чата с Hubspot с помощью node.js