Mit interaktiven Nachrichtenvorlagen kannst du mehr Inhalte an Empfänger*innen senden, die über die Inhalte von Standard- und Medien-Nachrichtenvorlagen hinausgehen, nämlich interaktive Buttons. Hierzu verwendest du das Objekt components
.
Es werden zwei Arten von vordefinierten Buttons angeboten:
Diese Buttons können an Textnachrichten oder Mediennachrichten angehängt werden. Sobald deine interaktiven Nachrichtenvorlagen erstellt und genehmigt wurden, kannst du sie in Benachrichtigungsnachrichten sowie in Kundenservice-Nachrichten verwenden.
Voraussetzungen:
Sobald die Nachrichtenvorlage genehmigt wurde, kannst du die API zum Senden einer Nachricht verwenden.
POST
-Anfrage an /messages
sendenPOST /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" } ] } ] } }
components
Objekt: Binde für interaktive Nachrichtenvorlagen den button
-Typ und das sub_type
-Feld ein. Eine erfolgreiche Antwort beinhaltet ein messages
-Objekt mit einer id
.
{ "messages": [{ "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU" }] }
Wenn der Vorgang fehlschlägt, enthält die Antwort ein Fehlerobjekt, das eine Fehlerzeichenfolge, einen Fehlercode und andere Informationen umfasst.
Wenn eine Vorlage an ein Konto gesendet wird, das die Vorlage nicht empfangen kann, wird der Fehler 1026 (ReceiverIncapable)
im Fehlerobjekt an den konfigurierten Webhook-Server gesendet.
Weitere Informationen zu Fehlern findest du unter Fehler- und Statuscodes.
Wenn ein*e Nutzer*in auf einen Schnellantwort-Button klickt, wird eine Antwort an das Unternehmen gesendet. Informationen dazu findest du unter Rückruf per Klick auf Schnellantwort-Button. Nutzer*innen können auch entscheiden, nicht auf den Button zu klicken und dir stattdessen eine Freitextnachricht zu senden.
{ "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": [ { ... } ] }
In diesen Beispielen wird demonstriert, wie interaktive Nachrichtenvorlagen eingerichtet werden. Am Anfang stehen die Vorlagenerstellung in deinem Business Manager und das Senden der Nachrichtenvorlagen mit API-Aufrufen an den messages
-Endpunkt.
Dieses Beispiel zeigt die Erstellung einer interaktiven Medien-Nachrichtenvorlage mit Schnellantwort-Buttons.
messages
-API-Aufruf fügt die Parameterinformationen ein.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" } ] } ] } }
Dieses Beispiel zeigt die Erstellung einer interaktiven Medien-Nachrichtenvorlage mit URL- und Telefonanruf-Buttons.
messages
-API-Aufruf fügt die Parameterinformationen ein.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" } ] } ] } }