As 5 perguntas antes de ligar uma automação que manda mensagem
Mandei a mesma DM 4 vezes pra mesma pessoa. Não foi erro de digitação: quando chega enxurrada, o robô não roda uma vez — roda várias cópias ao mesmo tempo, e cada uma lê a mesma lista de pendentes. Aqui está a checagem que eu passei a fazer antes de ligar qualquer automação que fala com gente, mais o prompt que audita a sua fila (vale pra n8n, Zapier, Make ou código próprio).

O prompt
Você é engenheiro de automação. Vou descrever uma automação minha que envia mensagem (DM, e-mail ou WhatsApp). Audite se ela pode enviar a mesma coisa duas vezes. MINHA AUTOMAÇÃO: - Ferramenta: [n8n / Zapier / Make / código próprio / outra] - Gatilho: [o que dispara] - Onde ficam os itens a enviar: [tabela, planilha, lista] - Quem lê essa lista: [quantos fluxos/processos/agendamentos] RESPONDA EXATAMENTE ESTAS 5 PERGUNTAS, uma por vez, e diga onde eu estou exposto: 1. CONCORRÊNCIA — Se o gatilho disparar duas vezes no mesmo segundo, as duas execuções leem a mesma lista? Como uma avisa a outra? 2. MARCAÇÃO — O item é marcado como "em processamento" na MESMA operação em que é lido, ou primeiro lê e depois marca? (se for depois, aqui está o bug) 3. RETENTATIVA — Quando o envio falha no meio, o item volta pra fila? Ele pode ser reenviado depois de já ter saído? 4. REENVIO DA PLATAFORMA — O que acontece se a plataforma reentregar o mesmo webhook porque eu demorei a responder? 5. IDEMPOTÊNCIA — Existe alguma chave que impeça o mesmo destinatário de receber a mesma mensagem duas vezes, mesmo que tudo acima falhe? Para cada "não" ou "não sei", me dê a correção concreta na MINHA ferramenta — não a teoria.
Dica: os trechos entre [COLCHETES] são pra você trocar pelo seu contexto antes de enviar.
Passo a passo (siga na ordem)
Não pule etapas. Tá escrito do jeito que você só precisa seguir.
- 1
Faça a pergunta que resume tudo: 'se isso rodar duas vezes no mesmo segundo, o que acontece?'. Se a resposta é 'a pessoa recebe duas vezes', não ligue ainda.
- 2
A correção é ler e marcar na mesma operação. Em banco de dados isso é um UPDATE ... WHERE id IN (SELECT ... FOR UPDATE SKIP LOCKED) — não um SELECT seguido de UPDATE.
- 3
Sem código: no n8n e no Make, garanta que só UM fluxo lê a lista, e marque a linha como 'processando' antes de enviar. Em planilha, a coluna de status tem que ser escrita antes do envio, nunca depois.
- 4
Coloque um limite de tentativas (3 é suficiente). Sem isso, um item que falha para sempre é reenviado para sempre.
- 5
Guarde uma chave de idempotência: destinatário + campanha + dia. Antes de enviar, confira se já existe. É a rede de segurança que pega o que as outras 4 deixaram passar.
Tags
Gostou desse prompt?
Me marca quando publicar no Instagram — adoro ver o que vocês criam. Pedidos de prompt? Manda DM com a palavra prompt.



