CamadaPrática
Automação

Planilha que avisa sozinha: alerta quando uma célula muda

Apps Script onEdit ou Make/Zapier para avisar quando Status muda no Google Sheets

Monte um alerta quando Status muda de Pendente para Atrasado no Google Sheets. Dois caminhos: Apps Script onEdit ou Make/Zapier com filtro e e-mail ou Slack.

Artur Boaz9 min de leitura
Capa: planilha que avisa sozinha

A planilha de pedidos está aberta. Às 16h, alguém da equipe muda a célula Status da linha 12 de Pendente para Atrasado. O responsável pelo cliente não abre o arquivo naquele dia. No dia seguinte, o cliente liga perguntando por que ninguém respondeu. A informação estava lá. O aviso, não.

Esse tipo de falha não é falta de disciplina. É falta de gatilho. Planilha boa guarda dados. Automação boa diz quando algo mudou e quem precisa saber.

Este tutorial mostra duas formas de montar esse aviso no Google Sheets: com Apps Script (função onEdit) ou com Make/Zapier (watch de linhas). Em ambos os casos, o pedido é o mesmo. Alguém edita Status. O responsável recebe e-mail ou mensagem com a linha e o valor novo.

O que significa "avisar quando a célula muda"

Avisar quando a célula muda não é "ficar de olho na planilha". É ligar três peças:

  1. Um gatilho de edição: algo detecta que houve mudança na planilha.
  2. Uma coluna observada: você não quer alerta a cada digitação em qualquer célula. Quer filtrar a coluna certa (no exemplo, Status).
  3. Quem notificar: e-mail, Slack ou outro canal onde a pessoa realmente lê.

No cenário da equipe, o evento útil é este: Status passa de Pendente para Atrasado (ou para qualquer valor que você defina como crítico). O retorno esperado é uma mensagem objetiva: aba Pedidos, linha 12, Status agora é Atrasado.

Antes de escolher a ferramenta, defina três coisas no papel (ou num comentário na própria planilha):

  • Qual aba observar (ex.: Pedidos).
  • Qual coluna observar (ex.: coluna B, Status).
  • Para quem enviar e em qual canal.

Sem isso, qualquer script ou fluxo vira ruído. Com isso, o pedido fica claro e o retorno fica mensurável.

Se você ainda está montando a primeira automação do tipo "se isto, então aquilo", vale ler o guia da Camada Prática sobre o padrão básico em https://camadapratica.blog/automacao/primeira-automacao-se-isto-entao-aquilo. Aqui o foco é só o alerta de célula.

Caminho A com Apps Script (onEdit)

Apps Script fica dentro do Google Sheets. Não precisa de conta extra. O gatilho onEdit roda quando alguém edita a planilha (com o arquivo aberto no navegador). É nativo, barato e suficiente para equipes pequenas.

Passo a passo:

  1. Abra a planilha de pedidos (de preferência uma cópia de teste).
  2. Vá em Extensões > Apps Script.
  3. Apague o conteúdo de exemplo e prepare uma função chamada onEdit.
  4. Na função, leia o evento de edição (a célula alterada, a aba, a linha e o valor novo).
  5. Filtre: só continue se a aba for Pedidos e a coluna for a de Status.
  6. Opcional e recomendado: só notifique se o valor novo for Atrasado (ou se saiu de Pendente).
  7. Envie o aviso com MailApp (e-mail) ou monte um texto e use outro serviço que você já use.
  8. Salve o projeto.
  9. Autorize as permissões quando o Google pedir (acesso à planilha e envio de e-mail).
  10. Volte à planilha e edite uma célula de Status para testar.

Trecho curto da lógica (em linhas simples, para você colar e adaptar):

function onEdit(e) {

var sheet = e.range.getSheet();

if (sheet.getName() !== "Pedidos") return;

if (e.range.getColumn() !== 2) return;

var novoValor = e.value;

if (novoValor !== "Atrasado") return;

var linha = e.range.getRow();

MailApp.sendEmail("responsavel@empresa.com", "Status atrasado na linha " + linha, "A célula de Status na linha " + linha + " mudou para: " + novoValor);

}

O que esse código faz, em português claro: ignora edições fora da aba Pedidos; ignora colunas que não sejam a 2 (Status); ignora valores que não sejam Atrasado; monta um e-mail com o número da linha e o valor novo.

Pedido concreto de teste: edite B12 de Pendente para Atrasado.

Retorno esperado: em poucos segundos, um e-mail no inbox do responsável com assunto indicando a linha e corpo dizendo que Status mudou para Atrasado.

Se o e-mail não chegar, confira três pontos antes de culpar o script: a coluna está certa (B = coluna 2)? O nome da aba é exatamente Pedidos? A autorização do Apps Script foi concluída (não ficou em rascunho)?

Limite importante do onEdit: ele costuma responder a edições feitas no navegador. Alterações via algumas APIs ou importações em massa podem não disparar do mesmo jeito. Para a rotina diária da equipe editando Status na tela, funciona bem.

Outro detalhe prático: coloque o e-mail do responsável em uma célula da planilha (ex.: Configurações!A1) e leia esse valor no script. Assim você não precisa reescrever o código quando a pessoa sai de férias.

Caminho B com Make ou Zapier

Se a equipe já usa Make ou Zapier, o alerta pode viver fora do Apps Script. A lógica é a mesma: vigiar a planilha, filtrar Status, avisar alguém.

Passos numerados (válidos nos dois produtos, com nomes ligeiramente diferentes):

  1. Crie um novo cenário (Make) ou Zap (Zapier).
  2. Escolha o módulo ou trigger de Google Sheets do tipo watch new/updated row (linha nova ou atualizada).
  3. Conecte a conta Google e selecione a planilha e a aba Pedidos.
  4. Defina com que frequência a ferramenta consulta a planilha (intervalo de polling).
  5. Adicione um filtro: só continue se a coluna Status for igual a Atrasado (ou se Status mudou em relação ao valor anterior, se a ferramenta oferecer histórico).
  6. Adicione a ação: enviar e-mail (Gmail, Outlook) ou postar no Slack no canal certo.
  7. No corpo da mensagem, inclua linha (ou ID do pedido), Status novo e, se possível, quem editou.
  8. Ative o cenário/Zap.
  9. Edite uma linha na planilha e espere o ciclo de sincronização.

Pedido concreto de teste: na linha do pedido 1042, mude Status de Pendente para Atrasado e salve.

Retorno esperado: após o intervalo de polling (pode ser de um a alguns minutos, conforme o plano), chega um e-mail ou uma mensagem no Slack com algo como: Pedido 1042, Status = Atrasado, aba Pedidos.

Diferença prática em relação ao Apps Script: aqui o aviso não é necessariamente instantâneo. Ele depende do watch. Em troca, você ganha conectores prontos (Slack, Discord, SMS, CRM) sem escrever código.

Cuide do filtro. Se o watch observar qualquer mudança na linha e você não filtrar Status, qualquer edição em Observações pode disparar alerta. O filtro é o que transforma "planilha mexeu" em "Status ficou crítico".

Se a ferramenta permitir, compare valor antigo e valor novo. Assim você evita reenviar alerta quando alguém só abre a linha e salva sem mudar Status.

Qual caminho escolher

Escolha Apps Script (onEdit) quando:

  • A equipe já vive no Google Sheets.
  • O aviso precisa ser rápido após a edição na tela.
  • Você quer evitar custo mensal de outra ferramenta.
  • Tem alguém confortável em manter um script curto.

Escolha Make ou Zapier quando:

  • O destino não é só e-mail (Slack, WhatsApp via API, CRM, ticket).
  • Ninguém quer abrir o editor de script.
  • Já existe stack no-code na empresa e a planilha é só mais uma fonte.
  • Você precisa de logs e histórico de execuções na interface da ferramenta.

Sobre cotas: Apps Script tem limites diários de envio de e-mail e tempo de execução. Make e Zapier têm cotas de operações por mês. Um alerta por mudança real de Status quase nunca estoura cota. Um alerta a cada tecla digitada, sim.

Sobre manutenção: script nativo fica na planilha. Se a planilha for copiada, o script pode ir junto ou não, dependendo de como você copia. Fluxo no-code fica na conta Make/Zapier. Se a pessoa dona da conta sair, o alerta some. Defina um dono técnico (mesmo que seja você) e documente em uma linha: "alerta Status → e-mail do responsável".

Regra simples: se o único destino é e-mail interno e o volume é baixo, Apps Script resolve. Se o alerta precisa entrar no mesmo fluxo de outras automações da empresa, Make/Zapier encaixa melhor.

Cuidados

Não notifique a cada digitação. Status digitado aos poucos (A, At, Atr...) pode gerar eventos intermediários em alguns cenários. Prefira valores de lista suspensa (Pendentes, Em andamento, Atrasado, Concluído). Lista reduz erro e reduz alerta falso.

Filtre a coluna certa. Confirme o número da coluna (B = 2) e o nome da aba. Renomear "Pedidos" para "Pedidos 2026" quebra o filtro sem aviso dramático. O fluxo simplesmente para de disparar.

Dados sensíveis: o e-mail ou a mensagem não precisa carregar CPF, preço interno ou notas privadas. Linha, ID do pedido e Status novo bastam. Se a planilha tiver dados pessoais, trate o alerta como dado também.

Teste em cópia. Duplique a planilha, troque o destinatário para o seu e-mail e só depois aponte para o responsável real. Erro de filtro com destinatário errado vira spam interno em minutos.

Evite múltiplos gatilhos no mesmo evento. Se você tiver onEdit e um Zap olhando a mesma coluna, a equipe recebe dois avisos. Escolha um caminho ativo.

Por fim, alinhe o significado de Atrasado com a equipe. Automação sem acordo de vocabulário só acelera confusão.

Alerta só funciona com dado consistente, então vale limpar e validar a coluna com regex antes de ligar o aviso.

O que fazer agora

Nesta semana, faça só isto: abra (ou crie) uma cópia da planilha de pedidos, coloque Status com lista suspensa, escolha um destinatário de teste (você) e implemente um dos dois caminhos. Edite B12 de Pendente para Atrasado. Confirme que o e-mail ou a mensagem chegou com linha e valor novo. Só depois troque o destinatário para o responsável de verdade.

Quando o alerta estiver estável, o próximo passo natural é documentar a regra em uma célula da aba Configurações e apontar a equipe para ela. Planilha que avisa sozinha não substitui processo. Ela só impede que a mudança crítica morra em silêncio.