Invio di modelli di messaggi interattivi

I modelli di messaggi interattivi ampliano il contenuto che puoi inviare ai destinatari, rispetto ai tipi di modelli di messaggi standard e multimediale, includendo pulsanti interattivi attraverso l'oggetto components.

Sono disponibili due tipi di pulsanti predefiniti:

  • Call to action: consente al cliente di chiamare un numero di telefono e visitare un sito web.
  • Risposta rapida: consente al cliente di rispondere con un semplice messaggio di testo.

Questi pulsanti possono essere aggiunti ai messaggi di testo o a quelli multimediali. Dopo aver creato e approvato i modelli di messaggi interattivi, puoi utilizzarli nei messaggi di notifica e in quelli dell'assistenza clienti.

Prima di iniziare

È necessario:

Dopo l'approvazione del modello di messaggio, puoi utilizzare l'API per inviare un messaggio.

Limiti

  • Per i modelli di call to action, puoi aggiungere 2 pulsanti, al massimo un pulsante per ogni tipo (Chiama numero di telefono e Visita sito web).
  • Per i modelli di risposta rapida, puoi aggiungere al massimo 3 pulsanti.

Passaggio 1: invio di una richiesta POST a /messages

POST /v1/messages
{
    "to": "recipient_wa_id",
    "type": "template",
    "template": {
        "namespace": "your-namespace",
        "language": {
            "policy": "deterministic",
            "code": "your-language-and-locale-code"
        },
        "name": "your-template-name",
        "components": [
            {
                "type" : "header",
                "parameters": [
                    {
                        "type": "text",
                        "text": "replacement_text"
                    }
                ]
            # end header
            },
            {
                "type" : "body",
                "parameters": [
                    {
                        "type": "text",
                        "text": "replacement_text"
                    },
                    {
                        "type": "currency",
                        "currency" : {
                            "fallback_value": "$100.99",
                            "code": "USD",
                            "amount_1000": 100990
                        }
                    },
                    {
                        "type": "date_time",
                        "date_time" : {
                            "fallback_value": "February 25, 1977",
                            "day_of_week": 5,
                            "day_of_month": 25,
                            "year": 1977,
                            "month": 2,
                            "hour": 15,
                            "minute": 33, #OR
                            "timestamp": 1485470276
                        }
                    },
                    {
                        ...
                        # Any additional template parameters
                    }
                ] 
            # end body
            },

            # The following part of this code example includes several possible button types, 
            # not all are required for an interactive message template API call.
            {
                "type": "button",
                "sub_type" : "quick_reply",
                "index": "0", 
                "parameters": [
                    {
                        "type": "payload",
                        # Business Developer-defined payload
                        "payload":"aGlzIHRoaXMgaXMgY29vZHNhc2phZHdpcXdlMGZoIGFTIEZISUQgV1FEV0RT"
                    }
                ]
            },
            {
                "type": "button",
                "sub_type" : "url",
                "index": "1", 
                "parameters": [
                    {
                        "type": "text",
                        # Business Developer-defined dynamic URL suffix
                        "text": "9rwnB8RbYmPF5t2Mn09x4h"
                    }
                ]
            },
            {
                "type": "button",
                "sub_type" : "url",
                "index": "2",
                "parameters": [
                    {                    
                        "type": "text",
                        # Business Developer-defined dynamic URL suffix
                        "text": "ticket.pdf"
                    }
                ]
            }
        ]
    }
}

Parametri

Passaggio 2: controllo della risposta dell'API

Una risposta positiva include un oggetto messages con un id.

{
  "messages": [{
    "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU"
  }]
}

Una risposta non riuscita contiene un oggetto error con una stringa di errore, un codice di errore e altre informazioni.

Se viene inviato un modello a un account che non è in grado di ricevere quello specifico modello, nell'oggetto error viene inviato l'errore 1026 (ReceiverIncapable) al server del webhook configurato.

Per ulteriori informazioni sugli errori, consulta Codici di errore e di stato.

Passaggio 3 opzionale: gestione dell'azione utente

Quando un utente clicca su un pulsante di risposta rapida, viene inviata una risposta all'azienda. Per informazioni, consulta Callback da un clic sul pulsante di risposta rapida. Gli utenti possono anche scegliere di non cliccare sul pulsante e di inviarti semplicemente un messaggio libero.

Callback da un clic sul pulsante di risposta rapida

Quando il cliente clicca su un pulsante di risposta rapida, viene inviata una risposta. Di seguito è riportato un esempio del formato di callback. Nota: un cliente può non cliccare su un pulsante e rispondere al messaggio interattivo o inviarti semplicemente un messaggio. Assicurati di essere in grado di supportare anche questo tipo di scenario. Consulta la documentazione sui Webhooks per maggiori informazioni.
{
    "contacts": [
        {
            "profile": {
                "name": "Kerry Fisher"
            },
            "wa_id": "16505551234"
        }
    ],
    "messages": [
        {
            "button": {
                "payload": "No-Button-Payload",
                "text": "No"
            },
            "context": {
                "from": "16315558007",
                "id": "gBGGFmkiWVVPAgkgQkwi7IORac0"
            },
            "from": "16505551234",
            "id": "ABGGFmkiWVVPAgo-sKD87hgxPHdF",
            "timestamp": "1591210827",
            "type": "button"
        }
    ]
    # If there are any errors, an errors field (array) will be present        
    "errors": [ { ... } ]
}

Esempi

Questi esempi illustrano il processo di configurazione dei modelli di messaggi interattivi a partire dalla creazione di modelli in Business Manager e di invio dei modelli di messaggi con chiamate all'API all'endpoint messages.

Promemoria di viaggio

Questo esempio mostra la creazione di un modello di messaggio multimediale interattivo con pulsanti di risposta rapida.

1. Crea il modello di messaggio multimediale interattivo in Business Manager.

2. La chiamata all'API messages aggiunge le informazioni relative ai parametri.

POST /v1/messages
{
    "to": "your-test-recipient-wa-id",
    "recipient_type": "individual",
    "type": "template",
    "template": {
        "namespace": "88b39973_f0d5_54e1_29cf_e80f1e3da4f2",
        "name": "upcoming_trip_reminder",
        "language": {
            "code": "en",
            "policy": "deterministic"
        },
        "components": [
            {
                "type": "header",
                "parameters": [
                    {
                        "type": "text",
                        "text": "12/26"
                    }
                ]
            },
            {
                "type": "body",
                "parameters": [
                    {
                        "type": "text",
                        "text": "*Ski Trip*"
                    },
                    {
                        "type": "date_time",
                        "date_time" : {
                            "fallback_value": "29th July 2019, 8:00am",
                            "day_of_month": "29",
                            "year": "2019",
                            "month": "7",
                            "hour": "8",
                            "minute": "00"
                        }
                    },
                    {
                            "type": "text",
                            "text": "*Squaw Valley Ski Resort, Tahoe*"
                    }
                ]
            },
            {
                "type": "button",
                "sub_type": "quick_reply",
                "index": 0,
                "parameters": [
                    {
                        "type": "payload",
                        "payload": "Yes-Button-Payload"
                    }
                ]
            },
            {
                "type": "button",
                "sub_type": "quick_reply",
                "index": 1,
                "parameters": [
                    {
                        "type": "payload",
                        "payload": "No-Button-Payload"
                    }
                ]
            }
        ]
    }
}

3. Il cliente riceve il messaggio di promemoria di viaggio con pulsanti di risposta rapida.

Spedizione del prodotto

Questo esempio mostra la creazione di un modello di messaggio multimediale interattivo con pulsanti con URL e numero di telefono.

1. Crea il modello di messaggio multimediale interattivo in Business Manager.

2. La chiamata all'API messages aggiunge le informazioni relative ai parametri.

POST /v1/messages
{
    "to": "your-test-recipient-wa-id",
    "recipient_type": "individual",
    "type": "template",
    "template": {
        "namespace": "88b39973_f0d5_54e1_29cf_e80f1e3da4f2",
        "name": "oculus_shipment_update",
        "language": {
            "code": "en",
            "policy": "deterministic"
        },
        "components": [
            {
                "type": "header",
                "parameters": [{
                    "type": "image",
                    "image": {
                        "link": "link-to-your-image"
                    }
                }]
            },
            {
                "type": "body",
                "parameters": [
                    {
                        "type": "text",
                        "text": "Anand"
                    },
                    {
                        "type": "text",
                        "text": "Quest"
                    },
                    {
                        "type": "text",
                        "text": "113-0921387"
                    },
                    {
                        "type": "date_time",
                        "date_time" : {
                            "fallback_value": "23rd Nov 2019",
                            "day_of_month": "20",
                            "year": "2019",
                            "month": "9"
                        }
                    }
                ] 
            },
            {
                "type": "button",
                "index": "0",
                "sub_type": "url",
                "parameters": [
                    {
                        "type": "text",
                        "text": "1Z999AA10123456784"
                    }
                ]
            }
        ]
    }
}

3. Il cliente riceve il messaggio di spedizione del prodotto con pulsanti con URL e di chiamata: