Каналы: SMS, WhatsApp, Telegram
9 мин чтения
Сообщения нужны там, где звонок лишний: подтверждение заказа, номер посылки, напоминание перед доставкой. Каналов три — SMS, WhatsApp и Telegram, — и различаются они не столько ценой, сколько тем, кому и когда вы имеете право написать первым.
Три канала и их особенности
НастройкиКаналыЛогин
xe-kg
Пароль
Задан — оставьте пустым
Подпись отправителя
XE
Идентификатор номера
109876543210987
Постоянный токен
Задан — оставьте пустым
Токен подтверждения адреса
xe-verify-2026
Секрет подписи вебхука
App Secret из панели Meta
Адрес вебхука для Meta
https://demo.xe.kg/api/v1/comms/hooks/whatsapp
Токен бота от @BotFather
123456:ABC-DEF…
Секрет вебхука
произвольная строка
Каждый канал включается своим переключателем и работает независимо от остальных. Пароли и токены наружу не отдаются: в поле стоит подпись Задан — оставьте пустым, и пустое поле при сохранении оставляет прежнее значение. Если канал включён, но отправка не идёт, рядом с кнопкой Сохранить будет видна последняя ошибка провайдера — с неё и начинайте разбор.
| Канал | Кому можно написать первым |
|---|---|
| SMS | Любому номеру. Самый безотказный канал и самый дорогой при длинном тексте. |
| Только согласованным с Meta шаблоном. Свободный текст открывается на сутки после ответа клиента. | |
| Telegram | Никому: диалог начинает клиент. Пока его номер не связан с чатом, сообщения по заказу уходят в SMS или WhatsApp. |
Электронной почты и Viber в системе нет. Не потому, что их нельзя добавить, а потому, что в этой нише они не работают: заказ подтверждают по телефону, а трек читают в мессенджере.
SMS через Nikita
От клиента нужны три вещи: логин, пароль и согласованная подпись отправителя. Подпись согласуется с оператором связи заранее — с непрописанной подписью шлюз просто откажет в отправке.
WhatsApp через Meta
У канала два способа работы, и первым делом в настройках выбирается один из них. Свой номер в Meta Cloud API — когда номер принадлежит вам целиком и CRM единственная им распоряжается; про него весь этот раздел. Через бота, у которого номер уже подключён — когда на номере уже работает чужой чат-бот; про него отдельный раздел ниже.
Способы взаимоисключающие, и это не ограничение, а суть дела: два приложения на одном номере не поделят клиента, и бот продолжит вести его по воронке поверх живого разговора оператора.
Канал работает с бизнес-номером, подтверждённым в Meta. Все нужные значения лежат в одном месте: developers.facebook.com → ваше приложение → WhatsApp → API Setup.
- Идентификатор номера (Phone number ID) — того номера, с которого пишете.
- Кабинет WhatsApp Business (WABA ID) — лежит рядом, такой же длины и тоже из цифр. Нужен, чтобы система показала список утверждённых шаблонов; для самой отправки не обязателен.
- Постоянный токен — доступ к отправке. Временный токен из того же экрана живёт сутки и годится только на проверку.
- Язык шаблонов по умолчанию — код вида ru, ky, en_US.
- Токен подтверждения адреса — строку придумываете вы и вписываете её же в Meta при подключении вебхука.
- Секрет подписи вебхука — App Secret. Без него подпись входящих не проверяется, и на боевом подключении их сможет прислать кто угодно.
Готовый Адрес вебхука для Meta система показывает сама — его нужно скопировать в настройки приложения на стороне Meta и подписаться там на поле messages. Без этого ответы клиентов до системы не дойдут, а вместе с ними закроется и суточное окно: писать свободным текстом станет нечем.
Кнопка Проверить подключение спрашивает у Meta, что за номер подключён: она покажет сам номер, имя, подтверждён ли он и сколько шаблонов в кабинете. Перепутать идентификатор номера с идентификатором кабинета проще всего, и лучше увидеть это здесь, чем на первом заказе.
WhatsApp через чужого бота
Способ для случая, когда на бизнес-номере уже живёт чат-бот: он ведёт воронку, отвечает на типовые вопросы и рассылает уведомления. Подключать к тому же номеру ещё и CRM напрямую нельзя — бот не узнает, что оператор начал разговор сам, и перебьёт его следующим шагом воронки.
Поэтому единственной дверью в Meta остаётся бот, а CRM становится его клиентом. В настройках вместо токенов Meta указываются два значения: адрес служебного API бота и токен к нему. Секрет подписи здесь тоже нужен, но уже свой: им бот подписывает события, которые шлёт в CRM. Адрес для этих событий система показывает сама — его отдают разработчику бота вместе с секретом.
Способ можно поменять и потом, но токен с секретом при этом придётся вписать заново: у Meta и у бота они свои, и старые не подойдут ни как пропуск, ни как подпись. Система об этом скажет и не даст сохранить наполовину.
Проверить настройки нужно до того, как их увидит оператор: адрес и токен выглядят рабочими, пока их не спросишь о живом человеке. Для этого рядом поле Номер для пробы и кнопка Спросить бота. Возьмите номер, с которого писали боту сами: в ответе видно и сколько шаблонов в кабинете, и видна ли боту переписка с этим человеком. Пустая переписка по номеру, который точно писал, означает одно — номер у бота записан в другом виде, и это чинится до запуска, а не после.
В переписке появляется полоса состояния: видно, кто сейчас говорит с клиентом — бот или человек, — и до какого часа открыт свободный текст. Кнопка Забрать диалог заставляет бота замолчать, Вернуть боту возвращает воронку. Забирать стоит до того, как напишете: иначе бот ответит клиенту поверх вас.
Над полосой — история разговоров клиента с ботом: то, о чём человек уже спрашивал, до того как вы наберёте номер. Разговоры разделены датами, потому что за год их у постоянного клиента набирается несколько, и «Здравствуйте» в начале нового — это новое обращение, а не странность бота. Служебные записи бота — сводку разговора, оценку из опроса — видно плашкой со сноской: клиенту их не отправляли, и ссылаться на них в разговоре нельзя. По умолчанию меню бота скрыты, чтобы не листать двадцать экранов ради одной фразы; Показать полностью вернёт их, а Показать более ранние поднимет ленту выше.
Фотографии и голосовые открываются прямо в карточке по клику — заранее они не грузятся: файл клиента это его персональные данные, и каждое открытие попадает в журнал доступа наравне с записью разговора. У голосового на кнопке видна длительность, а под ним — расшифровка: бот переводит сказанное в текст сам, с кыргызского переводит на русский. В зале это чаще нужнее самой записи, потому что ухо занято софтфоном. Слово «расшифровка» под текстом не для красоты: клиент этого не писал, и спорить с ним о формулировке нельзя.
Отвечать голосом можно тем же способом: кнопка с микрофоном рядом с Отправить. Запись сначала даётся послушать — в зале с первого раза выходит редко, — и уходит клиенту только после этого. Дольше трёх минут записать нельзя: такое голосовое не дослушают, а если сказать надо больше, надо звонить. Кнопка появляется только при этом способе подключения: голосовое умеет отправить бот, напрямую в Meta мы этого не делаем.
Telegram через бота
Нужны токен бота от @BotFather и произвольный секрет вебхука. После сохранения нажмите Подключить вебхук: система сама подпишет бота на события и покажет его имя и число связанных чатов.
Главное ограничение канала техническое, а не наше: боту нельзя написать первым. Клиент открывает диалог сам и делится номером по кнопке — только после этого его чат связывается с заказами. Поэтому Telegram хорош как второй канал для тех, кто уже написал, но не годится как основной способ уведомлений.
Переписка в карточке
10.08 14:31WhatsAppавтоматическиДоставлено
Заказ 10553 принят. Курьер приедет 12 августа, к оплате 3 480 KGS.
10.08 15:02WhatsAppклиент
А можно после шести? Я до шести на работе
10.08 15:04SMSАйгульВ очереди
Передали курьеру: доставка после 18:00.
09.08 21:40SMSавтоматическиНе доставлено
Заказ 10498 отправлен, номер посылки KG123456789.
В карточке заказа каналы стоят отдельными вкладками: SMS, WhatsApp и Telegram. Писать в чужой канал из соседней вкладки нельзя — иначе оператор отправит SMS, думая, что отвечает в мессенджере. Вернуть одну общую вкладку Сообщения можно в НастройкиКаналы в блоке Рабочий экран переписки.
Если у заказа два телефона, в WhatsApp появляется выбор номера: мессенджер часто живёт не на основном. Выбор запоминается на заказе, и следующий оператор попадёт в тот же диалог. Как устроен инбокс всех переписок — в статье Инбокс WhatsApp. Как чат склеивается с отказом и перезвоном — в WhatsApp: один клиент — один оператор.
Чтобы написать самому, при желании выберите Шаблон — текст подставится с данными заказа и его ещё можно поправить. Пункт Свой текст оставляет поле пустым. Для SMS под полем видно, сколько знаков набрано и во сколько частей уложится сообщение.
WhatsApp с личного номера оператора
Бизнес-номер через Meta — не единственный способ. В блоке Клиент карточки заказа рядом с Позвонить стоит узкая зелёная кнопка WhatsApp: она открывает переписку с клиентом в том приложении, которое стоит у оператора, — десктопном, веб-версии или на телефоне. У второго номера заказа такой же значок появляется в строке самого номера.
Кнопка ничего не отправляет сама: оператор пишет и жмёт отправку в своём WhatsApp. Поэтому ответ клиента остаётся в телефоне оператора и в CRM не попадает — в отличие от бизнес-номера, где вся переписка видна в карточке. Если текст выбран шаблоном на вкладке WhatsApp, в ленту заказа попадает отметка, что и когда клиенту написали; открытие переписки без текста в ленту не пишется, но остаётся в журнале действий.
Состояния доставки
| Состояние | Что значит и что можно сделать |
|---|---|
| В очереди | Сообщение принято, но ещё не ушло: ждёт отправки или утра. Можно отменить. |
| Отправлено | Передано провайдеру. |
| Доставлено | Провайдер подтвердил доставку. WhatsApp сообщает об этом сам, у SMS система спрашивает шлюз. |
| Не доставлено | Провайдер отказал или доставка не удалась. Рядом текст ошибки, можно повторить. |
| Отменено | Отменено вручную или снято автоматически — например, заказ удалили как дубль. |
Неудачную отправку система повторяет сама: до пяти попыток с растущим интервалом — две минуты, четыре, восемь и так до часа. Только после этого сообщение получает состояние Не доставлено. Так что кнопка повтора нужна не сразу, а когда причина устранена: пополнен баланс, исправлена подпись отправителя.
Ночью очередь копится и уходит утром — по часовому поясу клиента, а не колл-центра. Часы тишины задаются в настройках проекта и действуют на все каналы; подробности и привязка шаблонов к статусам — в Шаблоны сообщений и автоотправка. Отправку по условию, а не по статусу, умеют правила автоматизации: там же настраивается, кому и когда уходит уведомление помимо смены статуса.
Не нашли ответ
Напишите на hello@xe.kg — ответим и дополним статью. Так она и растёт.