Apresentação e documentação completa do workflow n8n "Data…
INEMA
ecutivo em até 6 bullets e depois uma análise detalhada estruturada por seções. Responda em português claro, com listas e subtítulos, sem inventar dados.
Mensagem do usuário (exemplo)
Dados: - rows: {{ $json.rows }} - summary: {{ $json.summary }} - totalKPIs: {{ $json.totalKPIs }}
Contexto: - Meta de CPA alvo: R$ 35,00 - Meta de ROI: 3.0 no mês Gere um relatório semanal estruturado.
10) Google Docs⌗
- Create: título “Relatório de Campanha – {{ \$json.periodLabel }}”
- Append: insira o texto gerado pela IA. Se quiser formatação, use Append com segmentação em parágrafos e headings.
11) Envio por e-mail⌗
Gmail node
- To: stakeholders
- Subject: Relatório de Campanhas – {{ \$json.periodLabel }}
- Body: link do Google Doc + principais destaques.
- Attachments: opcional, exporte o Doc em PDF antes (Google Docs → Export) e anexe.
12) Erros e boas práticas⌗
- Error Trigger global → envia alerta no Slack/Telegram com stack do erro.
- IF para checar se Facebook retornou empty; se sim, siga apenas com Sheets e sinalize no relatório.
- Rate limit: em contas grandes, use paginação e agregue resultados.
- Logs: salve JSON consolidado no Drive/S3 para auditoria.
- Validação: se algum KPI for infinito/NaN, converta para 0 antes de mandar à IA.
13) Teste rápido⌗
- Rode por uma janela de datas pequena (ex.: últimos 3 dias)
- Confira no nó KPIs se números batem com o Ads Manager e com a planilha
- Gere o Doc e valide texto, métricas e recomendações
- Ajuste prompt e thresholds de anomalia conforme o negócio
14) Variações por indústria⌗
- E-commerce: priorize CPR, ROAS, ticket médio e LTV.
- SaaS: priorize CAC por estágio, trials→paid e churn.
- Serviços: CPL por canal, taxa de agendamento→comparecimento→fechamento.
- Mídia/assinaturas: CTR, sign-ups, paywall conversion, ARPU.
15) Hacks⌗
- Dois relatórios com um fluxo: adicione dois nós OpenAI com prompts distintos (executivo e tático) e junte em um único Doc.
- Benchmarks: guarde metas por campanha no Sheets e injete no prompt para comparações automáticas.
- Priorização de ações: peça à IA para devolver uma tabela breve Ação | Impacto | Esforço | Prioridade.
- A/B guidance: inclua no prompt uma checagem de criativos com CTR abaixo do p25 e CPC acima do p75.
- Auto-reparo: se faltar campaign_id no Sheets, mapeie por campaign_name com uma tabela de equivalências.
Tópicos com exemplos e respostas⌗
Entradas necessárias Exemplo: Facebook token com ads_read, ID da conta 123456, planilha com campaign_id e datas, credenciais Google configuradas. Resposta: sim, sem isso o fluxo não acessa os dados.
Como calcular CPC, CPL, CPR, CTR Exemplo: spend=1000, clicks=500, leads=50, purchases=20, impressions=50.000 Resposta: CPC=2,00; CPL=20,00; CPR=50,00; CTR=1,0%
Como detectar anomalias simples Exemplo: CTR da campanha X caiu 60% vs média das 4 semanas. Resposta: marque como outlier e recomende revisar criativos/segmentação.
Prompt mínimo para IA Exemplo no item 9. Resposta: mantenha temperatura baixa e forneça metas do negócio.
E se não uso Facebook? Exemplo: Google Ads, TikTok Ads. Resposta: replique o nó HTTP com as APIs respectivas e normalize métricas para o mesmo esquema.
Planilha modelo Exemplo de colunas em “Lead Campaign Pipeline”. Resposta: mantenha campaign_id e date; resto é flexível.
Entrega do relatório Exemplo: criar Doc, anexar PDF, enviar por Gmail. Resposta: inclua o link e 5 bullets no corpo do e-mail.
Escalonar para vários clientes Exemplo: múltiplas credenciais + parâmetro client_id no início do fluxo. Resposta: rode em paralelo por cliente e gere um Doc por cliente.
Se a IA errar número Exemplo: divergência de R\$ 0,01 a R\$ 0,05. Resposta: gere números no Function e peça à IA só texto e recomendações.
Se faltar campaign_id no Sheets Exemplo: apenas campaign_name. Resposta: crie tabela de mapeamento para id; como fallback, mescle por nome.
Pronto. Se quiser, te envio um esqueleto JSON do fluxo para importar no n8n já com esses nós e expressões.
para calcular e consolidar cada linha e também produzir um objeto agregado por campanha e geral.
Fórmulas
- CPC = spend / clicks
- CPL = spend / leads
- CPR = spend / purchases
- CTR% = (clicks / impressions) * 100
- Conversão funil 1→2 = leads_stage_2 / leads_stage_1
- Conversão final = leads_final / leads_stage_1
Exemplo de código (Function: KPIs)
```function safeDiv(a,b){ return b>0 ? a/b : 0; }
const grouped = {}; const out = items.map(i => { const r = i.json;
const cpc = safeDiv(r.spend, r.clicks); const cpl = safeDiv(r.spend, r.leads); const cpr = safeDiv(r.spend, r.purchases); // Sheets campos: const s1 = Number(r.leads_stage_1 || 0); const s2 = Number(r.leads_stage_2 || 0); const sf = Number(r.leads_final || 0); const conv12 = safeDiv(s2, s1); const convFinal = safeDiv(sf, s1);
const row = { date: r.date, campaign_id: r.campaign_id, campaign_name: r.campaign_name, impressions: Number(r.impressions || 0), clicks: Number(r.clicks || 0), spend: Number(r.spend || 0), leads: Number(r.leads || 0), purchases: Number(r.purchases || 0), ctr: Number(r.ctr || 0), budget_allocated: Number(r.budget_allocated || 0), leads_stage_1: s1, leads_stage_2: s2, leads_final: sf, kpi: { cpc, cpl, cpr, conv12, convFinal } };
const key = r.campaign_id || r.campaign_name || 'unknown'; if(!grouped[key]){ grouped[key] = { campaign_id: r.campaign_id, campaign_name: r.campaign_name, impressions:0, clicks:0, spend:0, leads:0, purchases:0, s1:0, s2:0, sf:0 }; } grouped[key].impressions += row.impressions; grouped[key].clicks += row.clicks; grouped[key].spend += row.spend; grouped[key].leads += row.leads; grouped[key].purchases += row.purchases; grouped[key].s1 += s1; grouped[key].s2 += s2; grouped[key].sf += sf;
return { json: row }; });
// cria resumo por campanha e geral const summary = Object.values(grouped).map(g => ({ campaign_id: g.campaign_id, campaign_name: g.campaign_name, impressions: g.impressions, clicks: g.clicks, spend: g.spend, leads: g.leads, purchases: g.purchases, ctr: safeDiv(g.clicks, g.impressions) * 100, cpc: safeDiv(g.spend, g.clicks), cpl: safeDiv(g.spend, g.leads), cpr: safeDiv(g.spend, g.purchases), conv12: safeDiv(g.s2, g.s1), convFinal: safeDiv(g.sf, g.s1) }));
const total = summary.reduce((t,g)=>({ impressions: t.impressions + g.impressions, clicks: t.clicks + g.clicks, spend: t.spend + g.spend, leads: t.leads + g.leads, purchases: t.purchases + g.purchases }), {impressions:0,clicks:0,spend:0,leads:0,purchases:0});
const totalKPIs = { ctr: safeDiv(total.clicks, total.impressions) * 100, cpc: safeDiv(total.spend, total.clicks), cpl: safeDiv(total.spend, total.leads), cpr: safeDiv(total.spend, total.purchases) };
return [ { json: { rows: items.map(i=>i.json) } }, // saída 1: linhas detalhadas { json: { summary } }, // saída 2: resumo por campanha { json: { total: total, totalKPIs } } // saída 3: totais gerais ];```
Configure este Function como Multiple Outputs = 3 para usar nos próximos nós.
9) Análise com IA (OpenAI Chat)⌗
Entrada: agregue rows, summary e totalKPIs em um único JSON e passe como mensagem do usuário. Modelo: o3 (ou equivalente disponível no seu n8n). Temperatura: 0.2 a 0.4. Máx. tokens: suficiente para gerar 800–1200 palavras.
Prompt de sistema sugerido
Você é um analista de performance de mídia. Receberá dados consolidados de campanhas (linhas diárias, resumo por campanha e totais). Tarefas: 1) Calcule e confira KPIs: CPC, CPL, CPR, CTR, conversões de funil (1→2 e final), variações semanais/mensais quando disponíveis. 2) Destaque top 3 campanhas e bottom 3 por ROAS aproximado ou custo por compra, justificando com números. 3) Detecte anomalias (picos/quedas atípicas) e possíveis causas. 4) Recomende ações objetivas e priorizadas (ex.: aumentar budget em X%, pausar criativo Y, testar segmentação Z). 5) Gere um sumário ex
Aqui vai um passo a passo direto para implementar o Data Integration and Transformation Hub no n8n, com exemplos práticos, fórmulas e prompt prontos.
Visão geral do fluxo⌗
- Disparador de agenda
- Coleta de dados do Facebook Ads
- Coleta de dados do Google Sheets (pipeline de leads)
- Normalização e mesclagem por campanha e data
- Cálculo de KPIs
- Análise com IA e geração do relatório
- Criação do Google Doc
- Envio por e-mail e logs
- Erros, testes e variações
1) Pré-requisitos e conexões⌗
- Facebook Ads: um token com acesso à conta de anúncios e permissões ads_read.
- Google Sheets/Docs/Gmail: credenciais OAuth no n8n com escopos para leitura de planilhas, criação/edição de Docs e envio por Gmail.
- n8n: versão recente; credenciais configuradas para Facebook (HTTP) e Google (nós nativos).
- Identificador comum: garanta que campanha no Sheets tenha campaign_id igual ao do Facebook Ads, ou mapeie nomes de campanha consistentemente.
Exemplo de planilha Lead Campaign Pipeline (aba: Lead Campaign Pipeline) A: date (YYYY-MM-DD) B: campaign_id C: campaign_name D: budget_allocated E: leads_stage_1 F: leads_stage_2 G: leads_final H: notes
2) Estrutura dos nós no n8n⌗
- Cron → dispara mensal e/ou semanal
- Google Sheets (Read) → lê a aba Lead Campaign Pipeline
- HTTP Request → Facebook Graph API insights
- Function (Normalize Actions) → extrai leads/purchases dos arrays do Facebook
- Merge (By key) → junta Sheets e Facebook por campaign_id + date
- Function (KPIs) → calcula CPC, CPL, CPR, CTR, taxas de funil
- OpenAI Chat (Análise IA) → gera o texto do relatório
- Google Docs (Create) → cria “Campaign Report for {Month}”
- Google Docs (Append) → insere o conteúdo
- Gmail (Send) → envia o relatório
- Optional: Slack/Telegram notify, Google Drive (salvar JSON), IF + Error Trigger
3) Cron⌗
- Mensal: RRULE FREQ=MONTHLY;BYHOUR=8;BYMINUTE=0
- Semanal: FREQ=WEEKLY;BYDAY=MO;BYHOUR=8;BYMINUTE=0
4) Google Sheets (Read)⌗
- Operation: Read
- Range: Lead Campaign Pipeline!A\:H
- Return All: true
- Dica: ative Value Render Mode = UNFORMATTED_VALUE para evitar strings em números.
5) Facebook Ads via HTTP Request⌗
Método: GET URL base: https://graph.facebook.com/v18.0/act_{AD_ACCOUNT_ID}/insights Query params típicos:
- fields=campaign_id,campaign_name,date_start,date_stop,impressions,clicks,spend,actions,action_values,inline_link_clicks,reach,ctr
- time_increment=1
- time_range={"since":"{{ \$json.startDate }}","until":"{{ \$json.endDate }}"}
- level=campaign
Observações
- actions é um array com objetos type/value. Ex.: type=lead, type=offsite_conversion.purchase.
- Para período mensal, use o primeiro ao último dia do mês anterior. Para semanal, a última semana.
6) Normalização das ações do Facebook⌗
Use um Function node para transformar actions em colunas simples.
Exemplo de código (Function: Normalize Actions)
```return items.map(item => { const r = item.json; const actions = Array.isArray(r.actions) ? r.actions : []; const getVal = (t) => { const f = actions.find(a => a.action_type === t || a.type === t); return f ? Number(f.value || f.action_value || 0) : 0; }; const leads = getVal('lead'); const purchases = getVal('offsite_conversion.purchase') || getVal('purchase'); const clicks = Number(r.clicks || r.inline_link_clicks || 0); const spend = Number(r.spend || 0); const impressions = Number(r.impressions || 0); const ctr = impressions > 0 ? (clicks / impressions) * 100 : 0;
return { json: { date: r.date_start, campaign_id: r.campaign_id, campaign_name: r.campaign_name, impressions, clicks, spend, ctr, leads, purchases } }; });```
7) Mesclagem Sheets + Facebook⌗
Use um Merge node:
- Mode: Merge by fields
- Field 1: campaign_id
- Field 2: date
Se o Sheets não tem date diário, faça o alinhamento por campanha e agregue por mês/semana antes de mesclar.
8) KPIs e taxas de funil⌗
Function node (KPIs) para
Resumo
O Data Integration and Transformation Hub é um fluxo de trabalho pronto para uso que integra várias fontes de dados do negócio (como campanhas no Facebook/Instagram Ads, planilhas no Google Sheets ou Airtable e CRM de leads), unifica essas informações e as envia para uma IA (modelo o3) para análise e geração de relatórios.
Ele permite criar relatórios semanais ou mensais com:
- Principais métricas (CPC, CPL, CTR, conversão de funil, custo por compra)
- Análises de desempenho das campanhas
- Detecção de pontos fracos e sugestões de otimização (ex.: aumentar orçamento de retargeting, revisar campanhas com baixa performance)
Vantagens:
- Automatiza a coleta e unificação de dados de múltiplas plataformas
- Elimina erros manuais em cálculos
- Gera insights rápidos e acionáveis para melhorar ROI
- Funciona como um “assistente de IA” que conhece profundamente os dados do negócio e sugere ações estratégicas personalizadas
Hub de Integração e Transformação de Dados
Gatilho de Agendamento Mensal: inicia automaticamente o fluxo de trabalho em um intervalo mensal.
Coleta de Dados de Anúncios do Facebook: chama a API Facebook Graph para obter insights diários de campanhas (gastos, impressões, cliques, leads, compras).
Coleta de Dados do Funil de Leads: lê uma planilha do Google Sheets chamada “Lead Campaign Pipeline” com alocações de orçamento, métricas por estágio do funil e anotações manuais.
Agregação e Mesclagem de Dados: agrega as linhas da planilha em um único array JSON dentro de lead e mescla com o fluxo de dados do Facebook, produzindo um conjunto de dados unificado.
Análise e Geração de Relatório com IA: envia os dados combinados para um “Agente de IA” do LangChain (usando o modelo o3) com um prompt de sistema personalizado para calcular KPIs (CPC, CPL, CPR), CTR, taxas de conversão do funil, detecção de anomalias e recomendações de otimização — depois formata um resumo semanal claro e estruturado.
Criação e Preenchimento Automático de Documento Google: cria um Google Doc intitulado “Relatório de Campanha para {Mês}” e insere nele o conteúdo gerado pela IA, pronto para revisão pelas partes interessadas.
Caso de Negócio / Uso As equipes modernas de marketing gastam horas toda semana coletando manualmente métricas de anúncios, reconciliando-as com planilhas internas de acompanhamento de leads e criando resumos de desempenho. Este “Hub de Integração e Transformação de Dados” agiliza todo o processo:
Relatórios Automatizados
- Elimina exportações manuais de dados do Facebook Ads e planilhas internas.
- Garante consistência e elimina erros humanos nos cálculos de KPI.
Insights Acionáveis Rápidos
- Análise com IA destaca campanhas com desempenho acima ou abaixo da média, identifica anomalias e recomenda ajustes de orçamento em segundos.
- Geração instantânea de Google Doc acelera revisões e aprovações.
Escalável e Repetível
- Uma vez configurado, o fluxo se adapta para vários clientes ou unidades de negócios com configuração mínima.
- Libera analistas para focarem na estratégia em vez de manipular dados.
Pitch Ideal: vender esta integração gerenciada para agências de marketing digital ou equipes internas de marketing como um módulo de “Relatórios de Desempenho como Serviço” — com configuração, prompts de modelo e monitoramento prontos — permitindo que eles integrem novos clientes ou campanhas em dias, em vez de semanas, garantindo insights semanais sem esforço.
Indústrias que Mais se Beneficiam
- Marketing Digital e Agências de Anúncios: automatizam entregas de relatórios e dashboards de KPIs.
- Marcas de E-Commerce e Varejo: alinham gastos com anúncios aos funis de leads e vendas em várias plataformas.
- Empresas de SaaS e Tecnologia: relatórios regulares sobre cadastros de teste, demonstrações e conversões pagas.
- Empresas de Serviços Profissionais (Consultoria, Finanças): combinam alcance de marketing com dados do funil de leads para relatórios executivos.
- Mídia e Publicações: correlacionam compras de anúncios com assinaturas ou métricas de leads baseadas em conteúdo.
Cada um desses setores depende de relatórios de desempenho precisos e oportunos — tornando essa solução pronta para uso um argumento convincente para qualquer organização que queira escalar sua análise de marketing sem aumentar a equipe.
Recursos Data Integ. & Trans. Hub.json
m27 - Data Integration and Transformation Hub
1