Мультиканальные выпуски¶
Мультиканальный выпуск позволяет выпускать рассылку с учётом наличия у подписчика идентификаторов email и телефона в их различных сочетаниях.
Типичная задача - "Выпустить в данной группе письмо для тех, у кого указан email. Если email-а нет, но есть телефон, то тогда послать viber, а если нет, то тогда послать sms" (вы экономите sms, отправляя вместо него письмо и viber тем, кому это возможно). Другая задача - "Выпустить в данной группе по всем телефонам и email-ам" (вы оповещаете подписчиков максимально широким способом).
Мультиканальный выпуск происходит по одной группе (по одному и тому же списку при Экспресс-выпуске), но по разным каналам доставки в зависимости от указанного способа выпуска и наличия у получателя email и/или номер телефона.
При Экспресс-выпуске для указания наличия у получателя email, используйте колонку с названием member.email, а для sms - member.cellphone, для прочих типов - по коду типа (например, member.tg). Обе колонки должны присутствовать одновременно. Это отличается от привычного для обычного выпуска или импорта правила, что только в реестре может быть только одна такая колонка одновременно.
Используйте пустое значение в соответствующей ячейке, если у получателя нет адреса или телефона.
Выпустить мультивыпуск¶
Вызов очень похож на обычный выпуск рассылки, за исключением того, что на каждый канал доставки указывается свой текст письма/сообщения
Параметры оставленные без описания совпадают с одноимёнными из issue.send
{
"action" : "issue.send.multi"
,"name" : "название мультивыпуска" -- параметр необязателен
-- из-за особенностей учёта выходов Транзакционных писем personal данный параметр
-- для них будет работать не так как ожидается и, в целом, бесполезен
,"group" :
,"sendwhen":
,"group.exclude" :
,"campaign.id" :
,"later.time" : -- в отличие от обычного выпуска, мультивыпуски любой одной и той же группы могут быть отложены на одно и тоже время
,"delay.time" :
,"mca":
,"users.slice" :
,"users.list" :
,"users.url" :
,"users.url.remove" :
-- автоподбор для personal
,"email" : "адрес получателя"
-- если тип указанного адреса не подходит под какой-то из указанных в issue канал доставки,
-- то будут взяты все идентификаторы (головы), связанные с данным адресом и из них
-- выбран первый подходящий по типу и доступный для рассылки
-- если ничего подходящего нет, то данный канал доставки будет пропущен
-- точное указание соответствия для personal
,"email" : [ "адрес получателя" , "адрес получателя" , "адрес получателя" ... ]
-- адреса будут использованы по порядку по одному для каждого соответствующего канала из issue
-- если тип указанного адреса не подходит под свой канал доставки или не доступен для рассылки,
-- то данный канал доставки будет пропущен
,"only_unique" :
,"multiple" :
,"extra" :
"issue" : [ -- два или более элемента описывающие режим и текст сообщения для используемых каналов доставки
{ -- email
"mode" : "all" или "rest" -- режим выпуска.
-- all - по всем кто может получать данный канал
-- rest - по тем кто не попал в предыдущие каналы и могут получать данный
--
-- необязательно для первого элемента "issue" - для него всегда all
-- обязательно для второго и последующих
,"letter" : {
"draft.id"
--------------
,"subject" :
,"from.name" :
,"from.email" :
,"reply.name" :
,"reply.email" :
,"to.name" :
,"message" :
,"attaches" :
,"autotext" :
}
,"dkim.id" :
,"relink" :
,"relink.param" :
,"link.qsid":
,"tz_limit"
,"tz_observance"
}
,{ -- viber
"mode" : "all" или "rest"
,"letter" : {
"draft.id"
--------------
"button.url" :
,"button.text" :
,"message" :
,"attaches":
,"relink" :
,"relink.param" :
,"link.qsid":
,"tz_limit"
,"tz_observance"
}
,{ -- sms
"mode" : "all" или "rest"
,"letter" : {
"draft.id"
--------------
,"from.name"
,message : { }
}
,"tz_limit"
,"tz_observance"
}
]
}
ответ
{
<общие поля>
"id" : номер мульти-выпуска -- если номер выпуска null, то это означает, что при выпуске personal c указанием получателя в "email" ни одному каналу доставки
-- не удалось подобрать адрес получателя. Следовательно мультивыпуск не создан, так как не может быть выпущена ни одна рассылка.
-- причины по каждому каналу перечислены в "list"
,"list" : [ -- информация по каждому элементу "issue" в том же порядке как заданы в запросе
{
"channel" : "email|sms|viber" -- канал выпуска
,"track.id" : "номер трекера созданного выпуска для данного канала"
}
-- или
{
"channel" : "email|sms|viber" -- канал выпуска
,"errors" : [ ... ] -- возможно при выпуске personal
-- означает, что для данного канала выпуска не нашлось подходящего идентификатора получателя
-- или все найденные не доступны для рассылки или в режиме rest и без него нашли что выпускать
-- и, следовательно, для данного канала выпуск рассылки не был запущен вообще
}
]
}
Специфические для вызова ошибки
Общая фатальная ошибка - данный канал указан в issue повторно. N - индекс в issue
Ошибка в результате одного из каналов - канал с режимом rest сразу исключён, так как уже заранее ясно, что ему достанет 0 получателей.
Список мультивыпусков¶
ответ
{
<общие поля>
,"list" : [
{
"id" : идентификатор мультивыпуска
,"name" : "название мультивыпуска"
,"dt" : "дата мультивыпуска"
,"group" : "группа мультивыпуска"
}
...
]
}
Чтение мультивыпуска¶
ответ
{
<общие поля>
,"obj" : {
"id" : идентификатор мультивыпуска
,"name" : "название мультивыпуска"
,"dt" : "дата мультивыпуска"
,"group" : "группа мультивыпуска"
,"issue" : [
-- описание выпусков вышедших в рамках данного мультивыпуска
{
"id" : номер выпуска
,"dt" : "дата выпуска (Ys)"
,"channel" : "email|sms|viber" -- канал выпуска
,"members" : "число получателей"
},
........
]
}
}