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

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

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

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, как показано на следующем рисунке («Создать заявку в службу поддержки»).

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

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