Conteúdo
n8n com Google Sheets: tutorial para ler, adicionar e atualizar dados automaticamente
O Google Sheets é um dos "bancos de dados leves" mais comuns: listas de inscrições, pedidos, estoque e clientes. O n8n pode ler, gravar e atualizar planilhas automaticamente, além de iniciar fluxos quando novos dados chegam.
Preparação: autenticação
- n8n Cloud: basta fazer login no Google ao criar a credencial do Google Sheets.
- Auto-hospedado: primeiro, crie um cliente OAuth no Google Cloud e ative a Google Sheets API. Veja o passo a passo completo em Gerenciamento de credenciais.
Formato da planilha
O n8n considera a primeira linha como os nomes das colunas. Cada linha seguinte representa um registro (um item):
| Nome | Sessão | Status | |
|---|---|---|---|
| João Silva | ming@example.com | 10/20 Taipei | Confirmado |
| Maria Souza | hua@example.com | 10/27 Taichung | Aguardando confirmação |
Após a leitura, cada linha se transforma em:
{ "row_number": 2, "Nome": "João Silva", "Email": "ming@example.com", "Sessão": "10/20 Taipei", "Status": "Confirmado" }
Prefira nomes de coluna curtos e exclusivos. Evite usar células mescladas.
Operações comuns
No nó Google Sheets, escolha uma destas operações:
| Operação | Descrição |
|---|---|
| Get Row(s) | Lê linhas e permite definir filtros (por exemplo, Status = Aguardando confirmação) |
| Append Row | Adiciona uma linha ao final |
| Update Row | Encontra uma linha por uma coluna e a atualiza |
| Append or Update Row | Atualiza se encontrar uma correspondência; caso contrário, adiciona uma linha (a opção mais usada) |
| Delete Rows | Exclui linhas |
| Clear | Limpa a planilha |
| Create | Cria uma nova planilha ou guia |
Ao selecionar uma planilha e uma guia, você pode escolher na lista ou colar o URL da planilha.
Mapeamento de colunas
Ao adicionar ou atualizar dados, Mapping Column Mode oferece duas opções:
- Map Each Column Manually: preencha cada coluna com uma expressão, por exemplo,
{{ $json.name }}para "Nome". - Map Automatically: mapeia os dados automaticamente quando os nomes dos campos de entrada são iguais aos nomes das colunas da planilha.
Atualização: qual coluna usar para comparar
As operações Update / Append or Update exigem que você informe Column to match on, por exemplo, a coluna "Email". Escolha uma coluna com valores exclusivos.
Monitoramento de novos dados: Google Sheets Trigger
O Google Sheets Trigger verifica a planilha periodicamente e é acionado quando uma nova linha é adicionada ou uma linha é alterada. É útil em casos como "quando alguém adicionar um pedido à planilha, processe-o automaticamente".
Esse gatilho funciona por consulta periódica (por exemplo, verifica a cada minuto), não em tempo real.
Exemplo completo: automatizar inscrições em um evento
Requisito: a pessoa preenche um formulário de inscrição → os dados são gravados na planilha → um e-mail de confirmação é enviado → a pessoa administradora é notificada.
[Form Trigger] ─▶ [Google Sheets: Append or Update] ─▶ [Send Email: confirmação] ─▶ [Telegram: notificar administrador]
1. Form Trigger
Use o formulário integrado do n8n, sem precisar do Google Forms:
- Form Title:
Inscrição para palestra - Campos:
- Nome (Text, obrigatório)
- Email (Email, obrigatório)
- Sessão (Dropdown: 10/20 Taipei, 10/27 Taichung)
Após publicar, você receberá o URL do formulário, que poderá compartilhar diretamente.
2. Gravar na planilha
No nó Google Sheets, escolha a operação Append or Update Row:
- Column to match on:
Email - Nome:
{{ $json['Nome'] }} - Email:
{{ $json.Email }} - Sessão:
{{ $json['Sessão'] }} - Status:
Inscrito - Horário da inscrição:
{{ $now.toFormat('yyyy-MM-dd HH:mm') }}
Como a comparação é feita pelo Email, uma nova inscrição da mesma pessoa atualiza os dados existentes em vez de adicionar uma linha duplicada.
3. Enviar o e-mail de confirmação
Use o nó Send Email ou Gmail:
{{ $('Form Trigger').item.json['Nome'] }} Olá:
Obrigado por se inscrever na palestra da sessão "{{ $('Form Trigger').item.json['Sessão'] }}".
Recebemos sua inscrição e enviaremos um lembrete na véspera do evento.
Como o nó anterior é o Google Sheets, use $('Form Trigger') para acessar os dados originais do formulário.
4. Notificar a pessoa administradora
Conecte um nó Telegram ou Slack e envie "Nova inscrição: nome / sessão".
Avançado: enviar estatísticas de inscrições todos os dias
[Schedule daily 18:00] ─▶ [Google Sheets: Get Rows] ─▶ [Summarize: contar por sessão] ─▶ [Send Email]
Configure o nó Summarize: em Fields to Split By, escolha "Sessão"; em Aggregation, escolha Count. Assim, você obtém o número de inscrições por sessão.
Perguntas frequentes
O processo fica lento ou falha quando há muitos dados
A Google Sheets API tem limites de taxa. Ao gravar muitos dados:
- Sempre que possível, grave várias linhas de uma só vez, em vez de fazer uma chamada para cada linha.
- Use Loop Over Items para processar em lotes e adicione Wait entre eles.
Quando houver dezenas de milhares de registros, considere usar um banco de dados de verdade (PostgreSQL ou MySQL) ou o Data Tables integrado ao n8n (disponível dependendo da versão).
Os números lidos são convertidos em texto
O formato das células da planilha afeta os dados lidos. Use Number() antes de comparar ou calcular.
Não consigo encontrar uma coluna
Confirme se a primeira linha contém os nomes das colunas e se não há espaços extras antes ou depois dos nomes. Depois de alterar um nome de coluna, recarregue as colunas no nó.
Atualizado 12 de outubro de 2026