Enviar novamente após ver apenas a aceitação pode criar uma mensagem duplicada. Rastreie o primeiro envio pelos eventos posteriores antes de decidir tentar novamente.
Guarde o identificador da mensagem retornado pela sua solicitação de envio. Ele conecta a aceitação inicial aos eventos posteriores sobre essa mensagem.
O que acontece entre aceita e entregue?
E-mail passa pela preparação. Mensagens SMS passam pelo repasse a uma operadora móvel.
Você pode acompanhar seus envios de Bird por estes tipos de evento:
| Canal | Evento | O que aconteceu |
|---|---|---|
email.accepted | Bird aceitou o envio e está preparando-o, uma vez por destinatário solicitado. | |
email.processed | Bird preparou a mensagem para entrega ao servidor de e-mail do destinatário. | |
email.delivered | O servidor de e-mail do destinatário aceitou a mensagem. | |
| SMS | sms.accepted | Bird aceitou a solicitação de envio e a enfileirou para processamento. |
| SMS | sms.sent | Bird repassou a mensagem à operadora. |
| SMS | sms.delivered | A operadora reportou a entrega ao aparelho do destinatário. |
Compare os horários dos eventos em timestamp para localizar um atraso. Os horários de chegada dos webhooks incluem seus próprios atrasos de entrega.
Para e-mail, subtraia o horário de aceitação do horário de preparação para medir a preparação dentro de Bird. O intervalo após a preparação também inclui a espera para alcançar o servidor receptor.
Para SMS, subtraia o horário de aceitação do horário de repasse à operadora para medir o tempo antes do repasse. O intervalo do repasse até a entrega mede o tempo restante de entrega.
Por exemplo, uma mensagem SMS aceita ao meio-dia e repassada dois segundos depois levou dois segundos antes do repasse à operadora. Se a entrega ocorre oito segundos depois, o total é dez segundos.
Por que ainda não foi entregue?
A mensagem pode ainda estar aguardando. Um evento posterior pode, em vez disso, reportar uma falha na entrega.
Um evento de aceitação sozinho não consegue distinguir esses resultados. Leia os eventos posteriores da mesma mensagem antes de decidir se deve enviá-la novamente.
E-mail reporta estes resultados:
email.deferredsignifica que a entrega está atrasada após uma falha temporária. Bird faz novas tentativas, então a mensagem ainda pode ser entregue ou devolvida depois.email.bouncedsignifica que o servidor receptor rejeitou a entrega.email.rejectedsignifica que Bird recusou a mensagem antes de uma tentativa de entrega. Investigue o motivo da rejeição antes de alterar as configurações do servidor de e-mail do destinatário.
SMS usa um conjunto diferente:
sms.undeliveredreporta uma falha de entrega não permanente da operadora.sms.failedreporta uma falha de entrega permanente.sms.rejectedsignifica que Bird recusou a mensagem antes do repasse à operadora.sms.expiredsignifica que o período de validade da mensagem expirou antes da entrega.
Leia o erro que acompanha um resultado de falha para identificar a causa. Filtragem de SMS pela operadora explica uma possível causa.
Existe um único ciclo de vida que eu possa aprender?
Cada canal tem sua própria sequência de estados de entrega.
Servidores de e-mail podem pedir que o remetente tente novamente mais tarde. Operadoras SMS podem parar de tentar quando uma mensagem expira. Esses resultados exigem ações de recuperação diferentes.
WhatsApp e voz também reportam seus próprios tipos de evento. Os guias de eventos descrevem os estados relevantes: e-mail, SMS, WhatsApp e voz.
Uma mensagem entregue pode deixar de estar entregue?
Um e-mail pode passar de entregue para devolvido após o servidor de e-mail receptor reportar uma falha de entrega posterior.
O servidor primeiro aceita a mensagem via SMTP. Ele pode reportar uma falha separadamente após essa troca ter terminado.
Bird registra o relatório como email.out_of_band_bounce. Quando o relatório é classificado como devolução, o status do destinatário passa de entregue para devolvido. Para uma devolução definitiva, Bird também suprime o endereço para bloquear envios futuros porque a falha é permanente.
Uma resposta automática pode aparecer na linha do tempo sem alterar o status de entrega. A classificação do relatório determina se a aceitação anterior é retratada.
Mantenha o status de entrega atualizável após um evento bem-sucedido. Webhooks podem chegar fora de ordem, então compare os timestamps dos eventos antes de aplicar uma alteração que sobrescreveria um estado mais recente.
Em resumo
A aceitação confirma a solicitação de envio.
Bird começa a preparar a mensagem após a aceitação. O evento não confirma a chegada a um servidor de e-mail ou aparelho.
Preparação e repasse são limites diferentes.
E-mail reporta a preparação com email.processed. SMS reporta o repasse à operadora com sms.sent.
Falhas têm significados específicos por canal.
E-mail pode ser adiado, devolvido ou rejeitado. SMS distingue entre resultados de não entregue, falha, rejeitado e expirado.
A entrega de e-mail pode ser seguida por uma devolução.
Um relatório de devolução posterior pode mover um destinatário de e-mail de entregue para devolvido. Uma resposta automática não altera o status de entrega.