Você pode transformar uma planilha de estoque em um sistema de alerta sem contratar um software de gestão: o Google Apps Script verifica as linhas, compara o estoque atual com o mínimo definido e envia um e-mail quando um produto precisa de reposição. O processo funciona bem para pequenos negócios, lojas, oficinas e escritórios que já usam o Google Planilhas.
Neste guia, vamos montar um controle simples e repetível. A automação não substitui um ERP: ela depende de dados preenchidos corretamente, está sujeita às cotas do Google e envia alertas por e-mail, não por WhatsApp. Para começar, você só precisa de uma planilha com seis colunas e de uma conta Google.

Como organizar a planilha de estoque
Crie uma planilha chamada Estoque. Na primeira linha, use exatamente estes títulos:
| Código | Produto | Estoque atual | Estoque mínimo | E-mail responsável | Último alerta |
|---|---|---|---|---|---|
| 001 | Cabo USB-C | 8 | 10 | compras@empresa.com | |
| 002 | Mouse sem fio | 25 | 10 | compras@empresa.com |
O alerta será enviado quando o valor de Estoque atual for menor ou igual ao Estoque mínimo. A coluna “Último alerta” evita que o mesmo item dispare dezenas de mensagens no mesmo dia. Se você preferir começar com menos campos, não elimine essa coluna: o código usa a posição dela para registrar a data.
Como criar o script que envia o alerta
Na planilha, abra Extensões > Apps Script, apague o conteúdo do editor e cole o código abaixo. Ele usa o serviço MailApp, que serve para enviar e-mails sem dar acesso à caixa de entrada do Gmail.
function verificarEstoque() {
const aba = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Estoque');
if (!aba) {
throw new Error('Crie uma aba chamada Estoque antes de executar o script.');
}
const valores = aba.getDataRange().getValues();
if (valores.length < 2) return;
const fuso = Session.getScriptTimeZone();
const hoje = Utilities.formatDate(new Date(), fuso, 'yyyy-MM-dd');
const limiteDeEnvios = MailApp.getRemainingDailyQuota();
let enviados = 0;
for (let linha = 1; linha < valores.length; linha++) {
const [codigo, produto, estoqueAtual, estoqueMinimo,
destinatario, ultimoAlerta] = valores[linha];
const estoque = Number(estoqueAtual);
const minimo = Number(estoqueMinimo);
const dataAnterior = ultimoAlerta instanceof Date
? Utilities.formatDate(ultimoAlerta, fuso, 'yyyy-MM-dd')
: String(ultimoAlerta).trim();
const dadosValidos = produto && destinatario
&& Number.isFinite(estoque) && Number.isFinite(minimo);
if (!dadosValidos || estoque > minimo || dataAnterior === hoje) {
continue;
}
if (enviados >= limiteDeEnvios) {
break;
}
MailApp.sendEmail({
to: String(destinatario),
subject: `Estoque baixo: ${produto}`,
body: [
`O produto ${produto} (${codigo || 'sem código'}) chegou ao limite de reposição.`,
`Estoque atual: ${estoque}`,
`Estoque mínimo: ${minimo}`,
'',
'Confira a planilha antes de fazer o pedido.'
].join('\n')
});
aba.getRange(linha + 1, 6).setValue(hoje);
enviados++;
}
}
O script lê todas as linhas preenchidas, ignora produtos sem quantidade numérica ou sem destinatário, verifica a cota diária disponível e registra a data depois do envio. Assim, se a automação rodar novamente na mesma data, o item não gera outro e-mail.
Como ativar a verificação automática
- Salve o projeto com um nome como “Alerta de estoque”.
- No editor, escolha
verificarEstoquena lista de funções e clique em Executar uma vez. Aceite as permissões solicitadas pelo Google. - Na barra lateral do Apps Script, abra Acionadores e clique em Adicionar acionador.
- Escolha a função
verificarEstoque, selecione o tipo Baseado em tempo e defina, por exemplo, uma execução a cada hora. - Salve o acionador e altere temporariamente o estoque de um produto para um valor abaixo do mínimo para testar.
O acionador instalável é importante neste caso porque precisa autorizar o envio de e-mail. Um onEdit(e) simples pode reagir à edição de uma célula, mas os acionadores simples têm restrições e não podem usar serviços que exigem autorização, como o envio de mensagens. O acionador baseado em tempo também evita depender de alguém editar a linha no momento certo.
Como testar sem criar uma chuva de e-mails
Faça o primeiro teste com uma linha cujo destinatário seja o seu próprio endereço. Coloque “Estoque atual” em 0, mantenha “Estoque mínimo” em 1 e execute a função manualmente. Depois, confira três coisas:
- o e-mail chegou com produto, código e quantidades corretos;
- a coluna “Último alerta” recebeu a data;
- uma segunda execução no mesmo dia não enviou outra mensagem.
Se o teste funcionar, restaure o valor real do produto. Para uma operação maior, também vale separar uma planilha de testes da planilha usada pela equipe. O Apps Script trabalha com os dados do arquivo associado ao projeto, então uma coluna renomeada ou uma aba com nome diferente pode interromper a execução.
Limites e problemas comuns
O script não envia e-mail
Confira se você executou a função manualmente e concedeu autorização. Também confirme se o destinatário está escrito como um endereço válido. Não tente substituir MailApp por um acionador simples onEdit: a documentação do Google informa que esse tipo de acionador não acessa serviços que exigem autorização.
O alerta se repete
Verifique se “Último alerta” é realmente a sexta coluna e se o script conseguiu gravar a data. Se a equipe apagar essa célula, o produto voltará a ser considerado elegível na próxima execução.
A planilha parou depois de muitos itens
O Apps Script possui cotas diárias. Na consulta feita em 27 de agosto de 2026, a tabela oficial indicava até 100 destinatários por dia em contas de consumidor e 1.500 em contas Google Workspace para esse tipo de envio; os limites podem mudar e são contados por usuário. A própria documentação também informa que, ao atingir uma cota, a execução pode lançar uma exceção e parar. Por isso, a automação é adequada para alertas moderados, não para uma campanha de e-mail em massa.
Se você quer apenas entender a parte de mensagens, o JSMS também explica como enviar e-mails automáticos pelo Google Planilhas com Apps Script. Aqui, a diferença é que o envio está ligado a uma regra de estoque e tem uma trava diária por produto.
Vale a pena usar essa automação?
Vale a pena quando o estoque é pequeno ou médio, a equipe já trabalha no Google Planilhas e um atraso de algumas horas não causa um prejuízo grande. É uma solução barata e fácil de adaptar para materiais de escritório, insumos de uma clínica, peças de uma oficina ou produtos de uma loja.
Ela deixa de ser suficiente quando há vários depósitos, vendas simultâneas, necessidade de baixa automática, permissões por usuário, auditoria ou integração com marketplace. Nesses cenários, um ERP ou um sistema de gestão de estoque reduz o risco de duas pessoas alterarem a mesma informação. A planilha pode continuar como painel ou relatório, mas não deveria ser o único registro da operação.
Perguntas frequentes
Preciso pagar para usar o Apps Script?
O Apps Script está integrado ao Google Workspace, mas o uso continua sujeito às cotas da conta e dos serviços envolvidos. Consulte os limites atuais antes de depender dele em uma operação crítica.
Posso enviar o alerta para mais de uma pessoa?
Sim. Você pode separar endereços por vírgula no campo de destinatário ou adaptar o código para usar cc. Cada destinatário conta para a cota diária de envio.
O acionador verifica o estoque imediatamente?
Não necessariamente. Acionadores baseados em tempo executam em uma janela aproximada do intervalo escolhido. Se o alerta precisar ser instantâneo, será necessário outro desenho, como uma integração orientada a eventos.
O código envia mensagens pelo WhatsApp?
Não. O exemplo envia e-mail pelo MailApp. WhatsApp exige uma solução própria, normalmente por API oficial ou por um provedor de integração.