Перейти к основному содержимому

Динамические рассылки

Динамические рассылки позволяют отправлять большие объемы персонализированных сообщений клиентам. Их можно запускать напрямую из сценариев бота или интегрировать со сторонними сервисами через API. В отличие от обычных рассылок, динамические рассылки формируют контент индивидуально для каждого получателя, что повышает релевантность и вовлеченность.

Отправка сообщений

Шаг 1. Создание текстовой рассылки

  • Описание: создается текстовая рассылка, которая будет использоваться как основа для отправки сообщений. Это делается через API.
  • Метод:
  • Особенности:
  • Результат: возвращается идентификатор рассылки для привязки шаблонов и отправки сообщений.

Шаг 2. Создание шаблона отправки

  • Описание: создается шаблон сообщения для конкретного клиента. Шаблон фиксирует данные для отправки, но сообщение не отправляется.
  • Методы:
  • Особенности:
    • Шаблон может содержать данные по умолчанию, которые будут использоваться при отправке, но могут быть переопределены.
    • Есть два типа сообщений:
      • event — обрабатываются в сценарии бота.
      • replies — отправляются напрямую в канал.
    • В качестве параметра вы можете передать callbackUrl для получения уведомлений о статусе отправки сообщений, а также указать priority для управления порядком отправки.
  • Результат: возвращается уникальный идентификатор шаблона и ссылка для отправки сообщений.

Шаг 3. Отправка сообщения по шаблону

  • Описание: после создания шаблона нужно инициировать отправку сообщения конкретному клиенту. На этом этапе можно переопределить данные, указанные в шаблоне.

    к сведению

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

  • Методы:

  • Особенности:

    • Если отправляется event, сообщение обрабатывается в сценарии и может быть выполнено дополнительное действие, например переход в определенный стейт.
    • Если используется replies, сообщение отправляется напрямую в канал без дополнительных обработок.
  • Результат: сообщение добавляется в очередь отправки, затем отправляется клиенту. В ответ возвращается идентификатор отправки.

к сведению

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

Управление рассылками

Помимо создания рассылки, вам также доступны методы управления ими:

Скорость отправки

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

Для этого при создании или обновлении динамической рассылки через API используйте следующие параметры:

  • threadCount — количество потоков. Определяет, сколько сообщений отправляется одновременно. Значение по умолчанию — 1, возможные значения: 1–10.
  • delayBetweenSending — пауза в миллисекундах между отправками сообщений в одном потоке. Значение по умолчанию — 0, возможные значения: 0–60000.

Получение статусов доставки

Чтобы отслеживать статусы доставки сообщений во внешней системе, вы можете использовать механизм обратных вызовов (callback). Для этого при создании шаблона отправки или при отправке сообщения укажите параметр callbackUrl.

На этот URL платформа будет асинхронно отправлять POST-запросы с информацией о финальном статусе доставки каждого сообщения.

Структура callback-события

POST-запрос на callbackUrl содержит JSON-объект следующей структуры:

ПолеТипОписание
textCampaignIdЧислоID рассылки, в рамках которой было отправлено сообщение.
eventSendingTemplateIdСтрокаUUID шаблона отправки, если он использовался.
eventSendingInfoIdСтрокаUUID конкретной отправки сообщения.
statusСтрокаФинальный статус доставки сообщения. Возможные значения:
  • DELIVERED — доставлено.
  • NOT_DELIVERED — не доставлено.
  • FAILED — отправка не удалась. Обычно из-за ошибок на стороне платформы.
  • CANCELED — отменено.
eventSendingTimeСтрокаВремя отправки сообщения в формате ISO 8601.
errorChannelStatusСтрока

Код ошибки от канала, если status равен NOT_DELIVERED. Например: BAD_REQUEST, FORBIDDEN, TOO_MANY_REQUESTS.

Подробнее о возможных значениях errorChannelStatus читайте ниже.
errorChannelStatusDescriptionСтрокаТекстовое описание ошибки от канала.
questionIdСтрокаУникальный идентификатор запроса.
chatIdСтрокаИдентификатор чата с клиентом.
sessionIdСтрокаИдентификатор сессии диалога.
к сведению
  • При ошибке в каком-либо канале придет статус NOT_DELIVERED. Если ошибок несколько, то поле errorChannelStatus будет заполнено по первой возникшей ошибке.
  • Сообщение из нескольких частей, например текст и картинка, обрабатывается как единое целое. Если не доставлена хотя бы одна его часть, все сообщение получит статус NOT_DELIVERED.

Пример JSON-объекта

{
"textCampaignId": 42,
"eventSendingTemplateId": "12345678-abcd-4ef0-9012-345678901234",
"eventSendingInfoId": "abcdef01-2345-4678-9abc-def012345678",
"status": "NOT_DELIVERED",
"errorChannelStatus": "FORBIDDEN",
"errorChannelStatusDescription": "403 ERROR. Bot was blocked by the user.",
"eventSendingTime": "2024-01-15T10:30:00Z",
"questionId": "98765432-fedc-4ba9-8765-432109876543",
"chatId": "telegram:987654321",
"sessionId": "00000000-1111-2222-3333-444444444444"
}

Детализация статусов ошибок

При статусе NOT_DELIVERED поле errorChannelStatus содержит один из стандартизированных кодов ошибки. В таблице ниже показано соответствие этих кодов исходным ошибкам каналов.

Значение errorChannelStatusОписаниеИсходные коды ошибок каналов
BAD_REQUESTНекорректные данные: недопустимый формат номера, синтаксическая ошибка или отправка несуществующему пользователю.
  • Telegram: 400, 401, 404, 406
  • WhatsApp: 0, 1, 3, 33, 100, 131008, 131009, 131021, 131026, 132000
  • VK: 8, 100, 101, 113, 150
  • Viber: 1, 2, 3, 4, 5, 8, 9, 10
FORBIDDENДоступ запрещен: пользователь заблокировал бота, отключил уведомления, или отправитель в списке заблокированных.
  • Telegram: 403
  • WhatsApp: 10, 190, 200–299, 368, 130497, 131005, 131031
  • VK: 15, 18, 30
  • Viber: 6, 7
TOO_MANY_REQUESTSПревышение лимитов: слишком много запросов к API канала за единицу времени.
  • Telegram: 420
  • WhatsApp: 8007, 130429, 131048, 131056, 133016
  • VK: 6, 9, 29
  • Viber: 12, 23
INTERNAL_SERVER_ERRORТехническая ошибка: временная недоступность сервисов, проблемы с сетью или внутренние сбои.
  • Telegram: 500
  • WhatsApp: 2, 131000, 131016
  • VK: 10
  • Viber:
OTHER_ERRORSПрочие ошибки: специфические ошибки канала, не вошедшие в указанные выше категории.
  • Telegram: 303 и другие
  • WhatsApp: 131042, 131045, 131047, 131049, 131051–131053, 131057, 132001, 132005, 132007, 132012, 132015, 132016, 132068, 132069, 133000, 133004–133006, 133008–133010, 133015, 135000
  • VK: 1–5, 7, 8, 11, 14, 16, 17, 20, 23, 24, 27, 200, 201
  • Viber: 303
примечание

Списки кодов основаны на официальной документации каналов и могут изменяться. errorChannelStatusDescription всегда содержит исходный код и описание ошибки.