Возникает задача получить данные из популярного онлайн-чата Jivosite напрямую в конфигурацию 1С, например, в "Управление торговлей". Основное желание — избежать установки промежуточных систем вроде 1С:CRM и настроить прямую связку, чтобы фиксировать обращения клиентов, создавать лиды или события. Разберем, как это можно реализовать, основываясь на опыте пользователей и технических возможностях платформы 1С.
В ходе обсуждения выявилось два основных подхода к решению этой задачи: простой, но ограниченный, и более сложный, но полнофункциональный. Рассмотрим оба.
Этот вариант подходит, если ваша основная цель — получать содержание переписки уже после ее завершения, чтобы, например, создать документ "Событие" в 1С и зафиксировать факт обращения. Этот метод не требует публикации базы 1С на веб-сервере и сложных настроек.
Суть метода: Jivosite умеет отправлять транскрипты (полную историю) завершенных диалогов на указанный адрес электронной почты. Мы можем настроить 1С так, чтобы она подключалась к этому почтовому ящику, читала письма и на их основе создавала нужные объекты в базе.
Разберем по шагам, как это организовать:
ИнтернетПочта. Потребуются данные для подключения: адрес POP3/IMAP сервера, порт, логин и пароль.Событие с темой "Обращение из чата" и текстом переписки. Если контрагент не найден, можно создать нового с пометкой "Лид".Преимущества: Простота реализации, не нужен веб-сервер и публикация базы.
Недостатки: Данные поступают с задержкой, только после окончания диалога. Нет возможности реагировать на события в реальном времени.
Это более профессиональный и гибкий способ, который позволяет получать данные от Jivosite в реальном времени при наступлении различных событий. Он идеально подходит для автоматизации создания лидов, задач и глубокой интеграции с бизнес-процессами компании.
Суть метода: Jivosite при наступлении события (начало чата, завершение, отправка офлайн-сообщения) может отправлять HTTP-запрос (вебхук) с подробной информацией на указанный вами URL. С нашей стороны, мы должны "научить" 1С принимать и обрабатывать эти запросы. Для этого в 1С используются HTTP-сервисы.
Рассмотрим процесс настройки по шагам.
В конфигураторе 1С необходимо создать новый объект метаданных — HTTP-сервис. Назовем его, например, JivoIntegration.
/jivohook/*.HandleWebhook и типом POST.Чтобы Jivosite мог отправить запрос в вашу 1С, база должна быть опубликована на веб-сервере (Apache или IIS), и ее адрес должен быть доступен из интернета. При публикации не забудьте поставить флажок "Публиковать HTTP-сервисы по умолчанию" или опубликовать созданный сервис явно.
В результате вы получите публичный URL, например: https://your-domain.ru/base_name/hs/JivoIntegration/jivohook. Именно этот адрес нужно будет указать в настройках Jivosite.
В личном кабинете Jivosite перейдите в раздел настроек для разработчиков (API/Webhooks) и вставьте полученный на предыдущем шаге URL. Теперь Jivosite будет отправлять на него POST-запросы в формате JSON при наступлении событий.
Основные события, которые можно отслеживать:
chat_finished: диалог с оператором завершен. Содержит всю историю переписки.offline_message: посетитель оставил сообщение через офлайн-форму.call_event: информация о звонках через Jivosite.Теперь самое главное — написать код в модуле нашего HTTP-сервиса, который будет принимать и обрабатывать данные.
Входящие данные приходят в теле POST-запроса в виде JSON-строки. Наша задача — получить эту строку, преобразовать ее в объекты 1С и выполнить нужные действия.
Посмотрим на примерный код обработчика:
// Процедура-обработчик POST-запроса в модуле HTTP-сервиса
&НаСервере
Процедура HandleWebhook(Запрос)
// Получаем тело запроса, которое содержит JSON от Jivosite
ТелоЗапросаJSON = Запрос.ПолучитьТелоКакСтроку("UTF-8");
// Если тело пустое, выходим
Если СтрДлина(ТелоЗапросаJSON) = 0 Тогда
// Возвращаем ответ, что запрос некорректен
Ответ = Новый HTTPСервисОтвет(400);
Возврат Ответ;
КонецЕсли;
// Преобразуем JSON в структуру или соответствие 1С
ПараметрыЧтенияJSON = Новый ПараметрыЧтенияJSON(ПереносСтрокJSON.Разрешить);
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ТелоЗапросаJSON);
ДанныеВебхука = ПрочитатьJSON(ЧтениеJSON, Ложь);
ЧтениеJSON.Закрыть();
// Далее анализируем полученные данные.
// Поле с именем события в Jivosite называется event_name
ТипСобытия = ДанныеВебхука.event_name;
// В зависимости от типа события выполняем разные действия
Если ТипСобытия = "chat_finished" Тогда
// Обрабатываем завершенный чат
ОбработатьЗавершенныйЧат(ДанныеВебхука);
ИначеЕсли ТипСобытия = "offline_message" Тогда
// Обрабатываем офлайн-сообщение
ОбработатьОфлайнСообщение(ДанныеВебхука);
КонецЕсли;
// Формируем успешный ответ для Jivosite.
// Код 200 OK означает, что мы успешно приняли и обработали вебхук.
Ответ = Новый HTTPСервисОтвет(200);
Возврат Ответ;
КонецПроцедуры
Вспомогательные процедуры ОбработатьЗавершенныйЧат и ОбработатьОфлайнСообщение уже будут содержать конкретную бизнес-логику: поиск или создание контрагента, создание документа Событие, постановку задачи ответственному менеджеру и т.д.
Часто возникает вопрос: "А зачем вообще эти данные в 1С, если вся история и так хранится в Jivosite?". Ответ кроется в создании единого информационного пространства и автоматизации. Вот несколько полезных сценариев:
Событие или Взаимодействие. В карточке клиента будет видна вся история общения, включая звонки, письма и теперь — чаты с сайта. Это бесценно для менеджеров по продажам.В итоге, хотя в типовых конфигурациях "Управления торговлей" нет готового функционала для работы с чатами, платформа 1С предоставляет все необходимые инструменты (HTTP-сервисы, работа с JSON) для создания такой интеграции. Это позволяет превратить 1С из учетной системы в полноценный инструмент для управления взаимоотношениями с клиентами.