Joinotify

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:

StatusSignificado
EnviadoA Meta aceitou a mensagem
EntregueChegou ao aparelho do destinatário
LidoO destinatário abriu
Em filaFalhou por um motivo passageiro e espera uma nova tentativa
FalhouNão foi entregue. A coluna Erro diz o motivo, em linguagem legível
CanceladoUma 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çãoValoresPadrão
Máximo de tentativas"Não tentar novamente" ou de 1 a 105
Primeira tentativa após5, 15, 30, 60 ou 120 minutos30 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.