Как организовать автоматический обзвон клиентов из 1С с получением оценок через API?

Программист 1С v8.3 (Управляемые формы) Управленческий учет Сфера услуг, туризм и социальный сектор
← На главную

Автоматизация контроля качества — это важный этап развития любого бизнеса, особенно в сферах с большим потоком заказов, таких как производство мебели или логистика. Вместо содержания дорогостоящего call-центра можно использовать технологию IVR (Interactive Voice Response). В рамках данной статьи мы разберем, как настроить систему, которая по команде из 1С будет звонить клиенту, просить его оценить работу сотрудника и возвращать нажатую цифру обратно в информационную базу.

Выбор сервиса для обзвона и интеграции

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

  1. Специализированные сервисы обзвона (например, Calltools, Zvonok.com, Звонопес): Это наиболее подходящие решения для задач 1С. Они позволяют инициировать звонок простым HTTP-запросом и имеют встроенный функционал обработки нажатий клавиш (DTMF).
  2. Облачные АТС (Манго-Офис, Билайн, Мегафон): Удобны для повседневной связи, но часто имеют ограничения в API для реализации сложных сценариев IVR. Например, в некоторых тарифах может отсутствовать возможность передачи результата нажатия кнопки в реальном времени во внешнюю систему.
  3. Платформы для разработчиков (Voximplant): Позволяют писать сложные сценарии на JavaScript внутри самого сервиса. Это дает максимальную гибкость (например, синтез речи на лету или распознавание голоса), но требует больше времени на разработку.

Механизм взаимодействия 1С и сервиса обзвона

Разберем по шагам технологическую цепочку, которая позволяет реализовать этот функционал:

  1. Инициация звонка из 1С: Наша программа отправляет POST или GET запрос к API выбранного сервиса. В запросе передаются номер телефона клиента, ID сценария или текст, который нужно озвучить.
  2. Выполнение звонка: Сервис дозванивается до клиента и воспроизводит сообщение: "Оцените качество исполнения заказа от 1 до 5".
  3. Ожидание ответа (DTMF): Сервис фиксирует нажатие цифры на телефоне клиента.
  4. Обратный вызов (Webhook): Сервис отправляет HTTP-запрос на сторону нашей 1С, сообщая результат (например, "Клиент 79991234567 нажал кнопку 5").

Настройка HTTP-сервиса на стороне 1С

Для того чтобы 1С могла принять ответ от сервиса, в конфигурации необходимо создать HTTP-сервис. Выясним причину, почему это лучше, чем просто опрашивать сервис по расписанию: это обеспечивает мгновенную реакцию системы. Если клиент поставил низкую оценку, ответственный менеджер может получить уведомление в ту же секунду.

Рассмотрим пример кода для отправки запроса на обзвон (инициация):


&НаСервере
Процедура ИнициироватьОбзвон(НомерТелефона, ИмяСценария)
    
    Запрос = Новый HTTPЗапрос;
    Запрос.АдресРесурса = "/api/v1/make_call"; // Условный адрес API сервиса
    Запрос.Заголовки.Вставить("Authorization", "Bearer " + ТокенДоступа);
    Запрос.Заголовки.Вставить("Content-Type", "application/json");
    
    ПараметрыЗвонка = Новый Структура;
    ПараметрыЗвонка.Вставить("phone", НомерТелефона);
    ПараметрыЗвонка.Вставить("scenario", ИмяСценария);
    ПараметрыЗвонка.Вставить("callback_url", "https://mybase.ru/hs/QualityControl/v1/result");
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, ПараметрыЗвонка);
    СтрокаТело = ЗаписьJSON.Закрыть();
    
    Запрос.УстановитьТелоИзСтроки(СтрокаТело);
    
    Соединение = Новый HTTPСоединение("api.callservice.ru", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
    Ответ = Соединение.ОтправитьДляОбработки(Запрос);
    
КонецПроцедуры

Обработка входящего ответа от сервиса

Когда клиент нажимает цифру, сервис обращается к нашему HTTP-сервису. Нам нужно проанализировать входящие данные и записать оценку в документ или справочник 1С.


Функция ОбработатьРезультатОбзвона(Запрос)
    
    // Получаем тело запроса от сервиса
    ТелоСтрокой = Запрос.ПолучитьТелоКакСтроку();
    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(ТелоСтрокой);
    Данные = ПрочитатьJSON(ЧтениеJSON);
    
    НомерТелефона = Данные.phone;
    Оценка = Данные.dtmf_value; // Нажатая клиентом цифра
    
    // Здесь мы ищем заказ по номеру телефона и записываем оценку
    // Например: Справочники.ОценкиКачества.СоздатьЗапись(НомерТелефона, Оценка);
    
    Ответ = Новый HTTPСервисОтвет(200);
    Ответ.УстановитьТелоИзСтроки("OK");
    Возврат Ответ;
    
КонецФункции

Важные технические нюансы

При реализации данной схемы следует учитывать несколько критически важных моментов:

Бизнес-логика: зачем это нужно?

Проанализируем ситуацию с точки зрения управления персоналом. Внедрение автоматического обзвона решает сразу две задачи:

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

Таким образом, использование связки 1С + Облачный IVR сервис позволяет за несколько дней создать полноценную систему контроля качества без капитальных вложений в оборудование и сложную настройку телефонии.

← На главную