Skip to content

Отправка каскадных рассылок

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

  1. Если есть email, то отправить в него.
  2. Иначе, если есть telegram_id, то попробовать отправить в него.
  3. Иначе, если есть mobile push, то отправить в него.
  4. Иначе отправить SMS.

Порядок каналов для отправки вы выбираете сами в настройках каскадной рассылки в личном кабинете.

Создав каскадную рассылку, вы получаете ее уникальный код, который затем используете в запросе к API для отправки сообщения.

Принцип отправки каскада практически идентичен отправке обычной транзакционной рассылки. Отличия следующие:

  1. Нельзя (пока) отправлять файлы через каскадную рассылку.
  2. Есть флаг отправки сообщений сразу на все каналы, а последовательно.
shell
POST https://api.rees46.ru/transact

Параметры

ПараметрОбязателен?Описание
shop_idДаAPI-ключ
shop_secretДаСекретный ключ API
codeДаУникальный код транзакционной рассылки
email*ДаEmail клиента
phone*ДаТелефон клиента
external_id*ДаВнешний ID клиента
loyalty_id*ДаИдентификатор ПЛ клиента
telegram_id*ДаTelegram ID клиента
variablesНетОбъект с переменными, которые подставляются в текст сообщения. Рекомендуем использовать плоский объект без вложенных объектов
testНетФлаг отправки тестового письма. Если указан в 1 или true, то письмо отправляется, но не получает уникальный код и для него не учитываются открытия, клики, баунсы и другие действия получателя
ccНетАдреса электронной почты для получения копии письма в виде массива
bccНетАдреса электронной почты для получения скрытой копии письма в виде массива
send_everywhereНетФлаг, что рассылку нужно отправить не на первый подходящий канал, а сразу на все каналы каскада. Значения: 1 или true

Идентификаторы

Параметры, отмеченные [*] - обязателен хотя бы один из них. Даже если вы отправляете рассылку на email, вы можете передать phone, если уверены, что у клиента есть и email и phone (часто phone есть у 100% клиентов, а email не у всех).

Запрос

Пример запроса:

shell
curl --header "Content-Type: application/json" \
  --request POST \
  --data-binary "@payload.json" \
  https://api.rees46.ru/transact
shell
curl --location --request POST 'https://api.rees46.ru/transact' \
--form 'shop_id="SHOP_ID"' \
--form 'shop_secret="SHOP_SECRET"' \
--form 'code="TRANSACTIONAL_MESSAGE_CODE"' \
--form 'email="EMAIL"' \
--form 'variables[KEY]="VALUE"'
--form 'variables[KEY_2]="VALUE_2"'

Пример JSON-тела:

json
{
    "shop_id": "...",
    "shop_secret": "...",
    "phone": "7XXXXXXXXX",
    "code": "password-restore",
    "variables": {
      "2fa_code": "...",
      "first_name": "...",
      "last_name": "..."
    }
}

Ответ

Пример ответа сервера:

json
{
  "success": true,
  "payload": {
    "code": "..."
  }
}

Расшифровка ответа:

ПараметрОписание
successЗапрос выполнен успешно или нет
payloadТело ответа
payload.codeУникальный код сообщения, по которому потом можно проверять статусы доставки и другие показатели

В случае ошибки ответ будет в формате:

json
{
  "success": false,
  "payload": {
    "message": "Shop not found"
  }
}