WhatsApp

Qual è la differenza tra whatsapp.failed e whatsapp.rejected?

Un evento whatsapp.rejected significa che Bird ha bloccato il messaggio prima dell'addebito; whatsapp.failed registra un fallimento durante l'invio o la consegna.

Quando un messaggio termina, esamina il suo evento terminale e il codice di errore prima di decidere se riprovare o indagare sulla consegna.

Cosa significa whatsapp.rejected?

Bird ha bloccato il messaggio prima dell'invio e non lo ha addebitato.

I controlli sul destinatario e l'addebito possono produrre un esito di rifiuto. Usa il codice associato per scegliere l'azione successiva:

CodiceCausaAzione successiva
undeliverableNessun indirizzo destinatario utilizzabileCorreggi il destinatario
recipient_suppressedIl destinatario è soppressoRispetta l'opt-out e verifica i registri di consenso
price_not_foundBird non può determinare il prezzo dell'invioContatta il supporto con l'identificativo del messaggio
insufficient_balanceIl wallet non può finanziare l'invio o l'organizzazione non può essere addebitataRisolvi la fatturazione prima di inviare di nuovo

Un invio senza prezzo viene rifiutato, non trattato come gratuito. Ripetere la stessa richiesta non fornisce il prezzo mancante.

Il timestamp del rifiuto usa l'orario di accettazione originale. Usalo in modo coerente nei report, così il ritardo di coda non sposta il rifiuto in un periodo di reportistica successivo.

Cosa significa whatsapp.failed?

Il messaggio è fallito durante l'invio o la consegna, con la causa registrata nei dettagli dell'errore.

Meta può segnalare un fallimento tramite un callback di consegna. Può anche rifiutare la richiesta di invio di Bird prima di accettare il messaggio per la consegna.

Bird registra internal_error quando il numero di invio non ha credenziali utilizzabili o l'elaborazione esaurisce i tentativi. meta_error_code è il codice di errore registrato da Meta. Questo codice Bird non ne contiene.

L'esaurimento dei tentativi può includere errori di trasporto o fallimenti a monte. Non dedurre dal solo internal_error che Meta non abbia mai ricevuto una richiesta.

Controlla la descrizione e la connessione del numero di invio. Fornisci al supporto l'identificativo del messaggio quando la causa non è chiara.

Un fallimento può verificarsi dopo l'addebito. Esamina il cost del messaggio invece di presumere che ogni invio non riuscito sia stato gratuito.

Perché undeliverable compare su entrambi gli eventi?

In un rifiuto, Bird non ha potuto indirizzare il destinatario. In un fallimento, è il risultato normalizzato di Bird per un rifiuto da parte di Meta.

Il codice di errore è più ampio di un'indicazione che il telefono non può ricevere messaggi. Bird usa undeliverable anche quando un codice Meta non ha una mappatura più specifica.

Leggi meta_error_code per il codice registrato da Meta e description per la spiegazione associata. Un fallimento segnalato senza dettagli di errore riceve comunque undeliverable.

Altri codici di fallimento normalizzati identificano problemi più specifici:

CodiceCosa indagare
service_window_expiredSe un contenuto libero è stato inviato fuori dalla finestra di servizio
rate_limitedI limiti di invio o destinatario di Meta
media_rejectedLa risorsa media rifiutata da Meta
internal_errorIl fallimento di elaborazione o invio registrato da Bird

Conserva i codici sconosciuti nei tuoi log. L'insieme dei codici può crescere, quindi un valore non riconosciuto non deve invalidare un evento altrimenti utilizzabile.

Come deve interpretare l'esito il mio gestore di eventi?

Dirama in base al tipo di evento e al suo codice di errore insieme.

Un messaggio rifiutato non procede verso un evento di invio. Un messaggio fallito richiede i dettagli dell'errore per distinguere un fallimento interno dalla risposta di Meta.

Tieni lo stato di consegna separato dall'engagement. Un evento whatsapp.read registra una lettura senza sostituire lo stato di consegna del messaggio.

Bird emette il proprio whatsapp.sent dopo che l'invio riesce. Non crea un altro evento dal callback di stato di invio separato di Meta.

La revisione dei template usa un insieme di stati diverso. Esamina la lingua del template quando il problema è l'approvazione, invece di questi esiti di messaggio.

Cosa devo fare prima di un altro invio?

Correggi la causa registrata prima di inviare un altro messaggio.

Per service_window_expired, usa un template approvato o attendi che il messaggio del cliente riapra la finestra di servizio.

Per la soppressione, rispetta la scelta del destinatario. Rimuovere un opt-out significherebbe ignorare la preferenza del destinatario e creare un rischio di conformità.

Per un problema di fatturazione o connessione del mittente, risolvi prima quella condizione dell'account. Conserva l'identificativo del messaggio originale così il supporto può esaminare il tentativo non riuscito.

Se il numero o il Business Account è limitato o bannato, segui i passaggi per restrizioni e ricorsi dell'account prima di riprovare.

Per un fallimento di trasporto incerto, indaga prima di creare un altro messaggio. Un nuovo invio può duplicare una richiesta il cui esito non è stato osservato.

In breve

  1. Un rifiuto non viene addebitato.

    Bird blocca il messaggio prima dell'invio quando i controlli sul destinatario o l'addebito impediscono la spedizione.

  2. Un fallimento può provenire da Bird o da Meta.

    Esamina l'errore registrato prima di decidere dove indagare. internal_error non include un codice di errore Meta.

  3. Interpreta l'evento e il codice insieme.

    undeliverable compare su entrambi gli eventi. Il suo significato dipende dal punto in cui il messaggio si è fermato.

  4. Scegli il recupero in base alla causa.

    Correggi il problema relativo a destinatario, account, contenuto o tempistica prima di tentare un altro invio. Conserva i codici sconosciuti per un'indagine.

Costruisci sulla stessa rete.

Una chiave API di test è subito tua. L'accesso alla produzione si sblocca quando aggiungi un metodo di pagamento e verifichi un mittente.

La tua prossima idea.
Pronta a partire.