2Slides Logo
Automatize Apresentações de Relatórios de Marketing: Deck para Vídeo API (2026)
2Slides Team
19 min read

Automatize Apresentações de Relatórios de Marketing: Deck para Vídeo API (2026)

Para automatizar apresentações de relatórios de marketing, execute um cron na segunda-feira que puxe métricas de campanhas, peça a um LLM uma narrativa de 8 slides e chame três endpoints do 2Slides: create-pdf-slides para um deck de resumo em imagem no formato 16:9, generate-narration no modo multi para uma faixa com duas vozes, e download-slides-pages-voices para arquivos PNG e WAV por página que o ffmpeg junta em um MP4. Um deck de 8 páginas em 2K custa 810 créditos (cerca de $2), a narração adiciona 1.680 créditos (cerca de $4,20), então um resumo semanal narrado fica perto de $6 por cliente. Construído para operações de marketing, engenheiros de crescimento e agências.

Principais pontos

  • Um trabalho agendado substitui o ritual de segunda-feira: exportação de métricas, deck de resumo de 8 slides, narração com duas vozes e um MP4 1920×1080.
  • Três endpoints do 2Slides fazem o trabalho: create-pdf-slides (10 + 100 créditos por página em 2K), generate-narration (210 créditos por página) e download-slides-pages-voices (gratuito).
  • Um resumo narrado de 8 slides custa 2.490 créditos, cerca de $5 a $6,25 dependendo do pacote de créditos; só o deck custa 810 créditos.
  • Cada endpoint de escrita é limitado a 6 requisições por minuto por chave, então uma execução para 50 clientes deve ser enfileirada, não disparada em paralelo.
  • Fast PPT (generate) não pode ser narrado; para vídeo, comece por create-pdf-slides ou create-like-this.

Para quem é este conteúdo

Líderes de operações de marketing que recriam o mesmo deck de resumo toda segunda-feira, engenheiros de crescimento que já têm as métricas em um data warehouse, e agências que devem uma atualização semanal para 20, 50 ou mais clientes. A dor é a mesma: os números estão prontos às 6h, o deck está pronto até o almoço, e metade dos stakeholders nunca abre.

Não use esta receita se os stakeholders precisarem editar os slides no PowerPoint depois; o pipeline de design em imagem produz um PDF finalizado mais imagens das páginas, não um PPTX nativo. Para decks semanais editáveis, o caminho Fast PPT em Automatize relatórios semanais com Zapier e 2Slides é mais adequado.

O fluxo de trabalho em resumo

PassoFerramentaO que aconteceEndpoint 2Slides / créditos
1. GatilhoCron (GitHub Actions, Cloud Scheduler, cron em VM)Dispara segunda-feira às 06:00 no fuso horário do clientenenhum
2. Puxar métricasGoogle Ads, Meta, exportação GA4 ou consulta SQL no warehouseUm objeto JSON por cliente: gasto, plano, conversões, CPA, canais principais, criativos principaisnenhum
3. Escrever a narrativaSeu LLM preferidoRetorna 8 seções tituladas: resultado principal, gasto vs. plano, canais principais, criativos vencedores, notas de audiência, testes, riscos, plano da próxima semananenhum
4. Gerar o deck2SlidesDeck em imagem 16:9 em 2K com seu designStyle de marcaPOST /api/v1/slides/create-pdf-slides, 810 créditos para 8 páginas
5. Adicionar narração2SlidesDois locutores alternam no deckPOST /api/v1/slides/generate-narration, 1.680 créditos para 8 páginas
6. Buscar ativos2SlidesZIP com pages/page_01.png, voices/page_01.wav e transcript.txtPOST /api/v1/slides/download-slides-pages-voices, gratuito
7. Montar e entregarffmpeg no seu worker, ou Workspace ExportMP4 H.264 postado no Slack, email ou portal do clienteffmpeg: gratuito; Workspace Generate Video: 20 créditos por página

Cada chamada 2Slides usa o mesmo cabeçalho Authorization: Bearer $SLIDES_API_KEY, e cada trabalho assíncrono é consultado em GET /api/v1/jobs/{jobId}.

Passo 1: Obtenha uma chave API e configure o agendador

Crie uma chave em 2slides.com/api na aba API Keys. Contas novas recebem 500 créditos grátis sem assinatura, suficientes para rodar este pipeline uma vez completo antes de comprar um pacote. Armazene a chave como SLIDES_API_KEY no cofre de segredos do seu agendador, nunca em navegador ou notebook compartilhado, e confirme com o endpoint echo antes de agendar algo.

curl -s https://2slides.com/api/v1/echo \ -H "Authorization: Bearer $SLIDES_API_KEY"

Referência da API 2Slides com autenticação Bearer
Figura 1: A referência da API em 2slides.com/api lista todos os endpoints, o cabeçalho Bearer e os custos em créditos.

Para o gatilho, um workflow GitHub Actions com on: schedule: - cron: "0 6 * * 1" é suficiente para poucos clientes. Para 50 ou mais, coloque os clientes em uma fila e deixe um worker processar sequencialmente, mantendo você abaixo do limite de 6 requisições por minuto com espaço para tentativas.

Passo 2: Puxe as métricas e deixe um LLM escrever a narrativa de 8 slides

A API 2Slides não sabe o que um bom resumo semanal diz; essa parte é sua, e ela decide a qualidade do deck. Puxe os números da semana passada das suas plataformas de anúncios ou warehouse em um objeto JSON plano por cliente, então peça ao seu LLM para retornar exatamente oito seções tituladas:

  1. Resultado principal: um número, uma frase ("CPA caiu 18% semana a semana com gasto estável").
  2. Gasto vs. plano: real, planejado, variação, ritmo para o mês.
  3. Canais principais: três canais com gasto, conversões, CPA e a mudança.
  4. Criativos vencedores: os dois ou três anúncios que mais converteram e por quê.
  5. Notas de audiência e geográficas: o que mudou.
  6. Testes em andamento: hipótese, status, data de leitura.
  7. Riscos e bloqueios: limites de orçamento, lacunas de rastreamento, sazonalidade.
  8. Plano da próxima semana: três tópicos com responsáveis.

Peça frases simples com números embutidos e menos de 60 palavras por seção. create-pdf-slides trata seu texto como fonte da verdade para cópia e layout, então uma narrativa limpa de 400 a 500 palavras produz um deck mais enxuto que um despejo de 3.000 palavras de todas as métricas.

// narrative.mjs: formata a saída do LLM antes de chegar ao 2Slides export function toUserInput(client, sections) { const header = `Resumo semanal de mídia paga para ${client.name}, semana de ${client.week}. ` + `Audiência: ${client.stakeholders}. Tom: direto, números em primeiro lugar.`; const body = sections .map((s, i) => `Slide ${i + 1}: ${s.title}\n${s.body}`) .join("\n\n"); return `${header}\n\n${body}`; }

Passo 3: Automação do deck do relatório de campanha com create-pdf-slides

Envie a narrativa para create-pdf-slides. Defina page: 8 para que o número de slides corresponda às suas oito seções, aspectRatio: "16:9" para telas, e resolution: "2K" para que os PNGs fiquem nítidos em 1920×1080 sem upscaling. designStyle é onde sua marca vive: cores, estilo tipográfico, regras de layout e o que evitar.

curl -s https://2slides.com/api/v1/slides/create-pdf-slides \ -H "Authorization: Bearer $SLIDES_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "userInput": "Resumo semanal de mídia paga para Northwind Outdoor, semana de 2026-09-01 a 2026-09-07. Audiência: CMO e líder de ecommerce. Tom: direto, números em primeiro lugar.\n\nSlide 1: Resultado principal\nCPA caiu 18% para $31,40 com gasto estável de $48.200; 1.535 compras contra 1.301 na semana anterior.\n\nSlide 2: Gasto vs. plano\nPlanejado $50.000, gasto $48.200 (-3,6%). Ritmo do mês em 97% do plano.\n\nSlide 3: Canais principais\nMeta $22.100 gasto, 812 compras, $27,20 CPA (-22%). Google Search $18.400, 571 compras, $32,20 CPA (-9%). YouTube $7.700, 152 compras, $50,66 CPA (+4%).\n\nSlide 4: Criativos vencedores\nVídeo UGC \"Pronto para trilha em 3 camadas\": 334 compras, CTR 3,1%. Estático \"Promoção de outono, devoluções grátis\": 218 compras.\n\nSlide 5: Notas de audiência e geográficas\nDMAs do Noroeste Pacífico com aumento de 31% nas compras; mulheres de 25-34 anos agora são 41% das conversões no Meta.\n\nSlide 6: Testes em andamento\nAlvo amplo vs. interesses no Meta, dia 9 de 14, leitura em 12 de setembro. Teste de exclusão de marca na busca pausado para correção de rastreamento.\n\nSlide 7: Riscos e bloqueios\nContagem de compras GA4 e Meta divergem 11%; CPA do YouTube em alta por duas semanas seguidas.\n\nSlide 8: Plano da próxima semana\nTransferir $3.000 do YouTube para Meta UGC (responsável: Priya). Lançar duas novas variantes UGC (responsável: Sam). Fechar lacuna de marcação GA4 até quarta (responsável: Dev).", "designStyle": "Marca Northwind Outdoor: verde floresta profundo #1F3D2B, areia #E8DCC4, branco; títulos em sans-serif geométrica e negrito; um número grande por slide; cartões de dados limpos e comparações simples em barras; margens generosas; sem fotos de banco, sem gradientes", "aspectRatio": "16:9", "resolution": "2K", "page": 8, "contentDetail": "concise", "imageModel": "gemini-3-pro-image", "responseLanguage": "English", "mode": "async" }'

A resposta é { "jobId": "..." }. Consulte GET https://2slides.com/api/v1/jobs/{jobId} a cada 5 a 10 segundos até que status seja success (o PDF está em downloadUrl) ou failed. Espere alguns minutos para oito páginas 2K. Custo: 10 créditos de planejamento mais 100 por página, totalizando 810 créditos para o deck de 8 páginas.

Página de slides criada com Nano Banana, pipeline por trás do create-pdf-slides
Figura 2: O pipeline de design em imagem por trás dos slides Nano Banana é o que o create-pdf-slides expõe via API.

Para combinar com um slide de marca existente em vez de uma descrição textual, troque para create-like-this com referenceImageUrl apontando para uma imagem pública de um slide da marca. Corpo, custo e limites são idênticos.

Passo 4: Dois locutores com a API de apresentação em vídeo narrado

Quando o job do deck reportar success, chame generate-narration no mesmo jobId. Use mode: "multi" com dois locutores nomeados e duas das 30 vozes disponíveis; Kore e Puck são suficientemente distintas para que ouvintes acompanhem quem fala sem pista visual. includeIntro: true adiciona uma breve introdução nomeando o cliente e a semana.

curl -s https://2slides.com/api/v1/slides/generate-narration \ -H "Authorization: Bearer $SLIDES_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "jobId": "<jobId do deck do passo 3>", "mode": "multi", "speaker1Name": "Maya", "speaker2Name": "Theo", "speaker1Voice": "Kore", "speaker2Voice": "Puck", "contentMode": "standard", "includeIntro": true }'

O endpoint responde 202 e o job volta para processing. Consulte o mesmo jobId até retornar success novamente. A narração custa 210 créditos por página (10 para o script, 200 para o áudio), totalizando 1.680 créditos para oito slides. Para orientações sobre comprimento e ritmo do script, veja Slides narration and video best practices.

Uma comparação, pois perguntam: o site de desenvolvedores da Gamma (https://developers.gamma.app) documenta uma receita de vídeo narrado que encadeia n8n, Synthesia, ElevenLabs e sua própria API Generate, e suas chaves API exigem plano Pro. A rota 2Slides acima usa um único fornecedor e uma chave que funciona em qualquer conta, com ffmpeg do seu lado para montagem; não produz um apresentador avatar como a camada Synthesia. Divulgação: 2Slides é nosso produto.

Passo 5: Transforme o relatório semanal de marketing em vídeo com ffmpeg

Chame download-slides-pages-voices com o mesmo jobId. Ele retorna um ZIP gratuito contendo pages/page_01.png até page_08.png, voices/page_01.wav até page_08.wav, e transcript.txt com o script falado para legendas ou resumo por 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": "<jobId do deck>" }' \ -o recap.zip && unzip -q -o recap.zip -d recap

Depois, una cada PNG com seu WAV e concatene. Este comando gera um MP4 H.264 1920×1080 onde cada slide fica na tela exatamente pelo tempo da narração:

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

O concat demuxer no final está documentado na referência de formatos do ffmpeg. Para corte vertical, troque ambos os valores 1920:1080 para 1080:1920 e regenere o deck com aspectRatio: "9:16".

Sem worker com ffmpeg? Abra o mesmo job no 2Slides Workspace e use Exportar, depois Gerar Vídeo. Ele renderiza o MP4 H.264 em 1920×1080 ou 1080×1920 no navegador por 20 créditos por página (160 para um resumo de 8 slides). Isso serve para uso único; ffmpeg serve para 50 clientes toda segunda.

Passo 6: Pipeline Node.js para automatizar apresentações de relatórios de marketing

Tudo junto em um script Node 20 sem dependências além de fetch. Substitua loadMetrics e writeNarrative pela sua consulta ao warehouse e chamada ao LLM.

// weekly-recap.mjs: Node 20+, rodar no cron de segunda-feira 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}`, // só servidor "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} falhou: ${job.message ?? ""}`); await sleep(everyMs); // consulta a cada 5–10 s; jobs/{id} permite 10 req/min } } export async function buildRecap(client) { // 1) métricas -> narrativa de 8 seções const metrics = await loadMetrics(client); const sections = await writeNarrative(client, metrics); // 2) deck em imagem: 10 + 100 créditos/página em 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) narração com dois locutores: 210 créditos/página 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 por página (gratuito) -> MP4 via 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 falhou: ${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`]); // o loop ffmpeg do passo 5 return { jobId, pdf: deck.downloadUrl, video: `out/${client.slug}-recap.mp4` }; } // Processa clientes um a um: 3 POSTs por cliente mantém você abaixo de 6 req/min const clients = JSON.parse(process.env.CLIENTS_JSON ?? "[]"); for (const client of clients) { try { const out = await buildRecap(client); console.log(`feito ${client.name}`, out); } catch (err) { console.error(`FALHOU ${client.name}:`, err.message); // alerta, não tente repetir cegamente } }

Cada cliente consome três requisições de escrita (deck, narração, download) mais leituras de polling em uma cota separada de 10 requisições por minuto.

Escolhendo um estilo de referência

Se descrever sua marca em designStyle não funcionar, use uma imagem de referência. A Galeria 2Slides hospeda decks reais que você pode navegar para direção ou passar para create-like-this como referenceImageUrl. São decks de referência, não saída da API: os slides abaixo vêm de um deck Adobe Creative Trends 2026 na Galeria e mostram o estilo contido e focado em dados que funciona bem em resumos semanais.

Deck de referência Adobe Creative Trends 2026 da Galeria 2Slides, referência de estilo para decks de resumo de marketing
Figura 3: Slide de capa do deck Adobe Creative Trends 2026 na Galeria 2Slides.

Deck de referência Adobe Creative Trends 2026 da Galeria 2Slides, referência de estilo para decks de resumo de marketing
Figura 4: Slide interno do mesmo deck da Galeria. Passe um slide assim como referenceImageUrl e create-like-this extrai cores, tipografia e layout dele.

Galeria 2Slides de decks prontos para download
Figura 5: A Galeria 2Slides. Abra um deck e copie a URL da imagem do slide cujo visual você quer herdar.

Para agências, armazene uma URL de slide de referência por cliente junto à configuração de métricas, e todo deck semanal fica no sistema visual daquele cliente.

Quanto custa

Por resumo de 8 slides: 810 créditos para o deck 2K, 1.680 para narração, nada para o ZIP ou para o ffmpeg no seu worker. Pacotes de créditos vão de $5 por 2.000 créditos ($0,0025 cada) a $80 por 40.000 créditos ($0,002 cada).

VolumeCréditos do deckCréditos da narraçãoCréditos totaisUSD a $0,0025USD a $0,002 (pacotes $80)
1 resumo narrado8101.6802.490$6,23$4,98
20 resumos/mês (5 campanhas semanais)16.20033.60049.800$124,50$99,60
500 resumos/mês (125 clientes semanais)405.000840.0001.245.000n/a$2.490
20 decks/mês, sem narração16.200016.200$40,50$32,40

Duas observações. Reduzir para resolution: "1K" não economiza (100 créditos por página valem para 512px, 1K e 2K; só 4K dobra), então fique em 2K. Renderizar o MP4 no Workspace em vez de ffmpeg adiciona 160 créditos ($0,32 a $0,40) por resumo.

Fast PPT ou slides em imagem para este caso?

NecessidadeFast PPT generatecreate-pdf-slides / create-like-this
Stakeholders editam o deck no PowerPointSim, PPTX nativo de 1.500+ templatesNão, saída é PDF mais imagens das páginas
Vídeo para assistir com narraçãoNão, narração não disponívelSim, generate-narration e depois MP4
Custo para 8 páginas80 créditos (cerca de $0,20)810 créditos deck, 2.490 com narração
Tempo de respostaCerca de 30 segundos, sincronizado por padrãoAlguns minutos, assíncrono por padrão
Controle de marcaEscolha um themeId de GET /api/v1/themes/searchTexto livre em designStyle ou referenceImageUrl

Muitas equipes usam ambos: um deck Fast PPT para o gerente de conta anotar, e o vídeo narrado para o cliente assistir no celular. Como equipes de marketing geram decks de apresentação AI em escala cobre o lado editável em profundidade.

Armadilhas comuns

  • Disparar 50 clientes em paralelo. Cada endpoint de escrita permite 6 requisições por minuto por chave. Enfileire clientes e processe sequencialmente, ou distribua envios ao longo da hora.
  • Chamar generate-narration em um job Fast PPT. Narração só aceita jobs de create-pdf-slides ou create-like-this; um job generate é rejeitado e não pode ser convertido.
  • Colocar a chave API no dashboard do navegador. Mantenha SLIDES_API_KEY no servidor ou no cofre de segredos do agendador. Se uma página para o cliente precisar do vídeo, sirva o MP4 que você já gerou.
  • Usar page: 0 quando quer exatamente oito slides. 0 significa detectar o número de páginas automaticamente. Use page: 8 para que o vídeo semanal tenha sempre a mesma forma e duração.
  • Passar um código de idioma. responseLanguage recebe um nome como "Spanish", não "es". Armazene o nome na configuração de cada cliente.
  • Enviar a exportação bruta de métricas. Um CSV de 3.000 linhas colado em userInput gera um deck confuso. Resuma primeiro, entregue uma narrativa de 400 a 500 palavras e mantenha o CSV como anexo.

Perguntas Frequentes

Quanto custa automatizar um relatório semanal de marketing como vídeo narrado?

Um resumo narrado de 8 slides custa 2.490 créditos, entre $4,98 e $6,23 dependendo do pacote de créditos. Isso se divide em 810 créditos para o deck 2K em imagem (10 de planejamento mais 100 por página) e 1.680 créditos para narração com dois locutores (210 por página). O download dos PNG e WAV por página é gratuito, e a montagem com ffmpeg na sua máquina não adiciona custo.

Uma API de narração por voz AI pode usar duas vozes diferentes em um deck?

Sim. generate-narration com mode: "multi" recebe speaker1Name, speaker2Name, speaker1Voice e speaker2Voice, alternando os dois locutores pelos slides. São 30 vozes disponíveis, incluindo Kore, Puck, Zephyr, Charon, Aoede e Leda. Use mode: "single" com speakerName e voice quando um narrador for suficiente, pelo mesmo custo de 210 créditos por página.

Quais endpoints uma pipeline de apresentação em vídeo narrado precisa?

Três, na ordem: POST /api/v1/slides/create-pdf-slides (ou create-like-this com referenceImageUrl) para criar o deck, POST /api/v1/slides/generate-narration no jobId resultante para adicionar áudio, e POST /api/v1/slides/download-slides-pages-voices para baixar os pares PNG e WAV. Consulte GET /api/v1/jobs/{jobId} a cada 5 a 10 segundos entre etapas. O generate do Fast PPT não faz parte dessa cadeia porque não pode ser narrado.

Posso entregar o mesmo relatório semanal em vários idiomas?

Sim. Defina responseLanguage em create-pdf-slides para um nome de idioma como "Spanish" ou "Japanese" e o texto dos slides será escrito nesse idioma; a narração segue o conteúdo do slide. Mais de 20 idiomas são suportados. Cada idioma é um job de deck separado, então um cliente que quer vídeos em inglês e espanhol paga por duas execuções de 2.490 créditos.

Quanto tempo o pipeline de segunda-feira leva por cliente?

Conte alguns minutos por cliente: um deck 2K de 8 páginas leva alguns minutos para renderizar, a narração adiciona mais alguns, e a montagem com ffmpeg geralmente fica abaixo de um minuto para oito clipes. Consultas a cada 5 a 10 segundos e processamento sequencial respeitam o limite de 6 requisições por minuto, e uma execução para 50 clientes iniciada às 06:00 normalmente termina antes da primeira reunião.

Próximos passos

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free