Наверх
Подписаться

Подключение клиентских форм к обратному звонку Calltouch

Содержание

 

 

Вступление

Если по каким либо причинам вас не устраивает внешний вид стандартной формы обратного звонка Calltouch, например, она не сочетается с дизайном сайта, то вы можете использовать свою собственную форму обратного звонка, подключение которой производится через Callback Javascript API. С его помощью можно автоматизировать сбор заявок со всех форм на сайте, которые содержат номер телефона, и обрабатывать их как обратные звонки.
Автоматическая обработка заявок дает возможность оперативной и своевременной связи, что очень важно для качества обслуживания.

В некоторых отраслях доля заявок с сайта варьируется в пределах от 20% до 45% от общего количества обращений. Наш сервис позволяет обрабатывать такие обращения максимально оперативно и снимает с вас лишнюю работу по налаживанию процессов ручного контроля за заявками. При этом вы получаете информацию из заявки, ее источник, можете прослушать запись разговора, поставить тэги, добавить комментарии, и все это в рамках одного интерфейса личного кабинета Calltouch. С новым функционалом Callback Javascript API вы можете:

  • Обрабатывать заявки с разного типа форм по индивидуальным настройкам - задавать свой график работы колл-центра и номер переадресации под каждый тип
  • Передавать текстовую информацию из полей заявки в личный кабинет и использовать ее при анализе статистики
  • Задавать условия по страницам или параметрам разметки источника трафика, при которых заявка будет обрабатываться, как обратный звонок.

 

 

Подключение

Для подключения необходимо:

  1. Установить скрипт Calltouch на сайт (скрипт можно скопировать из справочного центра или получить через службу поддержки info@calltouch.net)
  2. Пополнить баланс минут и активировать услугу обратного звонка
  3. Создать специальный тип виджета "Форма на сайте":
    Screenshot_at_Jun_28_09-31-40.png
  4. Задать настройки графика работы колл-центра, номер телефона для переадресации, сценарий дозвона и т.д.
  5. Задать ключ, который будет связкой между виджетом и формой, заявки с которой вы хотите обрабатывать, как обратные звонки
  6. Включить виджет

Ключ может быть любым набором букв и символов. Рекомендуем в поле ключа использовать название формы, которую вы привязываете к виджету:

Screenshot_at_Jun_28_07-59-12_alf.png

Далее представлена техническая информация - как получать в коде данные по виджетам и создавать заявки.

 

 

Примеры обработки

Получение настроек виджета и отображение формы

Скопировать скрипт
window.ctw.getRouteKeyData('my_form_1', function(success, data){
    console.log(success, data);
    if (success) {
        if (data.widgetFound) {
            if (data.widgetData.callCenterWorkingMode == 'working_hours') {
                console.log('колл-центр работает, отображение виджета');
            } else {
                if (data.widgetData.collectNonWorkingRequests) {
                    console.log('колл-центр не работает, но можем отобразить форму нерабочего времени');
                } else {
                    console.log('колл-центр не работает, заявки в нерабочее время не собираем');
                }
            }
        } else {
            console.log('не найден включенный виджет по routeKey, либо услуга обратного звонка не активна');
        }
    } else {
        console.log('во время обработки прозошла ошибка');
        console.log(data)
    }
 });

Создание заявки

Скопировать скрипт
window.ctw.createRequest(
    'my_form_1',
    '7xxxxxxxxxx',
    [
        {"name": "Name", "value": "Ivan"},
        {"name": "Last name", "value": "Petrov"}
    ],
    function(success, data){
        console.log(success, data)
        if (success) {
            console.log('Создана заявка на колбек, идентификатор: ' + data.callbackRequestId)
        } else {
            switch(data.type) {
                case "request_throttle_timeout":
                case "request_throttle_count":
                    console.log('Достигнут лимит создания заявок, попробуйте позже');
                    break;
                case "request_phone_blacklisted":
                    console.log('номер телефона находится в черном списке');
                    break;
                case "validation_error":
                    console.log('были переданы некорректные данные');
                    break;
                default:
                    console.log('Во время выполнения запроса произошла ошибка: ' + data.type);
            }
        }
    }
)

 

 

Функции

Получение данных виджета - window.ctw.getRouteKeyData

Описание функции получения данных виджета:

/**
 * Получение данных виджета
 *
 * Идентификатор формы (длина от 1 до 255)
 * @param {string} routeKey
 *
 * Функция обратного вызова для обработки результата запроса
 * @param {routeKeyDataRequestCallback} requestCallback
 */
function getRouteKeyData(routeKey, requestCallback) {},

Описание функции обратного вызова:

/**
 * Функция обратного вызова для обработки результата запроса получения данных виджета
 *
 * @callback routeKeyDataRequestCallback
 *
 * В случае успеха true иначе false
 * @param {bool} success
 * 
 * Данные успешного ответа или ошибки
 * @param {RouteKeyDataSuccessResponse|ErrorResponse} responseData
 */

Данные в случае успешного выполнения запроса получения данных виджета:

/**
 * Данные успешного выполнения запроса получения данных виджета
 *
 * @typedef {Object} RouteKeyDataSuccessResponse
 *
 * Флаг указывает найден ли виджет
 * @property {bool} widgetFound
 * 
 * Данные виджета, если widgetFound=false, то значение будет null иначе Object
 * @property {Object|null}  widgetData
 * 
 * Текущие режим работы колл-центра, возможные значения:
 * working_hours(рабочее время), non_working_hours(нерабочее время)
 * @property {string} widgetData.callCenterWorkingMode
 * 
 * Флаг указывает собирать ли заявки в нерабочее время
 * @property {bool} widgetData.collectNonWorkingRequests
 */

Примеры данных

1. В случае когда по идентификатору формы не найдено включенного виджета или услуга обратного звонка не включена:

{
    "widgetFound":false
    "widgetData":null
}

2. Виджет найден:

{
    "widgetFound":true
    "widgetData": {
        "callCenterWorkingMode": "working_hours",
        "collectRequests": true
    }
}

Формат данных в случае ошибки

/**
 * Данные в случае ошибки выполнения запроса
 *
 * @typedef {Object} ErrorResponse
 *
 * @property {string} type Тип ошибки
 * @property {string} message Текст ошибки
 * @property {Object} details Детали ошибки
 */

Возможные ошибки

Тип Описание
unknown_error Различные ошибки на клиенте (таймаут ответа сервера, сброс соединения, некорректный json в ответе, ошибочный код ответа сервера)
server_error Ошибка сервера

 

Создание заявки на обратный звонок - window.ctw.createRequest

Описание функции создание заявки на обратный звонок:

/**
 * Создание заявки на обратный звонок
 *
 * Идентификатор формы (длина от 1 до 255)
 * @param {string} routeKey
 * 
 * Номер телефона с кодом страны и города, без плюса (11 символов)
 * @param {string} phone
 * 
 * Дополнительные поля (не более 5 полей) или пустой массив, если нет дополнительных полей
 * @param {Object[]} fields[]
 * 
 * Название поля (длина от 1 до 15)
 * @param {string} fields[].name
 * 
 * Значение поля (длина от 1 до 35)
 * @param {string} fields[].value
 * 
 * Функция обратного вызова для обработки результата запроса
 * @param {createRequestRequestCallback} requestCallback
 */
function createRequest(routeKey, phone, fields, requestCallback) {}

Описание функции обратного вызова:

/**
 * Функция обратного вызова для обработки результата запроса создания заявки на обратный звонок
 *
 * @callback createRequestRequestCallback
 *
 * В случае успеха true иначе false
 * @param {bool} success
 *
 * Данные успешного ответа или ошибки
 * @param {createRequestSuccessResponse|ErrorResponse} responseData
 */

Данные успешного выполнения запроса создание заявки на обратный звонок:

/**
 * Данные успешного выполнения запроса создание заявки на обратный звонок
 *
 * @typedef {Object} createRequestSuccessResponse
 *
 * @property {number} callbackRequestId Идентификатор заявки на обратный звонок
 */

Формат данных в случае ошибки

/**
 * Данные в случае ошибки выполнения запроса
 *
 * @typedef {Object} ErrorResponse
 *
 * @property {string} type Тип ошибки
 * @property {string} message Текст ошибки
 * @property {Object} details Детали ошибки
 */

Возможные ошибки

Тип Описание
unknown_error Различные ошибки на клиенте (таймаут ответа сервера, сброс соединения, некорректный json в ответе, ошибочный код ответа сервера)
server_error Ошибка сервера
validation_error

Ошибка при проверке корректности полей

Поле Тип Описание
fields object[] Список полей с ошибками
fields[].name string Название поля
fields[].errors object[] Список ошибок
fields[].errors[].message string Тест ошибки
request_throttle_timeout Превышен лимит на отправку заявок от данного пользователя
request_throttle_count Превышено кол-во запросов за период времени
request_phone_blacklisted Телефон в черном списке
request_widget_not_found Виджет для идентификатора формы не найден


Примеры данных

1. В случае успешного создания заявки

{
    "callbackRequestId ":231113
}

 

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 1 из 1
Еще есть вопросы? Отправить запрос

0 Комментарии

Войдите в службу, чтобы оставить комментарий.