📨 Омниканал — мессенджеры и захват лидов

Омниканал собирает в TSync все способы, которыми с вами связываются клиенты, в одном месте: лиды из веб-форм, звонки и мессенджеры (Viber, WhatsApp, Facebook Messenger, Instagram Direct). Каждое сообщение становится перепиской, привязанной к лиду, а каждая отправка формы или заявка из рекламы автоматически становится лидом — с дедупликацией, чтобы у вас не было двух записей по одному человеку.

Модуль выключен по умолчанию. Ничего не меняется, пока администратор его не включит.

Как включить

Откройте Центр конфигурации → Омниканал → Настройки и выберите режим:

  • Выключено — полностью инертно. Есть только страница настроек; ничего не показывается, не отправляется и не принимается.
  • Shadow — консоль и меню появляются, чтобы всё безопасно настроить; каналы ещё не активны.
  • Включено — полностью активно. Каналы отправляют и принимают.

На этой же странице задайте код страны по умолчанию (для Молдовы 373, для Румынии 40). Тогда местные номера вроде 069 123 456 автоматически превращаются в полный международный номер.

Версия API Meta (Graph). Здесь же находится версия, которую использует каждый вызов к Meta — Messenger, WhatsApp, Instagram, Lead Ads и чтение ваших собственных публикаций. Это поле (формат vNN.N, например v23.0), а не что-то зашитое в выпуск системы: Meta выводит версию из обращения примерно через два года после её появления, и вызовы начинают падать, хотя у вас ничего не менялось. Версий две, и они независимы, а это только одна из них: у каждого поля вебхука своя версия, задаваемая в консоли приложения Meta, и она определяет форму того, что Meta вам присылает. Они могут расходиться вообще без ошибок — приведите в соответствие обе.

Меню быстрых действий по правому клику

После включения щёлкните правой кнопкой по любому номеру телефона в TSync — в лиде, списке или поле формы — и появится небольшое меню:

  • WhatsApp · Viber · Telegram — открывает чат с этим номером в вашем приложении,
  • Позвонить · SMS — начинает звонок или сообщение,
  • Копировать номер.

Правый клик по документу (там, где он отмечен для отправки) даёт Поделиться (система) — используется нативное окно «Поделиться» устройства (удобно на телефоне, где можно приложить сам файл) — плюс варианты «скопировать ссылку и открыть» для каждого приложения.

Какие приложения показывать, вы выбираете в Настройки → Быстрые действия.

Плавающий виджет контактов

Если меню по правому клику — инструмент для вашей команды, то плавающий виджет контактов — это всегда видимая кнопка, через которую с вами связываются посетители и клиенты. Это небольшая круглая кнопка, закреплённая в углу страницы; при нажатии она раскрывает набор иконок каналов. Это современный преемник старого виджета поддержки-контакта.

Включите его в Центр конфигурации → Омниканал → Настройки → Виджет контактов:

  • Включите виджет и выберите, где он показывается — клиентский портал, админ-зона или оба.
  • Задайте положение кнопки (в каком углу экрана) и её цвет.
  • Заполните каналы, которые вы предлагаете — WhatsApp, Viber, Telegram, Messenger, телефон, email. Кнопка канала появляется только когда вы заполните его значение, так что вы показываете именно те способы связи, которые хотите.

Посетитель видит круглую кнопку, нажимает её и выбирает канал: WhatsApp / Viber / Telegram / Messenger открывают чат с вами, телефон начинает звонок, а email открывает новое письмо. Всё происходит на устройстве самого посетителя — ничего не отправляется, пока он не решит с вами связаться.

Подключение канала (Аккаунты)

Перейдите в Омниканал → Аккаунты и нажмите Новый. Выберите канал и заполните его данные — каждый канал даёт вам защищённый URL вебхука, который вставляется у провайдера:

  • Tilda — для форм на сайте. Вставьте URL в Tilda → Настройки сайта → Формы → Webhook. Каждая отправка попадает во входящие как цепочка; лид по умолчанию НЕ создаётся — см. ниже. После подключения вебхука переопубликуйте страницы в Tilda: список получателей записан в уже опубликованных страницах, иначе формы продолжат отправлять только туда, куда отправляли раньше.
  • Viber — вставьте auth token Viber-бота; зарегистрируйте URL в Viber (set_webhook).
  • WhatsApp — Cloud API: укажите id номера, access token, app secret и verify token; вставьте URL + verify token в вебхук приложения Meta.
  • Meta Lead Ads (реклама Facebook/Instagram) — укажите id страницы, page access token, app secret и verify token; подпишите поле leadgen приложения.
  • Messenger / Instagram Direct — те же поля страницы Meta. Нужны ДВЕ подписки, и именно отсутствие второй обычно объясняет, почему ничего не приходит: подпишите Страницу на приложение и подпишите само приложение на поле messages (приложение Meta → Webhooks). Экран «Configure webhooks» проверяет callback, но может оставить список полей пустым — если messages в нём нет, Meta не присылает вообще ничего. Для комментариев к публикациям и рекламе дополнительно подпишите объект instagram на comments, а Страницу на feed.

Для каждого аккаунта можно задать статус, источник и ответственного по умолчанию для создаваемых лидов.

Инбокс

Омниканал → Инбокс — единый список всех переписок по всем каналам: от кого, последнее сообщение, метка непрочитанного и ссылка на лид. Фильтруйте по Все / Непрочитанные, по каналу или ищите по имени, телефону или email.

Откройте переписку, чтобы увидеть всю ленту сообщений (входящие и исходящие пузыри). Для каналов с ответами (Viber, WhatsApp, Messenger/Instagram) есть поле ответа — можно написать сообщение или выбрать быстрый ответ и отправить прямо из TSync. На карточке каждого лида также показана компактная лента Омниканала сообщений этого человека.

Фото, голосовые и файлы тоже доходят. Фотография, стикер, GIF, голосовое сообщение или документ, отправленный клиентом, скачивается и хранится вместе с перепиской: картинку видно прямо в ленте, а голосовое можно прослушать, не выходя из TSync — одинаково в Messenger, Instagram, Viber и WhatsApp. Имя и фото профиля отправителя показываются везде, где их даёт канал; если не даёт — переписка подписывается каналом и хвостом идентификатора отправителя — Messenger · #a1b2c3 — чтобы два незнакомых человека никогда не выглядели как один.

Какая реклама привела переписку. Если человек написал вам, нажав на рекламу Facebook или Instagram «отправить сообщение», в инбоксе источник показан как Messenger (ad) или Instagram (ad) (эта пометка в списке остаётся английской), а внутри переписки метка Из рекламы называет само объявление. Так платный трафик отличается от органического без захода в Ads Manager. Переходы, которые не являются рекламой (короткая ссылка, чат-виджет на сайте), тоже фиксируются, но намеренно не помечаются как реклама.

Реакция — это ответ. Когда человек ставит 👍 или ❤️ на одно из ваших сообщений, переписка показывает это на самом сообщении, а не отдельной строкой — так «палец вверх» на коммерческом предложении виден вместо того, чтобы читаться как молчание. Если реакцию снимут, она исчезнет и здесь. Показываются только реакции на сообщения, которые уже есть в инбоксе; для переписки, начавшейся до подключения канала, ничего не выдумывается.

Истории Instagram. Ответ на вашу историю помечается «Ответил на вашу историю», со ссылкой открыть историю, на которую он отвечает, а тот, кто показал ваш бизнес в собственной истории, приходит как «Упомянул вас в истории» — он показал вас своим подписчикам. Это два самых ценных события в Instagram-инбоксе, и раньше они выглядели как любая другая картинка.

Если ответ отправить нельзя, вам скажут почему. Прежде чем ваше сообщение уйдёт, TSync проверяет, что человек не отписался и что окно канала ещё допускает сообщение: в Messenger и Instagram свободное окно — 24 часа с их последнего сообщения вам. После него ответ, написанный вами, всё равно уходит по исключению Meta для человеческих ответов (до 7 дней). После этого срока, или на канале без такого исключения (свободное сообщение в WhatsApp), отправка останавливается с понятной причиной вместо кода ошибки провайдера — используйте одобренный шаблон.

Удаление переписки. Спам, сообщение, попавшее не туда, или ваши собственные тестовые строки можно убрать: откройте переписку и нажмите Удалить переписку. Сообщения и их файлы удаляются безвозвратно. Контакт и связанный лид остаются — переписка это свидетельство, а лид коммерческая запись, и удаление первого не имеет права молча забрать второе. Подтверждение говорит об этом прямо, до нажатия.

Ответ кнопками, которые можно нажать

Под полем ответа есть свёрнутая панель «Быстрые ответы (необязательно)». Откройте её, нажмите + для каждого варианта, который хотите предложить, и впишите короткую подпись (до 20 символов). Отправьте как обычно — подписи появятся под вашим сообщением кнопками, которые собеседник нажимает вместо того, чтобы печатать.

Не путайте с разделом «Готовые ответы» в меню: там хранятся заготовки текста, которые вы вставляете в поле ответа. Здесь — кнопки, которые уходят вместе с сообщением.

Так стоит делать всегда, когда ответ — один из нескольких известных вариантов: Да / Нет / Перезвоните. В нажатии нельзя ошибиться, и оно говорит то, чего напечатанное слово сказать не может: выбранный вариант помечается словом выбрал, поэтому «Да», которое человек выбрал, никогда не выглядит как «Да», которое он случайно набрал.

Оставьте панель закрытой — ответ уйдёт ровно так же, как раньше. Пустая строка игнорируется.

Не каждый канал несёт всё, и о том, что осталось за бортом, вам сообщат. WhatsApp допускает не больше трёх кнопок; Instagram показывает их только в мобильном приложении; Telegram не примет две клавиатуры сразу. TSync подгоняет сообщение под канал, а затем сообщает разницу — «2 элемент(ов) не поддерживаются в этом канале и были опущены». Это важно: сообщение может быть отправлено успешно и всё равно прийти без кнопок — как раз тот случай, о котором иначе вы бы никогда не узнали. Слишком длинная подпись укорачивается, а не выбрасывается: короткая кнопка работает, а отсутствующая ломает ответ, который на неё ссылался.

Можно отправить и картинку или файл вообще без текста — фотография без подписи это нормально, и теперь она проходит.

К какому сообщению относится ответ

Когда человек отвечает на конкретное сообщение — жестом «ответить» в приложении Messenger, например — в переписке появляется «В ответ на» с цитатой оригинала над его словами. В ветке с несколькими открытыми вопросами это единственный способ понять, на какой из них ответили: связь потом уже не восстановить ни по времени, ни по порядку сообщений.

Если оригинал старше той части переписки, что на экране, будет написано «В ответ на более раннее сообщение», а не пусто — так ответ всегда выглядит ответом, даже когда саму цитату найти не удаётся. Сообщение, пришедшее прямо у вас на глазах, показывает свою цитату сразу — перезагружать страницу, чтобы увидеть, на что оно отвечает, больше не нужно.

Как ответить на конкретное сообщение

То же самое можно сделать и со своей стороны. Наведите курсор на сообщение клиента и нажмите стрелку ответа рядом с пузырём — «Ответить на это сообщение». Над полем ответа появится полоса «Отвечаете на» с текстом, на который вы отвечаете; напишите ответ и отправьте как обычно — клиент увидит его прикреплённым именно к тому сообщению, ровно как если бы вы воспользовались жестом «ответить» в своём приложении. Нажмите на полосе, чтобы снова отвечать переписке целиком.

Пользуйтесь этим всегда, когда ветка ушла в несколько тем: «да, это есть на складе» через три вопроса уже ничего не значит.

Messenger, Instagram, WhatsApp и Telegram это несут. На Viber отправка отклоняется с понятной причиной, вместо того чтобы прийти оторванной от сообщения, на которое должна была отвечать.

Мелочь, которая ушла вместе с этим: отправка ответа больше не вызывает диалог браузера «Leave site? Changes that you made may not be saved». Он появлялся при каждой отправке, и нажатие Cancel выбрасывало написанное.

Отправка файла со своего компьютера

Под полем ответа есть «Прикрепить файл». Выберите изображение, видео, аудио, PDF или документ Office размером до 25 МБ, при желании добавьте текст и отправьте вместе с ответом.

Файл никогда не публикуется. Он загружается с вашего сервера прямо на платформу, поэтому нет публичного адреса, который мог бы открыть любой, у кого есть ссылка. Эта разница важна в тот день, когда вы отправляете подписанный договор, а не фотографию товара. Отправить можно только фиксированный список типов файлов, причём тип читается из содержимого файла, а не из его имени.

Сегодня файл с компьютера умеют отправлять только Messenger и Instagram. На Telegram, WhatsApp и Viber отправка отклоняется с прямой фразой об этом — вместо того чтобы отправить текст и молча потерять файл.

Если файл не проходит проверку, не отправляется ничего: исправьте его и нажмите «Отправить» ещё раз. А если ваш сервер отклонит загрузку раньше, чем её увидит TSync (частый лимит заметно меньше 25 МБ), вам скажут и об этом — «ничего не произошло» худший из возможных ответов на нажатие «Отправить» с файлом в 30 МБ.

Когда сообщение становится лидом

По умолчанию — не становится. Сообщение, комментарий или отправленная форма попадают во входящие как цепочка, а лид создаётся только тогда, когда вы решите, что это реальный клиент, — кнопкой Создать лид в цепочке.

Причина проста: не каждое сообщение — квалифицированная заявка. Телефон, оставленный в строке «перезвоните мне», вопрос в комментарии, «здравствуйте» в Messenger — это разговоры, а не клиенты. Если каждый из них автоматически станет лидом, воронка заполнится записями, которые никто не проверял, и ваши цифры продаж перестанут что-либо значить.

Ничего не теряется: цепочка сохраняется целиком — сообщения, телефон и всё, что было заполнено. Её можно найти, ответить из неё и перевести в лид в любой момент позже.

Если квалификация у вас происходит до попадания в систему — например, бот пересылает только отфильтрованные заявки — отметьте галочку у нужного аккаунта в Omnichannel → Аккаунты:

  • Создавать лид для каждой отправки формы (Tilda),
  • Создавать лид для каждого чата (Messenger, Instagram, Viber, WhatsApp),
  • Создавать лид для каждого комментатора (комментарии Facebook/Instagram).

У каждого канала свой переключатель, поэтому комментарии можно оставить журналом, а формы — превращать в лиды.

Звонки в инбоксе

Если вы используете коннектор PBX Moldcell, звонки тоже появляются здесь: каждый звонок становится записью в переписке контакта с направлением, длительностью, статусом и — если есть — встроенным аудио- плеером записи. Входящий звонок с неизвестного номера может автоматически открыть новый лид.

Комментарии к постам в Facebook и Instagram

Комментарии под вашими постами и объявлениями попадают в инбокс как переписки, так же как личные сообщения — но попадают туда потому, что TSync их забирает, а не потому, что Meta их присылает. Meta не доставляет уведомления о комментариях, пока приложение не прошло проверку Advanced Access, тогда как чтение комментариев работает с первого дня. Поэтому TSync забирает их сам.

Задача планировщика Опрос комментариев (Facebook / Instagram) (omni.comment_poll, по умолчанию каждые 15 минут) просматривает свежие посты и заносит каждый новый комментарий. Она намеренно ограничена, чтобы одна активная страница не забрала всё: 10 последних постов на аккаунт, опубликованных за последние 30 дней, и не больше 300 комментариев за запуск. Ваши собственные ответы распознаются и никогда не заносятся как сообщения клиента, а комментарий, уже попавший в инбокс, не заносится второй раз — поэтому неважно, запустится ли задача снова.

Она находится в Планировщике (Планировщик в боковом меню), оттуда её можно запустить и вручную кнопкой Запустить сейчас. Ей нужно разрешение pages_read_user_content в вашем приложении Meta. Если позже вам одобрят вебхуки комментариев, они автоматически становятся основным каналом, а задача остаётся страховкой на случай пропусков доставки, которые у вебхуков бывают незаметно для всех.

Как ответить комментатору лично

Публичный комментарий можно превратить в личную переписку. Откройте комментарий в инбоксе и нажмите «Личный ответ»: человек получит ваше сообщение в Messenger или Instagram Direct, и если он ответит, переписка продолжится обычным образом. Meta разрешает ровно один личный ответ на комментарий, в течение 7 дней — подтверждение об этом предупреждает, потому что отменить или повторить его нельзя.

Это может происходить и само. На странице Омниканал → Ответы по ключевым словам включите «Отвечать на новые комментарии лично и автоматически». Дальше:

  • комментарий, совпавший с одним из ваших правил по ключевым словам, получает ответ этого правила — написавший «цена» получит прайс, написавший «демо» — ссылку на запись;
  • текст «Автоматический личный ответ» ниже — это ответ всем остальным;
  • оставьте этот текст пустым, и ответ получат только те, чей комментарий совпал с правилом. Это более сдержанный вариант и обычно правильный: личное сообщение тому, кто написал просто «красиво», непрошеное так, как ответ на «цена» — нет.

Функция выключена, пока вы её не включите, на одного комментатора уходит один ответ, отвечают только на входящие комментарии, а сбой здесь никогда не стоит вам самого комментария.

Точки входа — ссылки, которые помнят, откуда пришли

Omnichannel → Точки входа создаёт ссылку (и QR-код), которая начинает переписку с вами и помечает её кампанией, из которой пришёл человек. Поставьте одну и ту же метку везде, где публикуете ссылку — плакат, реклама, рассылка — и инбокс покажет, какой из них люди действительно воспользовались.

Вы выбираете, где открывается ссылка, какую страницу/аккаунт/номер она открывает, и метку кампании. Ничего не сохраняется: страница только собирает ссылку, а вы копируете её или печатаете QR-код.

Четыре канала ведут себя по-разному, и экран сообщает об этом у каждой ссылки:

Открывается в Метка Что важно знать
Messenger передаётся незаметно
Instagram передаётся незаметно только на телефоне — на компьютере метка теряется
WhatsApp скрытой метки нет она попадает в сообщение, которое отправляет человек, — он его видит и может изменить
Telegram передаётся незаметно принимает меньше символов, поэтому длинная метка может быть укорочена

Если метку пришлось изменить, чтобы она подошла каналу — пробелы становятся дефисами, необычные символы удаляются — страница сообщит новую метку. Это важно: когда ссылка уже на плакате, метка, тихо сменившая форму, больше не совпадает с той, которую вы ищете в отчётах.

Сопоставление полей (необязательно)

Омниканал → Сопоставление полей позволяет решить, как именно поля формы становятся данными лида. По мере поступления лидов TSync запоминает имена полей формы; откройте профиль и сопоставьте каждое поле с полем лида (имя, email, телефон, компания, …) или кастомным полем лида. Что не сопоставлено, попадёт в заметки лида. Это необязательно — без этого TSync автоматически определяет имя/телефон/email.

Правила маршрутизации (необязательно)

Омниканал → Правила маршрутизации автоматически направляют входящие лиды в нужное место. Правило совпадает по каналу + форме / UTM source / UTM campaign / id объявления и затем задаёт статус (пайплайн), источник, ответственного и теги лида. Побеждает активное правило с наивысшим приоритетом; правило без условий — catch-all. Правила приоритетнее настроек аккаунта — напр. «лиды из кампании Google → статус Hot, ответственный Ана, тег google

Готовые ответы

Омниканал → Готовые ответы — ваша библиотека переиспользуемых ответов (заголовок + сообщение, опционально ограничено одним каналом). Они появляются в списке над полем ответа, чтобы команда отвечала быстро и единообразно.

Автоответы (по ключевым словам)

Омниканал → Ответы по ключевым словам позволяет инбоксу отвечать самому. Человек пишет «цена» в 22:40 и получает ответ сразу, а не наутро, когда кто-то откроет инбокс.

Это намеренно просто: одно входящее сообщение — один заготовленный ответ. Никаких ветвящихся диалогов бота — только те вопросы, на которые вы и так отвечаете по десять раз в день.

Правило — это набор ключевых слов и ответ, который нужно отправить:

  • Совпадениеточно равно · содержит · содержит слово целиком · начинается с · это палец вверх · не содержит ни одного из.
  • Ключевые слова — до десяти, через запятую. Диакритика игнорируется, поэтому pret совпадает и с preț, и не нужно вводить оба написания каждого слова. (Русский сравнивается буква в букву — там знаки несут смысл.)
  • Ответить — либо текстом, который вы напишете, либо одним из сохранённых быстрых ответов.
  • Канал — один канал или все.
  • Приоритет — первым проверяется меньший номер. Отвечает первое подходящее правило, и отправляется ровно один ответ.

Ответ по умолчанию внизу той же страницы отвечает на всё, что не совпало ни с одним правилом — удобно для «спасибо, сообщение получено, отвечаем с 9:00 до 18:00». Оставьте его выключенным или с пустым текстом — и не будет отправлено ничего.

Предохранители

Это не настройки, которые нужно искать, — так функция работает:

  • Она выключена, пока вы её не включите. Обновление никогда не заставит вашу систему само заговорить с клиентами. Когда автоответ выключен, страница правил говорит об этом сверху, а не молчит.
  • Она никогда не отвечает дважды подряд. Пять сообщений подряд получают один ответ. Паузу между двумя автоответами одному человеку задаёте вы — по умолчанию 5 минут, в диапазоне от 1 до 240.
  • Она отвечает только на входящее сообщение. Исходящее никогда не запускает ответ, поэтому две системы не могут разогнать друг друга. На публичный комментарий отвечают только через «Отвечать на новые комментарии лично и автоматически» выше — это отдельный переключатель, выключенный по умолчанию — и никогда публичным ответом под постом.
  • Она остаётся в правилах мессенджеров. Автоответ уходит в обычном 24-часовом окне, которое открыто по определению, ведь он отвечает на только что пришедшее сообщение. TSync никогда не использует исключение Meta для «человека-агента» ради автоматики — оно предназначено для текста, который написал человек.
  • Автоответ помечается как автоматический в переписке, поэтому его всегда видно отличить от ответа вашей команды.

Правило без ключевых слов не совпадает ни с чем — в том числе в режиме не содержит ни одного из, где иначе оно отвечало бы вообще на каждое сообщение.

Ice breakers и меню (Messenger и Instagram)

Страница Омниканал → Ice breakers и меню задаёт то, что человек видит до того, как что-либо напишет.

  • Ice breakers — до четырёх вопросов, предлагаемых в переписке без истории: «Какие у вас цены?», «Где вы находитесь?», «Хочу предложение». Тот, кто вам никогда не писал, получает выбор вместо пустого поля, а это разница между разговором и закрытой страницей.
  • Постоянное меню — до трёх пунктов, всегда доступных под полем ввода. Каждый либо отправляет сообщение, либо открывает ссылку (только https).

Нажатие приходит в инбокс обычным сообщением, текст которого — тот самый вопрос, который видел клиент. Поэтому правила по ключевым словам отвечают на него так же, как на набранный вопрос, а вы читаете именно те слова, которые он нажал.

Настраивается для каждой Страницы отдельно. Компания с двумя Страницами публикует на каждой свои вопросы; единого глобального списка нет.

Сохранение и публикация — разные действия. Сохранить оставляет черновик: для клиентов не меняется ничего. Опубликовать на Странице — то, что показывает это им. Под формой блок «Что на самом деле у Meta» считывается обратно от Meta после каждой публикации, так что вы видите то, что живо, а не то, что набрали. Если Meta недоступна, блок скажет неизвестно, а не покажет пустой список.

Отчёты — измерение инбокса

Три отчёта Омниканала регистрируются сами в Отчётах (консоли отчётов платформы), поэтому наследуют всё, что там умеют отчёты: фильтры, колонки, экспорт XLSX/CSV, графики и рассылку по расписанию.

Отчёт Отвечает на вопрос
Омниканал — объём переписок новые переписки и сообщения по дням и каналам, где доля отправленного автоматически отделена от написанного человеком
Омниканал — время до первого ответа по каждой переписке: когда клиент написал впервые, когда ему ответили и сколько он ждал
Омниканал — откуда пришли переписки переписки, сгруппированные по ref-метке или объявлению, с которых начались, и сколько из них стали лидами

Две вещи сделаны намеренно, и их стоит знать при чтении цифр. У переписки без ответа длительности нет вообще — не ноль, который читался бы как «ответили мгновенно» и тихо улучшал бы среднее. А переписка без атрибуции так и считается, а не выбрасывается из отчёта: иначе таблица точек входа льстила бы той кампании, которая случайно оказалась помечена.

Отчёты появляются, только пока Омниканал включён, и подчиняются тому же праву доступа, что и инбокс.

Шаблоны WhatsApp — единственный способ написать первым

На настоящем номере WhatsApp просто так начать переписку нельзя. Свободный текст требует клиента, который написал вам за последние 24 часа; вне этого окна WhatsApp принимает только шаблон, проверенный и одобренный Meta. Поэтому вопрос «какие у меня шаблоны и одобрены ли они» — не мелочь, а полный список возможных начал разговора, которые есть у бизнеса.

Страница Омниканал → Шаблоны WhatsApp на него отвечает. В списке — каждый шаблон с языком, реальным статусом у Meta (APPROVED · PENDING · REJECTED) и, если он отклонён, причиной словами Meta: это та единственная фраза, которая говорит, что менять.

Как создать

Новый шаблон собирает все три языка из одной формы:

  • Имя — строчные буквы, цифры и подчёркивания. Одно имя несёт все три языковые версии.
  • КатегорияUTILITY значит «о существующем запросе или заказе». Meta сама переклассифицирует то, что вы отправляете, и отклоняет несоответствие, поэтому держите формулировку транзакционной. Текст с чем-то вроде nr. {{2}} может быть прочитан как код подтверждения и отклонён ещё до первого использования.
  • Сообщение — пишется с {{1}}, {{2}} там, где подставляются значения. Переменная не может открывать или закрывать сообщение.
  • Примеры значений — по одному на переменную. Meta проверяет отрисованное сообщение, а не заготовку. Придумайте их: они уходят в Meta, поэтому никогда не берите данные настоящего клиента.

Пустой язык просто не создаётся, и у каждого языка свой вердикт — румынский одобрен, а английский отклонён из-за формулировки, это обычный исход, и общее «готово» его бы скрыло. Ответ обычно приходит за несколько минут.

То, что это делается здесь, а не в консоли Meta, — намеренно: тот редактор сам закрывает скобки (набираете {{1}}, получается {{1}}1}}), поля примеров выглядят как собственные подписи, поэтому пробный текст попадает в тело сообщения, а мастера приходится проходить отдельно для каждого языка.

Как пользоваться одобренным шаблоном

Импортировать одобренные копирует то, что одобрила Meta, в локальную библиотеку, чтобы никто не набирал заново имя, которое должно совпадать точно: одна опечатка отвечает «нет шаблона» в момент отправки и ничего больше не объясняет. Импортируются только ОДОБРЕННЫЕ (ожидающий — это имя, которое откажет при использовании), а повторный запуск обновляет, а не дублирует.

Дальше шаблон можно отправить:

  • одному человеку, прямо из переписки. Когда с последнего сообщения человека прошло больше 24 часов, в ветке появляется «Отправить одобренный шаблон»: выбираете шаблон, заполняете значения для {{1}}, {{2}}, отправляете. Его ответ снова открывает свободное окно. Без этих значений Meta доставит подстановку буквально, и клиент прочитает «Bună ziua, {{1}}» — поэтому их спрашивают, а не предлагают;
  • сегменту — через Кампании (раздел ниже).

Элемент появляется только тогда, когда он и нужен, и возможен: окно закрыто и есть хотя бы один одобренный шаблон. Пока работает свободный текст, он быстрее, бесплатен и читается как написанный человеком.

Кампании (комплаентная рассылка)

Омниканал → Кампании отправляет сообщение сегменту контактов по каналу мессенджера — контролируемо и комплаентно:

  • Вы выбираете канал, сообщение (или готовый ответ), сегмент (напр. статус лида) и throttle (сообщений в минуту).
  • Собрать получателей создаёт список и проверяет каждого: отписавшиеся пропускаются; для свободного сообщения подходят только контакты в окне 24 часов (с момента их последнего сообщения вам); сообщение по шаблону требует явного opt-in.
  • Старт отправляет throttled-пакетами — автоматически каждую минуту (через задачу планировщика omni.campaign_dispatch) или сразу через Отправить пакет сейчас.
  • Каждый получатель проверяется заново в момент отправки, а не только при построении списка. 24-часовое окно — это движущийся срок, поэтому кампания, подготовленная сегодня и отправленная завтра, не пишет тому, у кого окно закрылось за это время, и тому, кто отписался после построения списка.
  • Отчёт о доставке показывает всего / в ожидании / отправлено / доставлено / прочитано / ошибки / пропущено (с причиной). Тот, кого правила исключили при отправке, попадает в пропущенные, а не в ошибки: попытки не было, и Повтор неудачных не должен возвращать его в очередь.

Согласие и отписка. Входящее сообщение считается opt-in; если кто-то отвечает STOP (или unsubscribe / dezabonare / отписаться), он отписан и больше не получает сообщений. Так рассылка остаётся в рамках правил WhatsApp/Viber.

Журнал событий — что пришло и как вернуть то, что не прошло

Омниканал → Журнал событий показывает каждое событие, которое доставил провайдер: канал, тип, было ли оно обработано — и, если что-то пошло не так, точную ошибку.

Эта страница существует по одной жёсткой причине: провайдер не присылает сообщение дважды. Чтобы Facebook, Viber или WhatsApp не устраивали шторм повторов, TSync подтверждает получение сразу. Если после этого сообщение не удалось записать (временная проблема с базой, неверно настроенный аккаунт), раньше оно пропадало навсегда — и вы даже не узнавали, что клиент вам написал.

Теперь каждое событие сохраняется, и его можно вернуть:

  1. Откройте Омниканал → Журнал событий и нажмите фильтр Ошибка (страница Состояние тоже предупредит, если что-то не прошло за последние 24 часа).
  2. Нажмите на событие, чтобы прочитать ошибку и увидеть, что именно прислал провайдер.
  3. Устраните причину и нажмите Повторить — сообщение обработается заново и появится во входящих как обычно. Повторить все обработает всю неудавшуюся очередь сразу.

Повтор уже обработанного события записал бы сообщение второй раз, поэтому по умолчанию он заблокирован. Если вы уверены, что первая попытка ничего не сохранила, его можно принудительно выполнить со страницы события, с подтверждением.

События, полученные до этой версии, не сохранялись и не могут быть повторены — страница честно об этом говорит.

Как держать список в порядке. Ежедневная задача удаляет завершённые события (обработанные, пропущенные, отклонённые) старше срока хранения, который вы задаёте внизу страницы (по умолчанию 90 дней). Неудавшиеся и ещё ожидающие события никогда не удаляются автоматически — именно они ещё требуют вашего внимания.

Безопасность

Всё, что приходит из канала, считается недоверенными данными — проверяется и сопоставляется, но никогда не выполняется. Каждый вебхук аутентифицируется (секретный токен в URL плюс подпись провайдера, где она есть) и идемпотентен, поэтому повторная попытка провайдера не создаёт дубликатов. Все действия записываются в аудит.