Stiamo disattivando l'API On-Premises. Consulta il nostro documento Disattivazione API On-Premises per i dettagli e per scoprire come eseguire la migrazione alla nostra API Cloud di nuova generazione.
Questa guida insegna come inviare ogni opzione di messaggio interattivo. I messaggi interattivi offrono ai tuoi utenti un modo più semplice per trovare e selezionare ciò che desiderano dalla tua azienda su WhatsApp. Durante i test, i chatbot che utilizzavano le funzioni dei messaggi interattivi hanno ottenuto percentuali di risposte e conversioni significativamente più elevate rispetto a quelle basate su testo.
Tipi di messaggi interattivi:
Ecco un confronto tra i messaggi di testo e i messaggi interattivi:
Ecco un esempio di come i messaggi con lista e i messaggi con pulsanti di risposta possono essere combinati nello stesso flusso:
Rispetto alle liste basate su testo, i messaggi interattivi offrono un formato più semplice e coerente per consentire alle persone di trovare e selezionare ciò che desiderano da un'azienda. Durante i test, le persone hanno riscontrato livelli di comprensione più elevati interagendo con queste funzioni.
Durante i test, i chatbot che utilizzavano le funzioni dei messaggi interattivi hanno ottenuto percentuali di risposte e conversioni significativamente più elevate rispetto a quelle basate su testo.
Vengono popolati in modo dinamico in tempo reale, per questo possono essere personalizzati in base al cliente o alla situazione. Ad esempio, puoi mostrare un messaggio con lista relativo alle fasce orarie disponibili per la prenotazione di un appuntamento, oppure usare i pulsanti di risposta per mostrare gli indirizzi di consegna precedenti.
I messaggi interattivi non richiedono modelli né approvazioni preliminari.
I messaggi con lista sono l'alternativa migliore per presentare diverse opzioni, come:
I pulsanti di risposta sono l'alternativa migliore per offrire risposte rapide da un insieme limitato di opzioni, come:
I pulsanti di risposta sono particolarmente utili per i casi d'uso "personalizzati" in cui una risposta generica non è adeguata.
I messaggi con flussi sono l'opzione ideale per la comunicazione strutturata attraverso uno o più schermi, ad esempio:
I messaggi con flussi consentono alle aziende di offrire un'esperienza utente più ricca e coinvolgente che può aiutare i clienti a ottenere risultati più rapidamente su WhatsApp senza dover necessariamente passare a un'altra app o visitare un sito web.
A livello dell'API, i messaggi interattivi vengono impostati specificando come type
di messaggio interactive
e aggiungendo l'oggetto interactive
. In generale, questi messaggi includono 4 parti principali: header
, body
, footer
e action
.
{ "recipient_type": "individual", "to" : "whatsapp-id", "type": "interactive" "interactive":{ "type": "list" | "button" | ..., "header": {}, "body": {}, "footer": {}, "action": {} } }
Scopri qui sotto maggiori informazioni su come inviare questi messaggi.
Prima di inviare ogni messaggio, devi ottenere l'ID WhatsApp del destinatario con una chiamata al nodo /contacts
.
Consigliamo di configurare i webhook per ricevere notifiche relative allo stato dei messaggi e ai messaggi in arrivo. In questo modo, puoi monitorare l'invio del tuo messaggio e le risposte degli utenti. Consulta Webhook per maggiori informazioni.
interactive
Per inviare un messaggio con lista, devi assemblare un oggetto interactive
del tipo list
con i seguenti componenti:
Oggetto | Descrizione |
---|---|
| Facoltativo. Se decidi di includerlo, devi impostare il tipo di intestazione su testo e aggiungere un campo di testo con il contenuto desiderato. Massimo 60 caratteri. |
| Obbligatorio. Il corpo del messaggio. Massimo 1024 caratteri. |
| Facoltativo. Il piè di pagina del messaggio. |
| Obbligatorio. All'interno dell'azione, devi nidificare:
All'interno di |
Al termine della procedura, l'oggetto interactive
dovrebbe essere simile a questo:
"interactive":{ "type": "list", "header": { "type": "text", "text": "your-header-content" }, "body": { "text": "your-text-message-content" }, "footer": { "text": "your-footer-content" }, "action": { "button": "cta-button-content", "sections":[ { "title":"your-section-title-content", "rows": [ { "id":"unique-row-identifier", "title": "row-title-content", "description": "row-description-content", } ] }, { "title":"your-section-title-content", "rows": [ { "id":"unique-row-identifier", "title": "row-title-content", "description": "row-description-content", } ] }, ... ] } }
Per inviare un messaggio con pulsanti di risposta, devi assemblare un oggetto interactive
del tipo button
con i seguenti componenti:
Oggetto | Descrizione |
---|---|
| Facoltativo. Per i messaggi interattivi Una volta selezionato il parametro
Esempio: "header": { "type": "text" | "image" | "video" | "document", "text": "your text" # OR "document": { "id": "your-media-id", "filename": "some-file-name" } # OR "document": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name", }, "filename": "some-file-name" }, # OR "video": { "id": "your-media-id" } # OR "video": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name" } } # OR "image": { "id": "your-media-id" } # OR "image": { "link": "http(s)://the-url", "provider": { "name": "provider-name" } } } |
| Obbligatorio. |
| Facoltativo. |
| Obbligatorio. Devi aggiungere almeno un valore Non ci possono essere spazi iniziali o finali quando si imposta l'ID. Esempio: "action": { "buttons": [ { "type": "reply", "reply": { "id": "unique-postback-id", "title": "First Button’s Title" } }, { "type": "reply", "reply": { "id": "unique-postback-id", "title": "Second Button’s Title" } } ] } |
Al termine della procedura, l'oggetto interactive
dovrebbe essere simile a questo:
"interactive": { "type": "button", "header": { # optional "type": "text" | "image" | "video" | "document", "text": "your text" # OR "document": { "id": "your-media-id", "filename": "some-file-name" } # OR "document": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name", }, "filename": "some-file-name" }, # OR "video": { "id": "your-media-id" } # OR "video": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name" } } # OR "image": { "id": "your-media-id" } # OR "image": { "link": "http(s)://the-url", "provider": { "name": "provider-name" } } }, # end header "body": { "text": "your-text-body-content" }, "footer": { # optional "text": "your-text-footer-content" }, "action": { "buttons": [ { "type": "reply", "reply": { "id": "unique-postback-id", "title": "First Button’s Title" } }, { "type": "reply", "reply": { "id": "unique-postback-id", "title": "Second Button’s Title" } } ] } # end action } # end interactive
I messaggi di richiesta di posizione contengono testo nel corpo e un pulsante Invia posizione che gli utenti possono toccare. Toccando il pulsante viene mostrata una schermata di condivisione della posizione che l'utente può usare per condividere la propria posizione.
Per inviare un messaggio di richiesta di posizione, come prima cosa assembla un oggetto interactive
con il testo che desideri mostrare nel messaggio:
{ "type": "location_request_message", "body": { "type": "text", "text": "<TEXT>" }, "action": { "name": "send_location" } }
Proprietà | Descrizione |
---|---|
| Impostata su |
| Impostata su |
| Impostata sul testo che desideri mostrare sopra il pulsante Invia posizione. |
| Impostata su |
I messaggi con flussi contengono un pulsante di call to action che gli utenti possono selezionare. Toccando il pulsante, viene visualizzato il flusso personalizzato.
Per inviare un messaggio con flussi, devi assemblare un oggetto interactive
di tipo flow
. Consulta qui i dettagli completi.
Una volta completato l'oggetto interattivo, aggiungi gli altri parametri che compongono il messaggio: recipient_type
, to
e type
. Ricorda di impostare type
su interactive
.
{ "recipient_type": "individual", "to" : "whatsapp-id", // WhatsApp ID of your recipient "type": "interactive", "interactive":{ // Your interactive object } }
Consulta qui i parametri comuni per tutti i tipi di messaggi.
POST
a /messages
Effettua una chiamata POST
all'endpoint /messages
con l'oggetto JSON
assemblato nei passaggi 1 e 2. Se il tuo messaggio viene inviato correttamente, riceverai la seguente risposta:
{ "messages": [{ "id": "{message-id}" }] }
Se configuri i webhook, controlla se ci sono variazioni nello stato del messaggio o eventuali risposte degli utenti.
I webhook degli utenti che rispondono ai messaggi interattivi includono un nuovo componente chiamato interactive
, che contiene informazioni sulla scelta dell'utente. Consulta Webhook, Componenti per maggiori informazioni.
Ad esempio, ecco una richiesta webhook che descrive un utente che ha condiviso la sua posizione.
{ "object": "whatsapp_business_account", "entry": [ { "id": "12345", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "12345", "phone_number_id": "12345" }, "contacts": [ { "profile": { "name": "John Doe" }, "wa_id": "12345" } ], "messages": [ { "context": { "from": "12345", "id": "test-id" }, "from": "123450", "id": "test-id", "timestamp": "16632", "location": { "address": "1071 5th Ave, New York, NY 10128", #Optional "latitude": 37.421996751527, "longitude": -122.08407156636, "name": "Solomon R. Guggenheim Museum" #Optional }, "type": "location" } ] }, "field": "messages" } ] } ] }
Il componente location
all'interno del payload contiene la latitudine e la longitudine dell'utente. Tieni presente che address
e name
sono facoltativi per l'utente e potrebbero non essere inclusi.
"location": { "address": "1071 5th Ave, New York, NY 10128", #Optional "latitude": 40.782910059774, "longitude": -73.959075808525, "name": "Solomon R. Guggenheim Museum" #Optional }