Типовые требования для 1С
Попробуем представить типовые требования к провайдеру, которые могла бы предъявить небольшая компания в сфере торговли и розницы, работающая, например, в УТ:
- Двухстороннее взаимодействие менеджеров и клиентов по WhatsApp прямо из 1С
- Обмен текстовыми сообщениями и вложениями (первичными документами)
- Автоматическое сопоставление клиентов из 1С и номера телефонов в WhatsApp
- Возможность видеть всю историю переписки по WhatsApp с клиентом в 1С в карточке клиента и заказа.
- Возможность отправки сообщений первыми клиенту
Критерии выбора провайдера
- Ценовая политика
- Функциональность API
- Надежность
Ценовая политика: официальный или неофициальный?
В целом разобраться в ценах не так уж и сложно. Финальная стоимость сообщения зависит от цены, установленной Meta и наценки поставщика. Самый существенный критерий в ценообразовании – это статус поставщика. Если вы работаете с мессенджерами давно, то знаете, что раньше все рассылки в WhatsApp отправлялись нелегально. Сейчас же появился выбор между официальным партнером (WhatsApp Business API) и сторонним неофициальным поставщиком.
Функциональность API
Работая с любым провайдером вы не получаете прямой доступ к API WhatsApp, а только доступ к API поставщика. Поэтому важно, чтобы функциональность для работы с контактами, чатами, группами, медиа, настройками и т.п. соответствовала Вашим требованиям. Например, официальный WhatsApp Business API накладывает следующие ограничения:
- Сообщения, которые начинаются по инициативе клиента (например, в встроенном чате на сайте) небесплатны для бизнеса, и только во время сессии. Сессия начинается с момента как клиент отправил вам сообщение и заканчивается через 24 часа после любого сообщения в диалоге. По прошествии 24 часов вы больше не можете отвечать клиенту.
- По своей инициативе вы можете отправлять клиентам только заранее одобренные сообщения — шаблоны, утвержденные и прошедшие ценз со стороны WhatsApp. При этом цензуру не пройдут: скидки и акции, просьбы поставить оценку приложению в AppStore или Google Play, маркетинговые опросы, которые подписчики могут посчитать спамом.
- Прежде чем начать общаться с клиентами через WhatsApp, Вы должны запросить разрешение через сторонний канал - SMS, email, сайт и т. д.
Надежность
Надежность прямо связана со статусом провайдера. Разумеется самое критичное - чтобы телефонный номер компании не заблокировали и, таким образом, не потерялась связанная с ним база клиентов. Официальный статус партнера это гарантирует. Для неофициалов риск бана во многом определяется используемыми алгоритмами для работы с WhatsApp. Риск получить бан также зависит от Вас самих. В FAQ WhatsApp приведены следующие действия, которых лучше избегать:
- Нежелательные, автоматизированные сообщения или рассылки
- Использование списков контактов, которые вам не принадлежат
- Злоупотребление списками рассылки
- Нарушение Условий предоставления услуг
Сравнительный анализ
Для сравнения было выбрано 4 провайдера - 2 официальных и 2 неофициальных. К официальным были отнесены как прямые партнеры корпорации Meta, так и их посредники.
|
Chat2Desk |
360 dialog |
Chat-API |
GREEN-API |
Статус |
Официальный |
Официальный |
Неофициальный |
Неофициальный |
Возможность начинать чат без запроса разрешения через сторонний канал |
Нет |
Нет |
Есть |
Есть |
Исходящие сообщения (рассылки, акции) |
Только шаблонные сообщения (за доп. плату) |
Только шаблонные сообщения |
Свободно с учетом правил WhatsApp |
Свободно с учетом правил WhatsApp |
Входящие сообщения (чат-боты) |
Свободно в рамках 24 часового окна |
Свободно в рамках 24 часового окна |
Свободно |
Свободно |
Вероятность бана номера |
Отсутствует | Отсутствует | Присутствует* | Присутствует* |
Ссылка на тарифы |
|
|||
Тариф за месяц за аккаунт |
От 8500 руб |
От 4000 руб |
990 руб |
690 руб |
Бесплатный полнофункциональный доступ |
- |
- |
Только 3 дня |
Есть |
* Чем дольше номер зарегистрирован в WhatsApp, тем он более устойчив к блокировке. Если вы только что зарегистрировали новый номер, то он наиболее уязвим, рекомендуется начинать прогрев только на следующие сутки после создания аккаунта WhatsApp. Вам требуется быть особенно аккуратным первые 10 дней работы номера. Вы должны постепенно "прогревать" номер.
Таким образом, ограничения функциональности и цены на услуги официальных провайдеров позволяют утверждать, что WhatsApp Business API, в первую очередь, рассчитан на компании, которые готовы платить и к которым поступает большое количество обращений, в том числе из разных каналов (других мессенджеров, чата на сайте, социальных сетей и т.д.).
Среди неофициальных провайдеров в категории функциональности и полноты документации нельзя назвать однозначного лидера. Все примерно на одном уровне. Самым привлекательный по цене - это GREEN-API.
Что за зверь такой GREEN-API?
Я решил детальнее посмотреть на этого нового поставщика и написал обертку для 1С над GREEN-API, воспользовавшись бесплатным аккаунтом. К тому же, чтобы воспользоваться официальным каналом мне потребовалось бы заключить договор от имени юр. лица, коего у меня пока нет, ну и оплатить счет согласно таблице выше. Порядок цен у всех официалов примерно одинаковый. А вот для начала работы с GREEN-API от меня потребовалась только регистрация на сайте.
Технически работа с GREEN-API организована как традиционный HTTP REST API, который требует регистрации и авторизации перед его использованием. Есть документация к методам
Последователь действий
- Первым делом нужно пройти регистрацию в сервисе. Для регистрации нужно указать только e-mail. После верификации в личном кабинете появятся ваша уникальная пара данных авторизации для доступа к REST API - API Token и ID Instance.
- Далее нужно определиться с телефоном, который будет служить "сервером" отправки сообщений в WhatsApp и связать его с сервисом GREEN-API. Для этого нужно перейти в личный кабинет GREEN-API, где полученные данные в п.1 и сканировать QR код
- Теперь можно воспользоваться REST API провайдера. Для примера мы попробуем отправить текстовое сообщение. Код отправки взят из приложенной обработки
&НаКлиенте
Функция КомандаОтправитьСообщениеWhatsApp(АпиХост, Инстанс, Токен, Телефон, Сообщение)
Структура = Новый Структура;
Структура.Вставить("chatId", "");
Структура.Вставить("phoneNumber", Телефон);
Структура.Вставить("message", Сообщение);
Запись = Новый ЗаписьJSON();
Запись.УстановитьСтроку();
ЗаписатьJSON(Запись, Структура);
Тело = Запись.Закрыть();
Ответ = ОтправитьPOSTЗапрос(АпиХост, СтрШаблон("waInstance%1/%2/sendMessage", Инстанс, Токен), Тело);
Сообщить(СтрШаблон("Сообщение отправлено успешно. idMessage=%1", Ответ.idMessage));
КонецФункции
&НаКлиенте
Функция ОтправитьPOSTЗапрос(Хост, Адрес, Тело)
Сертификат = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Выбирать),
Новый СертификатыУдостоверяющихЦентровWindows());
Соединение = Новый HTTPСоединение(Хост,,,,,, Сертификат);
ВебЗапрос = Новый HTTPЗапрос(Адрес);
ВебЗапрос.Заголовки.Вставить("Content-Type", "application/json");
ВебЗапрос.УстановитьТелоИзСтроки(Тело);
Ответ = Соединение.ОтправитьДляОбработки(ВебЗапрос);
Если Ответ.КодСостояния = 200 Тогда
Чтение = Новый ЧтениеJSON();
Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
ПрочитанныйОтвет = ПрочитатьJSON(Чтение);
Чтение.Закрыть();
Возврат ПрочитанныйОтвет;
Иначе
ВызватьИсключение Ответ.ПолучитьТелоКакСтроку();
КонецЕсли;
КонецФункции
Если все сделано правильно, то на указанный номер должно прийти сообщение.
Также я поэкспериментировал с обменом файлами. Все сработало без проблем. Таким образом, сервис вполне удачно может быть использован для организации обмена сообщениями через WhatsApp.
Для заинтересованных результаты данного творчества оформлены в виде внешней обработки для платформы 1С версии 8.3.10 и приложены файлом к данной статье. Дополнительно при желании можно взглянуть на исходники обработки на Github
Важно! Неофициальный статус поставщика WhatsApp означает, что его не стоит использовать для массовых рассылок рекламы и спама. В противном случае ваш аккаунт может быть заблокирован без возможности восстановления.
На этом мы закончим наш обзор. А какой бы Вы выбрали сервис для интеграции? Может быть уже используете какое-то решение? Поделитесь Вашим опытом в секции комментариев.