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):

NomeEmailSessãoStatus
João Silvaming@example.com10/20 TaipeiConfirmado
Maria Souzahua@example.com10/27 TaichungAguardando 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çãoDescrição
Get Row(s)Lê linhas e permite definir filtros (por exemplo, Status = Aguardando confirmação)
Append RowAdiciona uma linha ao final
Update RowEncontra uma linha por uma coluna e a atualiza
Append or Update RowAtualiza se encontrar uma correspondência; caso contrário, adiciona uma linha (a opção mais usada)
Delete RowsExclui linhas
ClearLimpa a planilha
CreateCria 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