В современной бизнес-среде мессенджеры стали основным каналом коммуникации с клиентами. Интеграция 1С с WhatsApp позволяет автоматизировать отправку уведомлений о заказах, чеков, сервисных сообщений и даже организовать полноценный чат-центр непосредственно в интерфейсе учетной системы. Рассмотрим подробнее, как реализовать подобную задачу, какие инструменты выбрать и с какими техническими сложностями можно столкнуться.
Перед тем как приступить к кодингу, проанализируем архитектурные подходы. На рынке существует два принципиально разных способа подключения к WhatsApp:
Разберем подробнее процесс реализации на примере популярных внешних API, которые предоставляют готовые библиотеки для 1С.
Для взаимодействия 1С с WhatsApp чаще всего используются HTTP-запросы к промежуточному серверу (шлюзу), который уже передает данные в мессенджер. Рассмотрим типовой алгоритм отправки текстового сообщения. Для этого в 1С мы используем объект HTTPЗапрос.
Выясним, как выглядит базовая логика формирования запроса:
// Пример формирования структуры для отправки через шлюз
ДанныеДляОтправки = Новый Структура;
ДанныеДляОтправки.Вставить("chatId", "79123456789@c.us");
ДанныеДляОтправки.Вставить("message", "Добрый день! Ваш заказ №123 готов к выдаче.");
// Преобразуем в JSON
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, ДанныеДляОтправки);
СтрокаJSON = ЗаписьJSON.Закрыть();
// Настройка HTTP-соединения
Соединение = Новый HTTPСоединение("api.green-api.com", , , , , , Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/waInstance{{id}}/sendMessage/{{token}}");
Запрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Обратите внимание, что при работе с «серыми» API необходимо постоянно контролировать статус авторизации инстанса. Если сессия в телефоне «отвалится», 1С должна оперативно сообщить об этом администратору.
Чтобы 1С могла не только отправлять, но и получать сообщения (а также статусы их доставки), необходимо настроить механизм Webhooks. Посмотрим на этот процесс по шагам:
HTTPСервис. Для того чтобы шлюз мог до него «достучаться», база должна быть опубликована на веб-сервере (Apache или IIS) и иметь «белый» IP-адрес.POST вашего сервиса мы анализируем входящий JSON.Рассмотрим пример кода для обработки входящего уведомления:
Функция УведомленияPOST(Запрос)
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Запрос.ПолучитьТелоКакСтроку());
Данные = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
// Проанализируем тип события
Если Данные.typeWebhook = "incomingMessageReceived" Тогда
ТекстСообщения = Данные.messageData.textMessageData.textMessage;
НомерОтправителя = Данные.senderData.sender;
// Логика поиска клиента и создания записи в чате
ОбработатьВходящееСообщение(НомерОтправителя, ТекстСообщения);
КонецЕсли;
Возврат Новый HTTPСервисОтвет(200); // Обязательно подтверждаем получение
КонецФункции
Помимо текста, бизнес-процессы часто требуют отправки счетов в PDF или фотографий товара. При передаче файлов через API существует два пути:
Важный нюанс по групповым рассылкам: WhatsApp крайне негативно относится к массовым рассылкам по базам номеров, которых нет в адресной книге отправителя. Даже если вы используете официальное API, каждая рассылка должна соответствовать шаблону, одобренному Meta. При использовании неофициальных методов массовая рассылка приведет к бану номера в течение нескольких минут после начала работы.
Проанализируем ситуацию с точки зрения законодательства. При организации рассылок необходимо учитывать следующее:
Как отмечают многие участники обсуждения, интеграция с Telegram зачастую оказывается проще и надежнее. Telegram-боты абсолютно бесплатны, имеют документированное API и не блокируют аккаунты за сервисные уведомления. Если специфика вашего бизнеса позволяет перевести клиентов в Telegram, это может сэкономить значительный бюджет на абонентской плате сторонним шлюзам WhatsApp.
В заключение отметим, что выбор решения зависит от бюджета и критичности стабильности связи. Для «маленькой лавочки» может подойти и простой шлюз через QR-код, но для крупного ритейла единственным надежным вариантом остается официальный WhatsApp Business API, интегрированный через HTTP-сервисы 1С.