Histórico, fila e reenvio
Duas telas mostram o que o plugin fez com cada mensagem:
- Joinotify → Histórico — o que foi enviado, para quem, por qual fluxo e o que aconteceu.
- Joinotify → Fila de processamentos — o que ainda vai sair: passos esperando um Tempo de espera e mensagens aguardando uma nova tentativa.
Histórico de mensagens
Cada linha é uma mensagem, com o status vindo da confirmação real de entrega da Meta:
| Status | Significado |
|---|---|
| Enviado | A Meta aceitou a mensagem |
| Entregue | Chegou ao aparelho do destinatário |
| Lido | O destinatário abriu |
| Em fila | Falhou por um motivo passageiro e espera uma nova tentativa |
| Falhou | Não foi entregue. A coluna Erro diz o motivo, em linguagem legível |
| Cancelado | Uma nova tentativa pendente foi cancelada à mão |
O detalhe de uma linha mostra a resposta do WhatsApp e, num template, o texto que o cliente leu, com o idioma e o valor de cada variável. Códigos de login (OTP) são sempre mascarados.
O histórico fica sempre ligado
Desde a 2.7.0 não existe mais a opção "Histórico de mensagens" em Configurações → Sobre, e os
sites que a tinham desligado voltaram a registrar. O histórico é o que permite reenviar uma
falha e responder "essa mensagem saiu?". Quem precisa deixar de guardar uma mensagem específica
usa o filtro Joinotify/Message_History/Should_Record.
O tempo que os registros ficam guardados é escolhido em Configurações → Sobre → Retenção de histórico, de 30 dias a "manter para sempre".
Enviar novamente
Uma mensagem que falhou pode ser reenviada desde a 2.7.0 — pela ação Enviar novamente da linha, pela janela de detalhes ou selecionando várias linhas, até 50 de cada vez. Uma mensagem cuja tentativa automática foi cancelada também pode.
- Cada reenvio é uma tentativa só, fora da fila de novas tentativas, e vira uma linha nova com a origem e o fluxo da original.
- A original ganha a marca Reenviada e para de oferecer o reenvio, para que uma falha nunca seja mandada duas vezes por engano.
- Mensagens interativas, de localização, de contato, reações e stickers guardam o conteúdo completo no histórico, então o reenvio manda exatamente a mesma mensagem.
Não oferecem reenvio: códigos de login, templates com os valores ocultados do histórico e mensagens com anexo local, cujo arquivo o histórico não guarda.
Tabela, filtros e exportação
As três tabelas — fluxos, histórico e fila — têm o seletor Itens por página (10, 25, 50, 100 ou 200), lembrado pelo navegador, e exportam para JSON:
- Exportar na linha baixa só aquele item; as linhas selecionadas saem juntas.
- No histórico e na fila, o botão da barra exporta tudo o que os filtros atuais selecionam quando nada está marcado. O histórico para nos 5.000 registros mais recentes e avisa.
- Um fluxo exportado daqui é o mesmo arquivo que o construtor exporta, e pode ser importado de volta.
Tentativas automáticas
Quando o WhatsApp recusa uma mensagem por um motivo que pode passar — tempo esgotado, limite de envio, instabilidade —, o Joinotify estaciona a mensagem e tenta de novo. Isso é configurado em Configurações → Geral → Tentativas de entrega:
| Opção | Valores | Padrão |
|---|---|---|
| Máximo de tentativas | "Não tentar novamente" ou de 1 a 10 | 5 |
| Primeira tentativa após | 5, 15, 30, 60 ou 120 minutos | 30 minutos |
Cada tentativa espera o dobro da anterior. Um envio recusado por limite de taxa (429) espera exatamente o tempo que a API informar, em vez da tabela acima.
Erros de configuração não entram nessa fila, porque insistir não muda o resultado: chave da API inválida, template inexistente ou recusado, janela de 24 horas fechada. Eles vão direto para Falhou, com o motivo.
Fila de processamentos
A fila mostra cada item agendado com o fluxo, o próximo horário e as ações que ainda faltam rodar. Um item pode ser enviado na hora, com Despachar agora, ou cancelado, e a exportação inclui os dados de execução de cada item.
Nada nessa fila anda sem o WP-Cron — veja Requisitos mínimos.
Log de depuração
Com o Modo de depuração ligado em Configurações → Sobre, o plugin registra também cada
mensagem entregue (código dispatch_sent) e, em cada falha, a explicação do próprio WhatsApp. O
log é aberto na mesma aba, tem retenção própria e mostra o contexto em JSON indentado.