Интеграция голоса и чата с HubSpot с использованием node.js

2020-09-20

Интеграция контакт-центра с CRM, например HubSpot Это очень распространенная практика, позволяющая сделать работу поддержки клиентов или продаж намного более эффективной. Например, по словам сотрудника, каждый вызов заявки в CRM упрощает отслеживание звонка, чтобы убедиться, что проблема клиента решена в конце. Когда посетитель веб-сайта заполняет контактную форму, мы хотели бы, чтобы контактная информация пользователя была сохранена в таблице контактов CRM для дальнейшего использования.

Easiio предоставляет облачный центр голосовых вызовов и центр поддержки и продаж сайта для бизнеса. Два типа основных точек входа в контакт-центр Easiio. Один из них использует традиционный бизнес-телефонный канал, например, традиционный колл-центр с поддержкой нескольких уровней IVR. Событие телефонного звонка может заставить приложение записать событие HubSpot через программу JavaScript, работающую на node.js. То же самое касается интерфейса чата на веб-сайте, предоставляемого Easiio. Более того, плагин веб-сайта онлайн-чата Easiio представляет собой очень мощное сочетание нескольких важных инструментов для обслуживания клиентов и продаж. Он имеет автоматический ответ в чате под названием ITR (Интерактивный ответ в чате) со множеством встроенных мощных функций.

Возможности колл-центра Easiio:

  1. Очередь звонков
  2. Программируемый многоуровневый IVR
  3. Ветка вызова IVR во внешнюю программу, работающую на Node.js
  4. Отчеты по звонкам всей команды.
  5. Интеграция CRM, SalesForce и HubSpot
  6. Скрипт звонка
  7. Заметки о вызовах
  8. Возможности исходящего колл-центра. Мощность звонилки.
  9. Легкая CRM-система

Возможности плагина онлайн-чата для веб-сайта Easiio:

  1. Программируемый многоуровневый ITR
  2. Настраиваемый рекламный предмет
  3. Настраиваемый элемент формы для заполнения пользователем
  4. Отображение изображения, видео и файлов
  5. Видеозвонок
  6. Вызов общего доступа к рабочему столу
  7. Местоположение посетителя сайта, посещение страницы, время просмотра
  8. Статистика посещений сайта
  9. Поддержка отчетов чата.
  10. Настраиваемый алгоритм распределения чатов по местоположению, посещению страницы, теме, уровню навыков.
  11. Общие инструменты конверсии посетителей сайта.

Благодаря мощным функциям колл-центра Easiio/делового телефона и веб-сайта контакт-центра с клиентами, как мы можем расширить функциональность и интегрироваться с очень мощными HubSpot CRM и маркетинговыми услугами. Мы представляем интеграцию IVR и ITR в двух разделах.

Пример вызова события Easiio в HubSpot

Когда в колл-центр Easiio поступает телефонный звонок, его можно настроить на отправку события во внешний HTTP API. Экран конфигурации, как показано на рисунке, с использованием меню «Расширенная конфигурация->Уведомление о событии».

Настройте уведомление о событиях бизнес-телефона Easiio на внешний сервер API node.js.

После того, как событие настроено для отправки в HTTP API. При поступлении вызова событие с подробностями будет отправлено на сервер. В нашем примере мы используем JavaScript, работающий на node.js, для обработки события и сохранения его как билета в HubSpot.

Вот пример кода для обработки события, отправленного из Easiio Business Phone System и обработанного с помощью JavaScript на node.js.

 if(request.method === "POST") {
    if (request.url === "/call_event_general") {
      var requestBody = '';
      const queryObject = url.parse(request.url,true).query;
      console.log(queryObject);
      console.log("post call_event_answer 1.0");
      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 end", requestBody);
        var formData = JSON.parse( requestBody );
        var request = require("request");

        // on event ring create a ticket at hubspot
        if (formData.event === "event_ring") {

          var options = {
            method: 'POST',
            url: 'https://api.hubapi.com/crm/v3/objects/tickets',
            qs: {hapikey: apikey},
            headers: {accept: 'application/json', 'content-type': 'application/json'},
            body: {
              properties: {
                property_number: '17',
                property_dropdown: 'choice_b',
                property_radio: 'option_1',
                property_string: formData.caller + ' called ' + formData.called,
                property_multiple_checkboxes: 'chocolate;strawberry',
                property_checkbox: 'false',
                property_date: '1572480000000'
              }
            },
            json: true
          };

          request(options, function (error, response, body) {
            if (error) throw new Error(error);

            console.log(body);
          });
        }
        
        // Add code here to handling these call info. It maybe a API call to other applications.
        console.log("post end 1.0", formData.caller , " ", formData.called, " ", formData.event);
        response.write('[]');
        response.end('');
      });
    } 
}

По сути, пример кода анализирует данные событий в формате JSON и получает несколько параметров из вызовов, таких как вызываемый номер и номер вызывающего абонента. Использование HubSpot для API nodejs для публикации параметров из события вызова для создания заявки с вызывающим абонентом и вызываемым номером телефона в качестве одного из параметров заявки.

Онлайн-чат на сайте Easiio с HubSpot

Плагин чата на веб-сайте Easiio имеет функцию встраивания из окон чата. Администратор Easiio может создавать столько форм, сколько необходимо, и это может быть очень сложная форма для запуска в окне чата. С помощью ITR и формы разработчик может собирать информацию от клиентов и отправлять ее в сторонние приложения, такие как HubSpot и SalesForce, или в свои собственные приложения.

Вот изображение контактной формы

Контактная форма для окон живого чата Easiio
300

Вот изображение формы «Позвони мне»

Форма «Позвони мне» для окон живого чата

Когда пользователь в чате на веб-сайте отправляет контактную форму, конфигурация ITR может отправить данные формы на внешний объект, например на JavaScript, работающий на Node.js. Затем сценарий может связаться с HubSpot, чтобы записать новый контакт. Вот конфигурация ITR, устанавливающая для API обработки форм определенный URL-адрес (поле URL-адреса данных).

Конфигурация формы ITR для отправки вызова API на сервер API nodejs.

Вот пример кода для записи в HubSpot с помощью JavaScript на node.js.

if(request.method === "POST") {
   if (request.url === "/contact_form_submition") {
      var requestBody = '';
      console.log("post contact_form_submition");
      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 end", requestBody);
        var formData = JSON.parse( requestBody );
        console.log("post contact_form_submition end 1.0", formData.name , " ", formData.email, " ", formData.phone, " ", formData.message);
        var request = require("request");
        var name = formData.name.split(/[ ,]+/);
        var options = { method: 'POST',
          url: 'https://api.hubapi.com/contacts/v1/contact/',
          qs: { hapikey: apikey},
          headers: 
           { 
             'Content-Type': 'application/json' },
          body: 
           { properties: 
              [ { property: 'email', value: formData.email },
                { property: 'firstname', value: name[0] },
                { property: 'lastname', value: name[1] },
                { property: 'website', value: '' },
                { property: 'company', value: '' },
                { property: 'phone', value: formData.phone },
                { property: 'address', value: '' },
                { property: 'city', value: '' },
                { property: 'state', value: '' },
                { property: 'zip', value: '' } ] },
          json: true };
        request(options, function (error, response, body) {
          if (error) throw new Error(error);

          console.log(body);
        });
        //var responseBody = [ { "id": 1, "action": "play", "text": "submit your form. name: "" voice mails are to your pre-configure cell phone by SMS." }]';
        response.write('[ { "id": 1, "action": "play", "text": "submit your form. We will contact you soon." }]');
        response.end('');
      });
    } 
}

Этот пример кода обрабатывает форму, отправленную посетителем веб-сайта с помощью окна чата Easiio. Данные формы отправляются в скрипт в формате JSON. Нам просто нужно проанализировать формат JSON и получить адрес электронной почты, имя, фамилию, номер телефона и комментарии. Сохраните его в объекте контакта HubSpot.

Завершение интеграции HubSpot Easiio API

Использование события уведомления о вызове Easiio или события отправки формы и его обработки внутри программы nodejs — отличный способ интеграции со сторонними организациями, например с HubSpot. Благодаря этим простым и легким в использовании функциям колл-центра Easiio и контакт-центра на веб-сайте любой звонок или чат можно интегрировать в CRM или любое стороннее приложение. Зарегистрируйте чтобы начать нашу бесплатную пробную версию и посмотреть, как они могут упростить интеграцию многих сторонних разработчиков для вашего бизнеса и проекта. Вы можете скачать полный исходный код по адресу Github этого образца. Показанный здесь пример кода находится в файле JavaScript Hubspot.js.

Узнайте, как зарегистрироваться в чат-боте на сайте. Руководство по плагину Easiio Web Chat