Envoi de modèles de message interactif

Les modèles de message interactif permettent d’envoyer davantage de types de contenus à vos destinataires, outre les modèles de message standard et les modèles de message multimédia, en incluant des boutons interactifs utilisant l’objet components.

Il existe deux types de boutons prédéfinis :

  • Call-to-action : permet à votre clientèle d’appeler un numéro de téléphone et de consulter un site web
  • Réponse rapide : permet à votre clientèle de renvoyer un simple texto

Ces boutons peuvent être joints à des textos ou à des messages multimédias. Une fois que vos modèles de message interactif ont été créés et approuvés, vous pouvez les utiliser dans des messages de notification ainsi que dans des messages de service client.

Avant de commencer

Vous devez :

Une fois le modèle de message approuvé, vous pouvez utiliser l’API pour envoyer un message.

Contraintes

  • Pour les modèles d’appel à l’action, vous pouvez ajouter deux boutons, soit au maximum un bouton de chaque type (appel du numéro de téléphone et visite du site web).
  • Pour les modèles de réponse rapide, vous pouvez ajouter jusqu’à trois boutons.

Étape 1 : Envoyer une requête POST à /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"
                    }
                ]
            }
        ]
    }
}

Paramètres

Étape 2 : Vérifier la réponse de l’API

Une réponse positive comprend un objet messages avec un id.

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

Une réponse négative comprend un objet erreur contenant une chaîne d’erreur, un code d’erreur et des informations complémentaires.

Si un modèle est envoyé à un compte incapable de recevoir le modèle, l’erreur 1026 (ReceiverIncapable) sera envoyée dans l’objet erreur au serveur Webhook configuré.

Pour plus d’informations sur les erreurs, consultez l’article Codes d’erreur et d’état.

Étape 3 facultative : Gérer l’action utilisateur

Lorsqu’un utilisateur ou une utilisatrice clique sur un bouton de réponse rapide, une réponse est envoyée à l’entreprise. Pour plus d’informations, consultez la section Rappel d’un clic sur un bouton de réponse rapide. Les utilisateurs ou utilisatrices peuvent également choisir de ne pas cliquer sur le bouton et vous envoyer uniquement un message au format libre.

Rappel d’un clic sur un bouton de réponse rapide

Lorsque votre client clique sur un bouton de réponse rapide, une réponse est envoyée. Voici un exemple de format de rappel. Remarque : Il est possible que le client ne clique pas sur le bouton et réponde au message interactif ou vous envoie simplement un message à la place. Assurez-vous de pouvoir aussi prendre en charge ce type de scénario. Pour en savoir plus, consultez la documentation sur les Webhooks.
{
    "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": [ { ... } ]
}

Exemples

Ces exemples illustrent le processus de configuration des modèles de message interactif. Commencez par créer le modèle dans votre Business Manager, puis envoyez les modèles de message à l’aide d’appels d’API au point de terminaison des messages.

Rappel relatif au voyage

Cet exemple illustre la création d’un modèle de message multimédia interactif associé à des boutons de réponse rapide.

1. Créez le modèle de message multimédia interactif dans votre Business Manager.

2. L’appel d’API des messages est ajouté aux informations de paramètres.

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. Votre client ou cliente reçoit un message de rappel relatif à son voyage associé à des boutons de réponse rapide.

Expédition de produit

Cet exemple illustre la création d’un modèle de message multimédia interactif associé à des boutons d’URL et de numéro de téléphone.

1. Créez le modèle de message multimédia interactif dans votre Business Manager :

2. L’appel d’API des messages est ajouté aux informations de paramètres.

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. Votre client ou cliente reçoit le message d’expédition de son produit associé aux boutons d’URL et d’appel téléphonique :