Automação

Como automatizar o Google Sheets

Para automatizar o Google Sheets, abra Extensões > Apps Script na própria planilha e escreva funções em JavaScript que rodam com gatilhos: o onEdit reage a cada edição e o gatilho por tempo roda em horários definidos, por exemplo para mandar um e-mail toda manhã. Para ligar a planilha a outros sistemas, como CRM ou WhatsApp, uma ferramenta como o n8n costuma ser mais fácil de manter.

Atualizado em · Por Luis Henrique Cuba

Apps Script ou ferramenta de automação?

O Apps Script já vem com o Google Workspace e com a conta gratuita do Google, roda na nuvem do Google e enxerga a planilha sem configuração. É a escolha natural para regras que vivem dentro da planilha: carimbar data, validar, mover linhas, mandar um aviso por e-mail.

Quando a planilha é só uma parada no meio do caminho (o pedido vem do site, vai para a planilha, depois para o ERP e para o WhatsApp do vendedor), um fluxo no n8n, no Make ou no Zapier fica mais fácil de acompanhar do que um script escondido dentro de um arquivo.

Primeiro script em cinco passos

  1. 01

    Abra o editor

    Na planilha, vá em Extensões > Apps Script. O script criado assim fica vinculado a essa planilha.

  2. 02

    Confira o fuso horário

    Em Configurações do projeto, ajuste o fuso para America/Sao_Paulo. Ele define o horário dos gatilhos e das datas gravadas pelo script.

  3. 03

    Cole o código e salve

    Use os exemplos abaixo, adaptando o nome da aba e as colunas à sua planilha.

  4. 04

    Autorize

    Na primeira execução manual, o Google pede permissão para o script acessar a planilha e enviar e-mails em seu nome. Leia o que está sendo pedido.

  5. 05

    Acompanhe as execuções

    O menu Execuções do editor mostra cada rodada, com duração e erro. É o primeiro lugar a olhar quando algo não acontece.

Exemplo 1: carimbar a data quando o pedido é pago (onEdit)

// Aba "Pedidos": coluna E = Status, coluna F = Pago em
function onEdit(e) {
  const aba = e.range.getSheet();
  if (aba.getName() !== 'Pedidos') return;
  if (e.range.getColumn() !== 5 || e.range.getRow() < 2) return;

  // e.value só existe quando uma única célula foi editada
  if (e.value === 'Pago') {
    aba.getRange(e.range.getRow(), 6).setValue(new Date());
  }
}
Gatilho simples: basta a função se chamar onEdit. Ele não pode usar serviços que exigem autorização, como o Gmail, e roda por no máximo 30 segundos.

Exemplo 2: e-mail diário com os pedidos pendentes (gatilho por tempo)

// Colunas: A = Nº, B = Cliente, C = Data, D = Valor, E = Status
function enviarPendencias() {
  const aba = SpreadsheetApp.getActive().getSheetByName('Pedidos');
  const linhas = aba.getDataRange().getValues().slice(1); // sem o cabeçalho
  const pendentes = linhas.filter(function (l) { return l[4] === 'Pendente'; });
  if (pendentes.length === 0) return;

  const corpo = pendentes
    .map(function (l) {
      return 'Pedido ' + l[0] + ' | ' + l[1] + ' | R$ ' + Number(l[3]).toFixed(2);
    })
    .join('\n');

  MailApp.sendEmail(
    'financeiro@suaempresa.com.br',
    pendentes.length + ' pedidos pendentes',
    corpo
  );
}

// Rode esta função uma vez, manualmente, para criar o gatilho
function criarGatilho() {
  ScriptApp.getProjectTriggers()
    .filter(function (t) { return t.getHandlerFunction() === 'enviarPendencias'; })
    .forEach(function (t) { ScriptApp.deleteTrigger(t); });

  ScriptApp.newTrigger('enviarPendencias')
    .timeBased()
    .everyDays(1)
    .atHour(8)
    .create();
}
Gatilho instalável: roda com a conta de quem o criou. O horário exato pode variar dentro da hora escolhida (aqui, entre 8h e 9h).

Cotas do Apps Script que mais aparecem na prática

  1. Destinatários de e-mail por dia

    100 em conta pessoal (gmail.com) e 1.500 no Google Workspace.

  2. Tempo total de gatilhos por dia

    90 minutos em conta pessoal e 6 horas no Workspace.

  3. Tempo por execução

    6 minutos nos dois tipos de conta. Um script que processa milhares de linhas, uma a uma, estoura esse limite.

  4. Gatilhos por usuário por script

    20. Por isso o exemplo apaga o gatilho antigo antes de criar outro.

  5. Chamadas UrlFetch por dia

    20.000 em conta pessoal e 100.000 no Workspace.

Armadilhas comuns

  • O onEdit roda quando um usuário muda o valor de uma célula. Alterações feitas por outro script ou pela API, como o n8n gravando na planilha, não disparam gatilhos. Para reagir a respostas de formulário, use o gatilho instalável de envio de formulário.
  • Leia e grave em bloco (getValues e setValues). Chamar getValue célula por célula deixa o script lento e perto do limite de 6 minutos.
  • Datas digitadas como texto quebram comparações. Formate a coluna como data antes de automatizar.
  • Se quem criou o gatilho sair da empresa e a conta for desativada, o gatilho para. Crie com uma conta da equipe.
  • Não deixe e-mails ou chaves de API escritos no código. Use Propriedades do script (PropertiesService).
Perguntas frequentes

Como automatizar o Google Sheets: dúvidas comuns

Preciso saber programar para usar Apps Script?

Para adaptar os exemplos, basta entender o básico de JavaScript: variáveis, if e listas. Um assistente de IA ajuda a escrever o código, mas teste sempre em uma cópia da planilha antes de usar na original.

O Apps Script é pago?

Não há cobrança separada. Ele vem com a conta do Google e com o Google Workspace, e o que muda entre elas são as cotas, como o número de e-mails por dia.

Dá para rodar um script a cada 5 minutos?

Dá, com everyMinutes(5) no gatilho por tempo. Lembre que cada rodada conta para o tempo total diário de gatilhos, que é de 90 minutos em conta pessoal.

Como enviar mensagens de WhatsApp a partir da planilha?

O Apps Script consegue chamar APIs externas com UrlFetchApp, mas para WhatsApp é mais simples usar o n8n lendo a planilha e enviando pela API oficial da Meta. Veja o guia de integração do WhatsApp com o n8n.

Meu script parou de funcionar sozinho. O que olhar?

Abra Execuções no editor e veja o erro. As causas mais frequentes são aba ou coluna renomeada, cota diária estourada e autorização revogada da conta que criou o gatilho.

Precisa de ajuda para resolver isso na sua empresa?

Respondemos em até 24 horas com as próximas perguntas e uma proposta objetiva.