

Автоматизация презентаций маркетинговых отчетов: Deck to Video API (2026)
Для автоматизации презентаций маркетинговых отчетов запустите еженедельный cron в понедельник, который собирает метрики кампаний, запрашивает у LLM 8-слайдовое повествование и вызывает три эндпоинта 2Slides: create-pdf-slides для создания колоды с изображениями в формате 16:9, generate-narration в режиме multi для двухголосовой озвучки и download-slides-pages-voices для получения PNG и WAV файлов по страницам, которые ffmpeg объединяет в MP4. Колода из 8 страниц в 2K стоит 810 кредитов (около $2), озвучка добавляет 1,680 кредитов (около $4.20), итого озвученный еженедельный отчет обходится примерно в $6 на клиента. Создано для маркетинговых операций, инженеров роста и агентств.
Основные выводы
- Один запланированный процесс заменяет рутинные понедельничные задачи: экспорт метрик, колода из 8 слайдов, двухголосовая озвучка и MP4 1920×1080.
- Три эндпоинта 2Slides выполняют работу:
create-pdf-slides(10 + 100 кредитов за страницу при 2K),generate-narration(210 кредитов за страницу) иdownload-slides-pages-voices(бесплатно). - Озвученный 8-слайдовый отчет стоит 2,490 кредитов, примерно $5–$6.25 в зависимости от пакета кредитов; сама колода — 810 кредитов.
- Каждый эндпоинт записи ограничен 6 запросами в минуту на ключ, поэтому запуск на 50 клиентов должен быть очередью, а не параллельным.
- Fast PPT (
generate) не поддерживает озвучку; для видео начинайте сcreate-pdf-slidesилиcreate-like-this.
Для кого это
Руководители маркетинговых операций, которые каждую неделю собирают одинаковый отчет, инженеры роста с доступом к хранилищу метрик и агентства, которые обязаны еженедельно обновлять 20, 50 и более клиентов. Проблема одна: данные готовы к 6 утра, колода — к обеду, а половина заинтересованных лиц ее даже не открывает.
Не используйте этот рецепт, если заинтересованные лица должны редактировать слайды в PowerPoint после создания; конвейер с изображениями создает готовый PDF и изображения страниц, а не нативный PPTX. Для редактируемых еженедельных колод лучше подходит путь Fast PPT из Автоматизация еженедельных отчетов с Zapier и 2Slides.
Обзор рабочего процесса
| Шаг | Инструмент | Что происходит | Эндпоинт 2Slides / кредиты |
|---|---|---|---|
| 1. Триггер | Cron (GitHub Actions, Cloud Scheduler, cron на ВМ) | Запускается в понедельник в 06:00 по часовому поясу клиента | нет |
| 2. Сбор метрик | Google Ads, Meta, экспорт GA4 или SQL-запрос в хранилище | Один JSON-объект на клиента: расходы, план, конверсии, CPA, топ-каналы, топ-креативы | нет |
| 3. Написание повествования | Ваш выбранный LLM | Возвращает 8 озаглавленных разделов: ключевой результат, расходы vs план, топ-каналы, лучшие креативы, заметки по аудитории, тесты, риски, план на следующую неделю | нет |
| 4. Генерация колоды | 2Slides | Колода с изображениями 16:9 в 2K с вашим брендовым designStyle | POST /api/v1/slides/create-pdf-slides, 810 кредитов за 8 страниц |
| 5. Добавление озвучки | 2Slides | Два спикера поочередно озвучивают колоду | POST /api/v1/slides/generate-narration, 1,680 кредитов за 8 страниц |
| 6. Получение ассетов | 2Slides | ZIP с pages/page_01.png, voices/page_01.wav и transcript.txt | POST /api/v1/slides/download-slides-pages-voices, бесплатно |
| 7. Сборка и доставка | ffmpeg на вашем сервере или Workspace Export | H.264 MP4 отправляется в Slack, email или клиентский портал | ffmpeg: бесплатно; Workspace Generate Video: 20 кредитов за страницу |
Каждый вызов 2Slides использует заголовок Authorization: Bearer $SLIDES_API_KEY, а каждый асинхронный процесс опрашивается по GET /api/v1/jobs/{jobId}.
Шаг 1: Получите API-ключ и настройте планировщик
Создайте ключ на 2slides.com/api во вкладке API Keys. Новые аккаунты получают 500 бесплатных кредитов без подписки — этого достаточно, чтобы один раз пройти весь конвейер перед покупкой пакета. Храните ключ как SLIDES_API_KEY в секретном хранилище планировщика, никогда не в браузере или общем ноутбуке, и проверьте его через echo эндпоинт перед запуском.
curl -s https://2slides.com/api/v1/echo \
-H "Authorization: Bearer $SLIDES_API_KEY"
Для триггера достаточно workflow GitHub Actions с on: schedule: - cron: "0 6 * * 1" для нескольких клиентов. Для 50 и более клиентов используйте очередь и один воркер, который обрабатывает их последовательно, чтобы не превышать лимит 6 запросов в минуту с запасом для повторных попыток.
Шаг 2: Сбор метрик и генерация 8-слайдового повествования LLM
API 2Slides не знает, что должно быть в хорошем еженедельном отчете; эту часть делаете вы, и от нее зависит качество колоды. Получите данные прошлой недели из рекламных платформ или хранилища в одном плоском JSON-объекте на клиента, затем попросите LLM вернуть ровно восемь озаглавленных разделов:
- Ключевой результат: одно число, одно предложение ("CPA снизился на 18% при неизменных расходах").
- Расходы vs план: фактические, запланированные, отклонение, темп к месяцу.
- Топ-каналы: три канала с расходами, конверсиями, CPA и изменениями.
- Лучшие креативы: два-три объявления с лучшей конверсией и почему.
- Заметки по аудитории и гео: что изменилось.
- Текущие тесты: гипотеза, статус, дата чтения.
- Риски и препятствия: бюджетные ограничения, пробелы в трекинге, сезонность.
- План на следующую неделю: три пункта с ответственными.
Просите простые предложения с числами в тексте и не более 60 слов на раздел. create-pdf-slides воспринимает ваш текст как источник правды для копирайта и верстки, поэтому чистое повествование на 400–500 слов даст более компактную колоду, чем 3,000 слов с метриками.
// narrative.mjs: формируем вывод LLM перед отправкой в 2Slides
export function toUserInput(client, sections) {
const header = `Еженедельный отчет по платным медиа для ${client.name}, неделя ${client.week}. ` +
`Аудитория: ${client.stakeholders}. Тон: прямой, с акцентом на цифры.`;
const body = sections
.map((s, i) => `Слайд ${i + 1}: ${s.title}\n${s.body}`)
.join("\n\n");
return `${header}\n\n${body}`;
}Шаг 3: Автоматизация колоды отчета кампании с create-pdf-slides
Отправьте повествование в create-pdf-slides. Укажите page: 8, чтобы количество слайдов совпадало с разделами, aspectRatio: "16:9" для экранов и resolution: "2K", чтобы PNG были четкими при 1920×1080 без масштабирования. designStyle — это ваш бренд: цвета, стиль шрифта, правила верстки и запреты.
curl -s https://2slides.com/api/v1/slides/create-pdf-slides \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Еженедельный отчет по платным медиа для Northwind Outdoor, неделя 2026-09-01 по 2026-09-07. Аудитория: CMO и руководитель ecommerce. Тон: прямой, с акцентом на цифры.\n\nСлайд 1: Ключевой результат\nCPA упал на 18% до $31.40 при неизменных расходах $48,200; 1,535 покупок против 1,301 на прошлой неделе.\n\nСлайд 2: Расходы vs план\nПлан $50,000, потрачено $48,200 (-3.6%). Темп месяца 97% от плана.\n\nСлайд 3: Топ-каналы\nMeta $22,100 расходов, 812 покупок, $27.20 CPA (-22%). Google Search $18,400, 571 покупка, $32.20 CPA (-9%). YouTube $7,700, 152 покупки, $50.66 CPA (+4%).\n\nСлайд 4: Лучшие креативы\n\"Готов к тропам в 3 слоя\" видео UGC: 334 покупки, CTR 3.1%. \"Осенняя распродажа, бесплатный возврат\" статичный: 218 покупок.\n\nСлайд 5: Заметки по аудитории и гео\nDMAs Тихоокеанского Северо-Запада +31% по покупкам; женщины 25-34 теперь 41% конверсий Meta.\n\nСлайд 6: Текущие тесты\nШирокий vs интересы на Meta, день 9 из 14, чтение 12 сентября. Тест исключения бренда в поиске приостановлен для исправления трекинга.\n\nСлайд 7: Риски и препятствия\nGA4 и Meta расходятся по покупкам на 11%; CPA YouTube растет уже две недели подряд.\n\nСлайд 8: План на следующую неделю\nПеренос $3,000 с YouTube на Meta UGC (ответственный: Priya). Запуск двух новых вариантов UGC (ответственный: Sam). Закрыть пробел в тегах GA4 к среде (ответственный: Dev).",
"designStyle": "Бренд Northwind Outdoor: глубокий лесной зеленый #1F3D2B, песочный #E8DCC4, белый; жирные геометрические заголовки без засечек; один крупный номер на слайд; чистые карточки данных и простые столбчатые сравнения; щедрые поля; без стоковой фотографии, без градиентов",
"aspectRatio": "16:9",
"resolution": "2K",
"page": 8,
"contentDetail": "concise",
"imageModel": "gemini-3-pro-image",
"responseLanguage": "English",
"mode": "async"
}'Ответ: { "jobId": "..." }. Опрашивайте GET https://2slides.com/api/v1/jobs/{jobId} каждые 5–10 секунд, пока status не станет success (PDF доступен по downloadUrl) или failed. Ожидайте несколько минут на 8 страниц в 2K. Стоимость: 10 кредитов на планирование плюс 100 за страницу, итого 810 кредитов за колоду из 8 страниц.

create-pdf-slides через API.
Чтобы использовать существующий брендовый слайд вместо текстового описания, переключитесь на create-like-this с referenceImageUrl, указывающим на публичное изображение одного брендового слайда. Тело запроса, стоимость и ограничения идентичны.
Шаг 4: Два спикера с API озвучки видеопрезентации
Когда задача колоды вернет success, вызовите generate-narration с тем же jobId. Используйте mode: "multi" с двумя именованными спикерами и двумя из 30 доступных голосов; Kore и Puck достаточно различимы, чтобы слушатели понимали, кто говорит, без визуальных подсказок. includeIntro: true добавляет короткое вступление с названием клиента и недели.
curl -s https://2slides.com/api/v1/slides/generate-narration \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobId": "<deck jobId from step 3>",
"mode": "multi",
"speaker1Name": "Maya",
"speaker2Name": "Theo",
"speaker1Voice": "Kore",
"speaker2Voice": "Puck",
"contentMode": "standard",
"includeIntro": true
}'Эндпоинт возвращает 202, задача переходит в processing. Опрашивайте тот же jobId, пока не будет success. Озвучка стоит 210 кредитов за страницу (10 за сценарий, 200 за аудио), итого 1,680 кредитов за 8 слайдов. Руководство по длине сценария и темпу — в Slides narration and video best practices.
Для сравнения: сайт разработчиков Gamma (https://developers.gamma.app) описывает рецепт озвученного видео с цепочкой n8n, Synthesia, ElevenLabs и собственным Generate API, ключи требуют Pro-план. Путь 2Slides выше использует одного поставщика и один ключ для любого аккаунта, с ffmpeg на вашей стороне для сборки; он не создает аватар-презентера, как слой Synthesia. Раскрытие: 2Slides — наш продукт.
Шаг 5: Превращение еженедельного маркетингового отчета в видео с ffmpeg
Вызовите download-slides-pages-voices с тем же jobId. Вернется бесплатный ZIP с pages/page_01.png по page_08.png, voices/page_01.wav по page_08.wav и transcript.txt с текстом для субтитров или email-резюме.
curl -s https://2slides.com/api/v1/slides/download-slides-pages-voices \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "jobId": "<deck jobId>" }' \
-o recap.zip && unzip -q -o recap.zip -d recapЗатем объедините каждый PNG с соответствующим WAV и склейте. Эта однострочная команда создаст MP4 1920×1080 H.264, где каждый слайд показывается ровно столько, сколько длится озвучка:
cd recap && for i in $(seq -w 1 8); do ffmpeg -y -loop 1 -i pages/page_$i.png -i voices/page_$i.wav -c:v libx264 -tune stillimage -pix_fmt yuv420p -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -c:a aac -b:a 192k -shortest clip_$i.mp4; done && printf "file 'clip_%s.mp4'\n" $(seq -w 1 8) > list.txt && ffmpeg -y -f concat -safe 0 -i list.txt -c copy weekly-recap.mp4Конкатенация описана в ffmpeg formats reference. Для вертикального видео замените оба 1920:1080 на 1080:1920 и сгенерируйте колоду с aspectRatio: "9:16".
Нет сервера с ffmpeg? Откройте тот же job в 2Slides Workspace и используйте Export, затем Generate Video. Видео H.264 1920×1080 или 1080×1920 рендерится в браузере за 20 кредитов за страницу (160 за 8 слайдов). Это удобно для разовых задач; ffmpeg подходит для 50 клиентов каждую неделю.
Шаг 6: Node.js конвейер для автоматизации презентаций маркетинговых отчетов
Весь процесс в одном скрипте Node 20 без зависимостей, кроме fetch. Замените loadMetrics и writeNarrative на ваш запрос к хранилищу и вызов LLM.
// weekly-recap.mjs: Node 20+, запуск из cron в понедельник
import { writeFile } from "node:fs/promises";
import { execFile } from "node:child_process";
import { promisify } from "node:util";
import { toUserInput } from "./narrative.mjs";
import { loadMetrics, writeNarrative } from "./your-data-layer.mjs";
const BASE = "https://2slides.com";
const headers = {
Authorization: `Bearer ${process.env.SLIDES_API_KEY}`, // только сервер
"Content-Type": "application/json",
};
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
const run = promisify(execFile);
async function post(path, body) {
const res = await fetch(`${BASE}${path}`, { method: "POST", headers, body: JSON.stringify(body) });
if (!res.ok) throw new Error(`${path} -> ${res.status}: ${await res.text()}`);
return res.json();
}
async function waitForJob(jobId, everyMs = 8000) {
for (;;) {
const res = await fetch(`${BASE}/api/v1/jobs/${jobId}`, { headers });
const job = await res.json();
console.log(` job ${jobId}: ${job.status} ${job.progress ?? ""}`);
if (job.status === "success") return job;
if (job.status === "failed") throw new Error(`job ${jobId} failed: ${job.message ?? ""}`);
await sleep(everyMs); // опрос каждые 5–10 с; jobs/{id} допускает 10 запросов в минуту
}
}
export async function buildRecap(client) {
// 1) метрики -> 8-секционное повествование
const metrics = await loadMetrics(client);
const sections = await writeNarrative(client, metrics);
// 2) колода с изображениями: 10 + 100 кредитов/страница при 2K
const { jobId } = await post("/api/v1/slides/create-pdf-slides", {
userInput: toUserInput(client, sections),
designStyle: client.designStyle,
aspectRatio: "16:9",
resolution: "2K",
page: 8,
contentDetail: "concise",
responseLanguage: client.language ?? "English",
mode: "async",
});
const deck = await waitForJob(jobId);
console.log("deck PDF:", deck.downloadUrl);
// 3) двухголосая озвучка: 210 кредитов/страница
await post("/api/v1/slides/generate-narration", {
jobId,
mode: "multi",
speaker1Name: "Maya",
speaker2Name: "Theo",
speaker1Voice: "Kore",
speaker2Voice: "Puck",
contentMode: "standard",
includeIntro: true,
});
await waitForJob(jobId);
// 4) PNG + WAV по страницам (бесплатно) -> MP4 через ffmpeg
const zipRes = await fetch(`${BASE}/api/v1/slides/download-slides-pages-voices`, {
method: "POST", headers, body: JSON.stringify({ jobId }),
});
if (!zipRes.ok) throw new Error(`download failed: ${zipRes.status}`);
const zipPath = `out/${client.slug}.zip`;
await writeFile(zipPath, Buffer.from(await zipRes.arrayBuffer()));
await run("bash", ["./stitch.sh", zipPath, `out/${client.slug}-recap.mp4`]); // ffmpeg цикл из шага 5
return { jobId, pdf: deck.downloadUrl, video: `out/${client.slug}-recap.mp4` };
}
// Обработка клиентов по очереди: 3 POST-запроса на клиента, чтобы не превышать 6 запросов в минуту
const clients = JSON.parse(process.env.CLIENTS_JSON ?? "[]");
for (const client of clients) {
try {
const out = await buildRecap(client);
console.log(`done ${client.name}`, out);
} catch (err) {
console.error(`FAILED ${client.name}:`, err.message); // оповещение, не повторять бездумно
}
}Каждый клиент требует три запроса записи (колода, озвучка, скачивание) плюс опросы чтения с отдельным лимитом 10 запросов в минуту.
Выбор референсного стиля
Если описание бренда в designStyle не срабатывает, используйте референсное изображение. Галерея 2Slides содержит реальные колоды, которые можно просмотреть для вдохновения или передать в create-like-this как referenceImageUrl. Это референсные колоды, а не вывод API: слайды ниже из Adobe Creative Trends 2026 в Галерее показывают сдержанный, ориентированный на данные стиль, хорошо читающийся в еженедельном отчете.


referenceImageUrl, и create-like-this извлечет цвета, шрифты и верстку.

Для агентств храните URL одного референсного слайда на клиента рядом с конфигурацией метрик, и каждую неделю колода будет в фирменном стиле клиента.
Стоимость
За 8-слайдовый отчет: 810 кредитов за колоду в 2K, 1,680 за озвучку, бесплатно за ZIP и ffmpeg на вашем сервере. Пакеты кредитов стоят от $5 за 2,000 кредитов ($0.0025 за кредит) до $80 за 40,000 кредитов ($0.002 за кредит).
| Объем | Кредиты за колоду | Кредиты за озвучку | Всего кредитов | USD при $0.0025 | USD при $0.002 ($80 пакеты) |
|---|---|---|---|---|---|
| 1 озвученный отчет | 810 | 1,680 | 2,490 | $6.23 | $4.98 |
| 20 отчетов / месяц (5 кампаний еженедельно) | 16,200 | 33,600 | 49,800 | $124.50 | $99.60 |
| 500 отчетов / месяц (125 клиентов еженедельно) | 405,000 | 840,000 | 1,245,000 | н/д | $2,490 |
| 20 колод / месяц без озвучки | 16,200 | 0 | 16,200 | $40.50 | $32.40 |
Два замечания. Понижение до resolution: "1K" не экономит (100 кредитов за страницу одинаково для 512px, 1K и 2K; только 4K удваивает стоимость), поэтому оставайтесь на 2K. Рендер MP4 в Workspace вместо ffmpeg добавляет 160 кредитов ($0.32–$0.40) за отчет.
Fast PPT или image-designed slides для этого кейса?
| Требование | Fast PPT generate | create-pdf-slides / create-like-this |
|---|---|---|
| Редактирование колоды в PowerPoint заинтересованными лицами | Да, нативный PPTX из 1500+ шаблонов | Нет, вывод PDF и изображения страниц |
| Видео с озвучкой вместо чтения | Нет, озвучка недоступна | Да, generate-narration + MP4 |
| Стоимость 8 страниц | 80 кредитов (~$0.20) | 810 кредитов колода, 2,490 с озвучкой |
| Время выполнения | Около 30 секунд, синхронно по умолчанию | Несколько минут, асинхронно по умолчанию |
| Контроль бренда | Выбор themeId из GET /api/v1/themes/search | Свободный текст designStyle или referenceImageUrl |
Многие команды используют оба варианта: Fast PPT для аккаунт-менеджера, который делает пометки, и озвученное видео для клиента, который смотрит на телефоне. Как маркетинговые команды масштабно создают AI-презентации подробно рассказывает про редактируемую сторону.
Распространённые ошибки
- Запуск 50 клиентов параллельно. Каждый эндпоинт записи допускает 6 запросов в минуту на ключ. Используйте очередь и обрабатывайте последовательно или распределяйте по часу.
- Вызов
generate-narrationдля Fast PPT. Озвучка доступна только для задач изcreate-pdf-slidesилиcreate-like-this;generateотклоняется и не конвертируется. - Хранение API-ключа в браузере. Держите
SLIDES_API_KEYна сервере или в секретном хранилище планировщика. Если видео нужно клиенту, отдавайте уже сгенерированный MP4. - Использование
page: 0при необходимости ровно восьми слайдов.0означает автоопределение количества страниц. Укажитеpage: 8, чтобы видео имело одинаковую структуру и длину. - Передача кода языка.
responseLanguageпринимает название, например"Spanish", а не"es". Храните название в конфигурации клиента. - Отправка необработанного экспорта метрик. CSV с 3,000 строк в
userInputсоздаст запутанную колоду. Сначала сделайте сводку, передайте 400–500 слов повествования и оставьте CSV как вложение.
Часто задаваемые вопросы
Сколько стоит автоматизировать еженедельный маркетинговый отчет в виде озвученного видео?
Озвученный 8-слайдовый отчет стоит 2,490 кредитов, от $4.98 до $6.23 в зависимости от пакета кредитов. Это 810 кредитов за колоду в 2K (10 планирование + 100 за страницу) и 1,680 кредитов за двухголосую озвучку (210 за страницу). PNG и WAV для каждой страницы скачиваются бесплатно, а сборка ffmpeg на вашей стороне не стоит ничего.
Может ли API озвучки слайдов использовать два разных голоса в одной колоде?
Да. generate-narration с mode: "multi" принимает speaker1Name, speaker2Name, speaker1Voice и speaker2Voice, и поочередно озвучивает слайды двумя голосами. Доступно 30 голосов, включая Kore, Puck, Zephyr, Charon, Aoede и Leda. Для одного диктора используйте mode: "single" с speakerName и voice по той же цене 210 кредитов за страницу.
Какие эндпоинты нужны для конвейера озвученного видео?
Три, по порядку: POST /api/v1/slides/create-pdf-slides (или create-like-this с referenceImageUrl) для создания колоды, POST /api/v1/slides/generate-narration с jobId для добавления аудио и POST /api/v1/slides/download-slides-pages-voices для получения PNG и WAV. Между шагами опрашивайте GET /api/v1/jobs/{jobId} каждые 5–10 секунд. Fast PPT generate не входит в цепочку, так как не поддерживает озвучку.
Можно ли делать один и тот же еженедельный отчет на нескольких языках?
Да. Укажите responseLanguage в create-pdf-slides как название языка, например "Spanish" или "Japanese", и текст слайдов будет на этом языке; озвучка следует за содержанием. Поддерживается более 20 языков. Каждый язык — отдельная задача, поэтому клиент, желающий видео на английском и испанском, платит за два запуска по 2,490 кредитов.
Сколько времени занимает конвейер в понедельник на одного клиента?
Рассчитывайте несколько минут на клиента: 8-страничная колода в 2K рендерится несколько минут, озвучка добавляет еще, а сборка ffmpeg обычно занимает меньше минуты для 8 клипов. Опрос каждые 5–10 секунд и последовательная обработка клиентов соблюдают лимит 6 запросов в минуту. Запуск на 50 клиентов в 06:00 обычно завершается до первой утренней планерки.
Следующие шаги
- Получите API-ключ на 2slides.com/api. Бесплатные 500 кредитов покрывают один полный озвученный отчет, чтобы проверить конвейер перед покупкой пакета, затем автоматизируйте презентации маркетинговых отчетов для всех клиентов по расписанию.
- Ознакомьтесь с другими рецептами для команд в посте-хабе AI presentation API use cases by team.
- Версия для финансов с отчетами в конце месяца вместо рекламных метрик есть в Автоматизация финансовых отчетов с AI-озвучкой; для правил сценария и темпа читайте Slides narration and video best practices.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free