O que é e por que usar
Gerar relatórios manuais para compartilhar no Slack é um dos maiores desperdícios de tempo em equipes de operações, vendas e marketing. O ritual de abrir planilhas, copiar números, formatar texto e colar no canal certo parece inofensivo, mas consome de 5 a 15 minutos por dia de profissionais qualificados. Quando multiplicado por uma equipe de 10 pessoas, o custo mensal ultrapassa R$ 5.000 em produtividade perdida. Além do custo financeiro, há o custo de oportunidade: dados ficam desatualizados, líderes tomam decisões com informações de ontem, e o moral da equipe cai com tarefas repetitivas.
O n8n resolve esse problema ao conectar diretamente a sua fonte de dados (Google Sheets, bancos SQL, APIs de CRM ou ERPs) ao Slack. Em vez de copiar e colar, você define um gatilho de tempo (schedule) ou um evento (como um novo registro em um banco). O n8n busca os dados, processa totalizadores e formata uma mensagem rica usando o Block Kit do Slack — aqueles cards com botões, campos e cores que tornam a leitura muito mais rápida que texto puro. O Block Kit permite criar desde mensagens simples com texto em markdown até layouts complexos com imagens, botões acionáveis e seções divididas.
Neste guia, você vai construir um relatório diário de vendas completamente automatizado. Usaremos dados de uma planilha do Google Sheets e um webhook do Slack. Ao final, você terá um workflow funcional que pode ser adaptado para métricas de suporte, financeiro ou engenharia. O mesmo padrão serve para: relatórios semanais de NPS, alertas de estoque baixo, resumos de tickets de suporte, atualizações de status de projetos e muito mais.

Pré-requisitos
Antes de começar, verifique se você tem acesso aos seguintes recursos:
- Uma instância do n8n rodando (self-hosted ou n8n.cloud).
- Conta no Slack com permissão para criar aplicativos (Apps) e instalar bots em um workspace.
- Uma planilha do Google Sheets com dados de vendas (exemplo: nome do lead, valor do contrato, data de fechamento).
- Conhecimento básico de JavaScript (para o nó de processamento) e JSON (para configurar o Block Kit).
- Conexão do n8n com o Google Sheets já configurada via OAuth2.
Dica técnica: Se você ainda não configurou OAuth2 no n8n para o Google Sheets, acesse Settings → Credentials → New → Google OAuth2 API. Siga as instruções para criar um projeto no Google Cloud Console, habilitar a API Google Sheets e gerar as chaves. Guarde o Client ID e Client Secret.
Exemplo Prático: Relatório Diário de Vendas no Slack
Cenário real
Imagine que você é analista de receita em uma empresa de SaaS. A equipe comercial atualiza uma planilha no Google Sheets sempre que uma venda é fechada. Todos os dias, às 9h da manhã, o time de vendas e os executivos precisam saber três métricas: quantidade de leads do dia anterior, valor total fechado e ticket médio.
Mas o cenário pode ser mais rico. Suponha que a planilha contenha colunas adicionais como “produto”, “região”, “vendedor”. Com um nó Code mais elaborado, você pode gerar quebras por produto ou por vendedor. Exemplo: “Produto A fechou R$ 20.000 (5 contratos), Produto B fechou R$ 15.000 (3 contratos)”. O Block Kit permite exibir isso como uma tabela visual ou múltiplas seções.
O que será automatizado
- Gatilho: Um cron semanal (seg a sex, 9h) no nó Schedule Trigger.
- Extração: Leitura das linhas mais recentes da planilha usando o nó Google Sheets.
- Processamento: Um nó Code (JavaScript) que calcula os indicadores.
- Entrega: Um nó Slack que monta um card Block Kit e envia no canal
#reportes-diarios.
Resultado esperado
Todos os dias úteis, exatamente às 9h, o canal receberá um card como este:
📊 Resumo de Vendas - 15/10/2023
*Total de Leads:* 12
*Valor Total:* R$ 48.500,00
*Ticket Médio:* R$ 4.041,67
Nenhuma ação manual é necessária. Se a planilha estiver vazia, o workflow pode ser configurado para enviar um alerta ou ignorar silenciosamente. Com uma condição no nó Code, você pode verificar se o array está vazio e usar um nó IF para decidir se envia o card ou não.
Variação: Relatório por período
Se você quiser o relatório apenas dos dados do dia anterior (para evitar duplicidade), adicione uma filtragem no nó Code: compare a data de fechamento com a data atual menos 1 dia. Use new Date() e item.json.data_fechamento (certifique-se de que esteja em formato ISO). Assim o relatório sempre reflete o último dia útil.

Configuração Passo a Passo
Passo 1: Configurar o bot do Slack
Para que o n8n possa postar no Slack, você precisa criar um App com as permissões corretas.
- Acesse api.slack.com/apps e clique em “Create New App”. Escolha “From scratch”.
- Defina um nome (ex: “n8n Reporter”) e selecione o workspace.
- No menu à esquerda, vá em “OAuth & Permissions”.
- Role para “Scopes” e adicione as permissões de Bot Token:
chat:writeechat:write.public(se for enviar em canais públicos sem ser membro). - Instale o App no workspace e copie o Bot User OAuth Token (começa com
xoxb-). - No n8n, crie uma nova credencial do tipo “Slack OAuth2” ou “Slack API” e cole o token.
Dica avançada: Para enviar mensagens como usuário (e não como bot), use o token de usuário (xoxp-) com escopos chat:write:user. Porém, o token de bot é mais seguro e recomendado para workflows automatizados.
Passo 2: Criar o Schedule Trigger
Arraste um nó Schedule Trigger para a tela do n8n.
- Trigger Schedule: Defina para “Every Week”.
- Hours: 9.
- Minutes: 0.
- Weekdays: Selecione Seg, Ter, Qua, Qui, Sex.
Isso gerará um cron equivalente a 0 9 * * 1-5.
Dica técnica: Para testar o agendamento sem esperar o próximo horário, você pode temporariamente mudar o Schedule Trigger para “Every Minute” ou “Every Hour” durante o desenvolvimento. Depois reverta para o cron final.
Passo 3: Extrair dados do Google Sheets
Adicione um nó Google Sheets conectado ao Schedule Trigger.
- Operation: Read.
- Document ID: Selecione a planilha correta ou cole o ID.
- Sheet Name: Nome da aba (ex: “Vendas”).
- Options – Range: Defina um intervalo que cubra todos os dados, ex:
A:C. - Options – Limit: Defina 100 para evitar sobrecarga. Caso precise de mais, ajuste conforme necessário.
- Options – Data Start Row: 2 (se a linha 1 for cabeçalho).
Teste a execução. A saída será um array de objetos JSON com os cabeçalhos da planilha como chaves. Se houver colunas com espaços ou acentos, os nomes das chaves podem conter caracteres especiais; trate isso no nó Code.
Dica avançada: Se sua planilha tiver muitas linhas (milhares), use o parâmetro “Limit” com valor alto e combine com “Offset” para paginação. O n8n não suporta paginação automática no nó Google Sheets, então você pode fazer um loop com um nó Loop Over Items ou usar uma função recursiva no nó Code para coletar todas as páginas. Consulte a documentação de “Pagination” no n8n.
Passo 4: Processar dados com um nó Code
Conecte um nó Code ao Google Sheets. Esta etapa agrega os valores e prepara o payload para o Slack.
No campo JavaScript, insira o código abaixo. Ele supõe que as colunas se chamam nome_lead, valor_contrato e data_fechamento. Ajuste os nomes conforme sua planilha.
// Código do nó Code (JavaScript)
const items = $input.all();
const totalLeads = items.length;
let totalValor = 0;
for (const item of items)
Gostou do conteúdo? Inscreva-se para receber as novidades:


Comments are closed