Il webhook messages
messages è il campo che trasporta tutto ciò che un cliente invia al tuo numero: testo, contenuti multimediali, risposte, reazioni e risposte interattive. Su un numero Coexistence instradato, passa direttamente da Meta al tuo endpoint e non attraversa mai un provider.
Il campo webhook che trasporta i messaggi in arrivo dei clienti.
Il prefisso nell'id del messaggio usato per deduplicare i tentativi.
Lo stato che Meta si aspetta rapidamente, prima di qualsiasi elaborazione.
Cosa contiene il payload
Uno o più messaggi in una singola consegna, ciascuno con mittente, id e tipo. Il campo type determina quali altre chiavi sono presenti.
- Il numero di telefono del mittente e l'id del numero di telefono a cui ha scritto.
- Un id di messaggio wamid, su cui si basa la deduplicazione.
- Un timestamp Unix.
- Un tipo: text, image, audio, video, document, sticker, location, contacts, reaction, button o interactive.
- Per i tipi multimediali, un media id da usare per il recupero, non i byte stessi.
Perché non ci raggiunge su un numero instradato
Perché l'override sposta questo campo, insieme a smb_message_echoes, verso la destinazione che indichi.
Meta consente a un'app di sostituire la destinazione in cui un WhatsApp Business Account consegna i propri webhook. Impostiamo quell'override sul tuo URL, rimuovendo completamente il percorso dei messaggi dalla nostra infrastruttura. Da parte nostra non ci sono copie, code né conservazione, perché la consegna non arriva mai lì.
Quando non è impostata alcuna destinazione, questi eventi ricadono nel nostro callback predefinito, dove il gestore li elimina senza salvarli. Questa è la differenza tra una dichiarazione sulla conservazione e un percorso di codice: il contenuto delle conversazioni non può andare da nessuna parte.
Confermare correttamente
Restituisci 200 prima di fare il lavoro, non dopo.
Meta considera un'risposta lenta un errore e riprova, quindi un gestore che elabora inline vedrà lo stesso messaggio più di una volta. Rispondi immediatamente, inserisci il payload in una coda o in un'attività in background e lascia che il lavoro avvenga fuori dalla richiesta.
In un ambiente serverless non è facoltativo. Una funzione che restituisce la risposta e poi continua a lavorare può essere congelata appena risponde, quindi la conferma e l'elaborazione devono essere davvero separate.
Deduplicare
Sul wamid, sempre, perché i tentativi sono normali, non eccezionali.
Lo stesso messaggio può arrivare due volte per motivi che non dipendono da un errore tuo: una risposta lenta, un timeout di rete o un deploy durante la consegna. Salvare gli id già visti e ignorare i duplicati richiede poche righe e fa la differenza tra rispondere una volta o due allo stesso cliente.
Su un numero Coexistence è ancora più importante, perché smb_message_echoes arriva sullo stesso percorso e un gestore che tratta ogni evento come nuovo risponderà sopra una persona che ha già risposto.
Errori comuni
- Elaborare prima di restituire 200. Meta riprova in caso di risposta lenta e gestisci il messaggio due volte.
- Saltare la deduplicazione. I tentativi fanno parte del funzionamento previsto, non sono un caso limite.
- Aspettarsi i byte dei contenuti multimediali nel payload. Contiene un media id da usare per recuperarli.
EasyCoexistence instrada questo campo direttamente da Meta al tuo endpoint e conserva solo gli eventi operativi su cui si basa il monitoraggio, quindi il contenuto delle conversazioni non ha alcun percorso verso la nostra archiviazione.
Domande frequenti
EasyCoexistence vede i messaggi dei miei clienti?
No. L'override consegna questo campo al tuo endpoint. Qualsiasi dato che raggiunge il nostro callback di fallback viene eliminato senza essere salvato.
Possono arrivare più messaggi in una singola richiesta?
Sì. Una singola consegna può contenerne più di uno, quindi i gestori devono iterare invece di leggere il primo.
Come recupero i contenuti multimediali?
Il payload contiene un media id. Usalo per recuperare l'URL con il token di accesso del numero, quindi scarica il contenuto.
Cos'è smb_message_echoes?
È il campo associato che trasporta ciò che il tuo team invia dall'app WhatsApp Business. Esiste solo sui numeri Coexistence.
Continua a leggere
Pronto per iniziare?
Configura WhatsApp Coexistence in pochi minuti, non in mesi. L'app continua a funzionare sul telefono.
Inizia la prova gratuitaVerificato il