O que é e por que usar
Google Sheets é uma das ferramentas de planilha mais versáteis do mercado, usada por equipes de todos os tamanhos para organizar dados, rastrear tarefas, gerenciar orçamentos e muito mais. No entanto, a verdadeira potência aparece quando você automatiza a interação entre o Sheets e outros sistemas – e o n8n é a ferramenta certa para isso. Com o n8n, você pode criar fluxos que leem, escrevem e atualizam planilhas sem intervenção manual, integrando com CRMs, ERPs, plataformas de email, Slack, bancos de dados e centenas de outras APIs.
Por que combinar Google Sheets com n8n? Porque elimina tarefas repetitivas e propensas a erro. Por exemplo, ao invés de copiar manualmente dados de formulários para uma planilha e depois para outro sistema, você cria um workflow que faz tudo em segundos. Além disso, o n8n oferece gatilhos por webhook, por agendamento ou por mudanças em planilhas (via Google Drive API), permitindo automações em tempo real ou programadas.
Neste artigo, você aprenderá na prática um caso de uso real: monitorar uma planilha de pedidos e enviar confirmações por email, atualizar o status e notificar o time no Slack. Vou mostrar cada nó e configuração, desde a autenticação até a execução. Você sairá com um workflow funcional e pronto para adaptar ao seu cenário.

Pré-requisitos
- Uma conta no n8n (versão cloud ou self-hosted).
- Uma conta Google com acesso ao Google Sheets.
- Permissão para criar credenciais OAuth2 no Google Cloud Console (ou usar uma credencial já existente).
- Conhecimento básico de planilhas (cabeçalhos, linhas).
- Familiaridade com conceitos de nós e conexões no n8n – mas eu guiarei cada passo.
Exemplo Prático: Monitorar Pedidos e Disparar Confirmação Automática
Cenário concreto
Imagine que você gerencia um pequeno e-commerce e recebe pedidos por meio de um formulário Google Sheets. Cada novo pedido preenchido na planilha adiciona uma linha com as colunas: Data, Nome do Cliente, Email, Produto, Valor, Status (inicialmente vazio). Sua rotina atual: diariamente você abre a planilha, vê os novos pedidos, envia manualmente um email de confirmação, muda o status para “Confirmado” e avisa o time no Slack. Isso toma de 5 a 10 minutos por dia, mas a chance de esquecer um pedido ou digitar errado o email é real.
O que será automatizado
- O n8n verifica a planilha a cada 5 minutos em busca de novas linhas (onde Status está vazio).
- Para cada nova linha, envia um email de confirmação ao cliente usando o nó do Gmail (ou SMTP genérico).
- Atualiza a mesma planilha: coloca “Confirmado” na coluna Status e registra o horário da automação.
- Envia uma mensagem para um canal do Slack avisando a equipe sobre o novo pedido.
Resultado esperado
Após configurar o workflow, você simplesmente deixa o n8n rodando. Quando um novo pedido é inserido, em poucos minutos o cliente recebe um email, a planilha é atualizada e o time é notificado. Nenhuma ação manual necessária. Você ganha confiabilidade e tempo.
Configuração Passo a Passo
Vamos construir o workflow usando os seguintes nós: Schedule Trigger (ou Google Sheets Trigger com polling), Google Sheets – Get Rows, IF para filtrar linhas não processadas, Gmail (ou Email), Google Sheets – Update Row e Slack.
Passo 1: Criar as credenciais do Google no n8n
- No menu lateral do n8n, clique em Credentials e em Add credential.
- Escolha Google OAuth2 API e siga o assistente. Você precisará:
- Criar um projeto no Google Cloud Console.
- Ativar as APIs: Google Sheets API e Google Drive API (necessário para ler a planilha).
- Configurar a tela de consentimento OAuth2 (escolha “External” para testes).
- Criar credenciais OAuth2 do tipo Web application. No campo “Authorized redirect URIs”, coloque a URL do seu n8n seguida de
/rest/oauth2-credential/callback(ex:https://meun8n.exemplo.com/rest/oauth2-credential/callback). - Copiar Client ID e Client Secret para o n8n.
- Após salvar, o n8n abrirá uma janela de autorização do Google. Permita os escopos de Sheets e Drive.
Passo 2: Estruturar a planilha
Crie uma planilha chamada “Pedidos” com as colunas:
A: Data
B: Nome Cliente
C: Email
D: Produto
E: Valor
F: Status
G: Processado Em
Preencha algumas linhas de exemplo, deixando Status vazio nas que deseja simular novos pedidos.
Passo 3: Configurar o nó de trigger
- Adicione um nó Schedule Trigger (ou Google Sheets Trigger, que por polling também funciona). Para simplicidade, use Schedule Trigger com intervalo de 5 minutos.
- Configure: Rule = “Every 5 minutes”. Isso iniciará o workflow periodicamente.
Passo 4: Ler as linhas da planilha
- Adicione o nó Google Sheets → Get Rows.
- Conecte ao Schedule Trigger.
- No campo Document, selecione a planilha “Pedidos”.
- Em Sheet, escolha a aba (geralmente “Sheet1”).
- Em Range, deixe vazio para pegar todo o range com dados (ex: A:G).
- Marque a opção Options → Return All como true.
- Teste: clique em “Execute Node”. Veja se retorna todas as linhas.
Passo 5: Filtrar apenas linhas não processadas
- Adicione um nó IF.
- Na condição (Expression) use:
#se a coluna F (Status) estiver vazia {{ $json["Status"] == "" }} - Isso dividirá o fluxo: branch true = linhas novas, false = já processadas (ignoraremos).
Passo 6: Enviar email de confirmação
- Na branch true, adicione um nó Gmail → Send (ou Email genérico).
- Configure:
- To:
{{ $json["Email"] }} - Subject: “Confirmação do Pedido – {{ $json[“Produto”] }}”
- Body:
Olá {{ $json["Nome Cliente"] }}, Recebemos seu pedido do produto {{ $json["Produto"] }} no valor de R$ {{ $json["Valor"] }}. Em breve enviaremos o código de rastreio. Atenciosamente, Equipe de Vendas
- To:
- Certifique-se de ter autorizado o acesso ao Gmail nas credenciais Google (escopo de envio).
Passo 7: Atualizar a planilha com status e data
- Após enviar o email, adicione um nó Google Sheets → Update Row.
- No campo Options, marque Send as Object.
- Em Values, monte o objeto JSON:
{ "Data": "{{ $json['Data'] }}", "Nome Cliente": "{{ $json['Nome Cliente'] }}", "Email": "{{ $json['Email'] }}", "Produto": "{{ $json['Produto'] }}", "Valor": "{{ $json['Valor'] }}", "Status": "Confirmado", "Processado Em": "{{ $now.toISOString() }}" } - Configure Find by para usar alguma coluna única. Recomendo usar o número da linha (Row Number) que veio no nó Get Rows:
{{ $json["_row"] }}. No campo Row Number (em Update Row) coloque{{ $json["_row"] }}. - Teste novamente: ele deve atualizar a linha correta.
Passo 8: Notificar o Slack (opcional)
- Adicione um nó Slack → Send Message.
- Configure o canal (ex: #pedidos).
- Mensagem:
{"text": "Novo pedido: {{ $json['Nome Cliente'] }} - {{ $json['Produto'] }} - {{ $json['Valor'] }}"} - Conecte-o após o Update Row (ou em paralelo).
- Certifique-se de ter criado as credenciais do Slack (Webhook ou OAuth).
Fluxo completo final
Seu workflow deve parecer com:
Schedule Trigger (5 min) → Google Sheets Get Rows → IF (Status == "")
→ (true) → Gmail Send → Google Sheets Update Row → Slack Send
→ (false) → (fim)
Dicas e Variações
- Use o Google Sheets Trigger direct: Em vez de Schedule Trigger, use o nó Google Sheets Trigger (via Drive API). Ele dispara sempre que há alteração na planilha, eliminando polling desnecessário. A configuração é similar ao nó de update, mas precisa de uma watch request.
- Lide com múltiplas linhas novas: O nó Get Rows pode retornar vários registros. O IF processará um por vez, mas o workflow executa para cada item (modo “Run Once for All Items” ou “Batch”?). Para garantir que todos sejam processados, mantenha a opção “Run Once for All Items” desativada (padrão) – o n8n itera automaticamente. No entanto, evite sobrecarga: se houver muitas linhas, considere dividir em lotes.
- Validação antes de enviar email: Inclua um nó de Regex ou IF para verificar se o email é válido. Isso evita disparos para endereços errados.
- Logging: Adicione um nó Set para criar um log interno (ex: enviar para uma segunda planilha ou para um banco de dados).
- Segurança: Nunca compartilhe planilhas publicamente. Use sempre autenticação OAuth2 e limite o escopo apenas ao necessário.

Erros Comuns e Como Evitá-los
| Erro | Causa | Solução |
|---|---|---|
| “Row number not found” ao atualizar | O nó Get Rows não retorna o campo _row (ou row_number) |
Verifique se você está usando a versão mais recente do nó Google Sheets. Atualize o nó ou utilize uma coluna ID única (ex: número do pedido) como Find by. |
| Credenciais expiradas | Token OAuth2 venceu e não há refresh automático | No n8n, as credenciais Google têm renovação automática. Se persistir, crie as credenciais novamente. |
| Email não enviado | Conta Gmail bloqueou acesso de apps menos seguros | Use OAuth2 com escopo de envio. Ative a “API Gmail” no Google Cloud. Se usar SMTP, gere uma senha de app. |
| Loop infinito | O trigger de polling lê linhas já atualizadas e reenvia email | O nó IF (`Status == “”`) evita isso. Mas se a atualização falhar e o status continuar vazio, pode reprocessar. Use também uma coluna “Processado Em” para garantir. |
Próximos Passos
- Teste o workflow em um ambiente de desenvolvimento com dados fictícios. Execute manualmente o Schedule Trigger para verificar se cada nó funciona.
- Adapte o exemplo para seu cenário real: troque o envio de email por uma integração com seu CRM (HubSpot, Pipedrive), ou substitua a notificação Slack por um webhook.
- Adicione tratamento de erros: inclua um nó Error Trigger para ser notificado se o workflow falhar.
- Otimize a frequência: defina o Schedule para 2 minutos se o volume for alto, ou use gatilho real via webhook do Google Sheets.
- Documente seu workflow: no próprio n8n você pode adicionar notas; mantenha um comentário explicando a lógica para futuras manutenções.
Agora você tem uma base sólida para integrar Google Sheets com n8n. Coloque a mão na massa e transforme planilhas passivas em agentes ativos de automação.
Gostou do conteúdo? Inscreva-se para receber as novidades:


Comments are closed