Управление черновиками выпусков через API
Черновик выпуска — это сохранённая заготовка письма, в которой хранится содержимое сообщения (параметр letter) и, возможно, параметры выпуска. Черновики используются как шаблоны для отправки выпусков: достаточно указать draft.id в issue.send, и содержимое возьмётся из черновика.
Черновики можно создать для всех каналов: Email, SMS, Web Push, VK, Telegram, Mobile Push и Max.
Доступные операции
| Вызов | Описание |
|---|---|
issue.draft.list | Список черновиков с фильтрацией и сортировкой |
issue.draft.get | Чтение одного черновика |
issue.draft.set | Создание или изменение черновика |
issue.draft.delete | Удаление одного или нескольких черновиков |
issue.draft.preview | Предпросмотр с персонализацией |
Список черновиков — issue.draft.list
Вызов issue.draft.list возвращает список черновиков с возможностью фильтрации и сортировки. Для фильтров и сортировки используются те же правила, что и в stat.uni.
{
"action": "issue.draft.list",
"filter": [{ "a": "issue_draft.channel", "op": "==", "v": "email" }],
"order": ["-issue_draft.update.date"],
"skip": 0,
"first": 50
}
Параметры
| Параметр | Описание |
|---|---|
filter | Обязательно (хотя бы один фильтр). Синтаксис как у stat.uni |
order | Сортировка. Синтаксис как у stat.uni |
skip | Пропустить N записей (по умолчанию 0) |
first | Количество записей (по умолчанию 50, максимум 50) |
Доступные поля для фильтрации и сортировки
| Поле | Описание |
|---|---|
issue_draft.id | id черновика |
issue_draft.name | Название |
issue_draft.channel | Канал: email, sms, viber, push, vk, tg, vknotify, pushapp, max |
issue_draft.create.date | Дата создания (Ys, null) |
issue_draft.update.date | Дата последнего изменения (Ys, null) |
issue_draft.alias | Альтернативный идентификатор |
issue_draft.template | Признак шаблона: 0 — обычный черновик, 1 — предустановленный шаблон с оформлением |
Ответ
{
"list": [
{
"id": 123,
"alias": "welcome-email",
"name": "Приветственное письмо",
"format": "html",
"template": 0,
"create.date": "2026-01-10 14:30:00",
"update.date": "2026-01-15 09:00:00",
"public_preview": "https://...",
"thumbnail": [{ "url": "https://...", "width": 800, "height": 600 }]
}
]
}
Если выбрана последняя часть списка, ответ содержит "last_page": 1.
Альтернативный способ получить список черновиков — использовать stat.uni для области draft.*.
Чтение черновика — issue.draft.get
Вызов issue.draft.get возвращает полные данные черновика: содержимое, настройки выпуска, переменные персонализации и превью.
{
"action": "issue.draft.get",
"id": 123
}
Вмест о числового id можно указать альтернативный идентификатор (alias).
Параметры
| Параметр | Описание |
|---|---|
id | id черновика или его alias |
novars | 1 — не возвращать список переменных персонализации |
Ответ
{
"obj": {
"id": 123,
"alias": "welcome-email",
"name": "Приветственное письмо",
"channel": "email",
"format": "html",
"create.date": "2026-01-10 14:30:00",
"update.date": "2026-01-15 09:00:00",
"public_preview": "https://...",
"template": 0,
"letter": {
"subject": "Добро пожаловать!",
"from.name": "Команда Sendsay",
"from.email": "test@test.com",
"message": {
"html": "<h1>Привет!</h1><p>Рады видеть вас.</p>"
}
},
"thumbnail": [{ "url": "https://...", "width": 800, "height": 600 }]
},
"variables": {
"email": {
"header": ["member.email"],
"html": ["member.datakey.base.firstName"]
}
}
}
Блок variables содержит список переменных персонализации, используемых в черновике, с разбивкой по каналам и частям сообщения. Отсутствует при novars: 1 или если у черновика нет letter.