Wir stellen die On-Premises API ein. Weitere Informationen und wie du auf unsere Cloud API der nächsten Generation migrieren kannst, findest du in unserem Dokument zur Einstellung der On-Premises API.

Interaktive Nachrichten senden

In diesem Leitfaden erfährst du, wie du jede der Optionen von interaktiven Nachrichten sendest. Dank interaktiver Nachrichten können deine Benutzer*innen auf WhatsApp leichter finden, was sie von deinem Unternehmen benötigen. Bei Tests erreichten Chatbots, die interaktive Nachrichten-Features verwendeten, wesentlich höhere Reaktionsraten und Conversions als textbasierte Chats.

Arten von interaktiven Nachrichten:

  • Listennachrichten: Nachrichten, die ein Menü mit bis zu 10 Optionen enthalten. In diesen Nachrichten können Benutzer*innen, die mit einem Unternehmen interagieren, ganz einfach und konsistent Optionen auswählen.
  • Antwort-Button-Nachrichten: Nachrichten mit bis zu 3 Optionen (jeweils als Button dargestellt). In diesen Nachrichten können Benutzer*innen, die mit einem Unternehmen interagieren, schneller eine Option auswählen. Antwort-Buttons bieten dasselbe Erlebnis wie interaktive Vorlagen mit Buttons.
  • Nachrichten für ein einzelnes Produkt: Nachrichten zu einem einzelnen Produkt aus dem Bestand des Unternehmens. Weitere Informationen findest du unter Produkte mit Kund*innen teilen.
  • Nachrichten für mehrere Produkte: Nachrichten, die eine Auswahl von bis zu 30 Produkten aus dem Bestand des Unternehmens enthalten. Weitere Informationen findest du unter Produkte mit Kund*innen teilen.
  • Standortabfragenachrichten: Nachrichten, die den Standort von Benutzer*innen abfragen.
  • Flows-Nachrichten: Nachrichten für strukturierte Interaktionen. Weitere Informationen findest du unter Flows-Nachrichten.

Interaktive Nachrichten – Spezifikationen

  • Interaktive Nachrichten können im selben Vorgang miteinander kombiniert werden.
  • Benutzer*innen können jeweils nur eine Option in einer Listen- oder Button-Nachricht auswählen. Sie können jedoch zurückkehren und eine vorherige Nachricht erneut öffnen.
  • Listen- oder Button-Nachrichten können nicht als Benachrichtigungen verwendet werden. Derzeit können sie ausschließlich innerhalb von 24 Stunden nach der letzten von einem*einer Benutzer*in gesendeten Nachricht gesendet werden. Wenn du eine Nachricht außerhalb des 24-Stunden-Zeitfensters verschickst, erhältst du eine Fehlermeldung.
  • Unterstützte Plattformen: iOS, Android und Web (Flows-Nachrichten werden in Web nicht unterstützt).

Textnachrichten im Vergleich zu interaktiven Nachrichten:


Hier ist ein Beispiel, wie du Listennachrichten und Antwort-Buttons im selben Vorgang kombinieren kannst:

Etwas ist schiefgelaufen
Leider kann dieses Video nicht richtig abgespielt werden.

Übersicht

Vorteile

Einfacher für Benutzer*innen

Im Vergleich zu textbasierten Listen bieten interaktive Nachrichten ein einfacheres und konsistenteres Format, sodass Benutzer*innen finden und auswählen können, was sie von einem Unternehmen benötigen. Während der Testphase zeigte sich, dass Benutzer*innen die Interaktion mit diesen Features leichter fällt.

Geschäftsergebnisse

Bei Tests erreichten Chatbots, die interaktive Nachrichten-Features verwendeten, wesentlich höhere Reaktionsraten und Conversions als textbasierte Chats.

Personalisiert

Sie werden in Echtzeit dynamisch ausgefüllt und können daher für Kund*innen oder Situationen personalisiert werden. Du kannst zum Beispiel eine Listennachricht mit verfügbaren Zeitfenstern für eine Terminbuchung anzeigen oder Antwort-Buttons verwenden, um vorherige Lieferadressen anzuzeigen.

Keine Vorlagen

Für interaktive Nachrichten sind keine Vorlagen oder Vorabgenehmigungen erforderlich.

Anwendungsmöglichkeiten

Listennachrichten eignen sich am besten, wenn du mehrere Optionen angeben möchtest, wie dies:

  • Ein Kundenservice- oder FAQ-Menü
  • Ein Menü für Außer-Haus-Verkauf
  • Auswahl eines Geschäfts oder Standorts in der Nähe
  • Verfügbare Reservierungszeiten
  • Auswahl einer kürzlichen Bestellung, um sie erneut aufzugeben

Antwort-Buttons eignen sich hervorragend für schnelle Antworten anhand einer begrenzten Auswahl von Optionen wie diese:

  • Gesprächsguthaben aufladen
  • Persönliche Angaben ändern
  • Vorherigen Bestellung erneut tätigen
  • Rückgabe beantragen
  • Optionale Extras zu einer Essensbestellung hinzufügen
  • Eine Zahlungsmethode auswählen

Antwort-Buttons sind besonders nützlich in „personalisierten“ Anwendungsfällen, bei denen eine allgemeine Antwort nicht passend ist.

Flows-Nachrichten eignen sich am besten für eine strukturierte Kommunikation auf einem oder mehreren Bildschirm, wie z. B.:

  • Termine buchen
  • Produkte durchsuchen
  • Kundenfeedback einholen
  • Neue Verkauf-Leads erhalten

Flows-Nachrichten ermöglichen es Unternehmen, ein umfassenderes und ansprechenderes Nutzungserlebnis zu bieten, das Kund*innen dabei helfen kann, Sachen auf WhatsApp schneller zu erledigen, ohne zu einer anderen App oder Website wechseln zu müssen.

Anwendung

Auf API-Ebene werden interaktive Nachrichten festgelegt, indem du den type einer Nachricht auf interactive setzt und das interactive-Objekt hinzufügst. Im Allgemeinen umfassen diese Nachrichten vier Hauptteile: header, body, footer und action:

{
  "recipient_type": "individual",
  "to" : "whatsapp-id",
  "type": "interactive" 
  "interactive":{
    "type": "list" | "button" | ...,
    "header": {},
    "body": {},
    "footer": {},
    "action": {}
  }
}
In Listennachrichten fügen sich die Teile wie folgt zusammen:

In Antwort-Button-Nachrichten fügen sich die Teile so zusammen:

Weitere Informationen über das Senden dieser Nachrichten findest du unten.

Erste Schritte

Bevor du eine Nachricht senden kannst, musst du die WhatsApp-ID des*der Empfänger*in mit einem Aufruf an den /contacts-Node abrufen.

Wir empfehlen dir, deine Webhooks zum Empfangen des Nachrichtenstatus und von Benachrichtigungen über eingehende Nachrichten einzurichten. Auf diese Weise kannst du verfolgen, ob deine Nachricht gesendet wurde und was Kund*innen geantwortet haben. Weitere Informationen findest du unter Webhooks.

Schritt 1: Dein interactive-Objekt zusammenstellen

Listennachrichten

Zum Senden einer Listennachricht stelle ein interactive-Objekt des Typs list mit den folgenden Komponenten zusammen:

ObjektBeschreibung

header

Optional.

Wenn du dieses Objekt verwendest, musst du den Typ des Headers auf „text“ festlegen und ein Textfeld mit dem gewünschten Inhalt hinzufügen. Maximal 60 Zeichen.


Hier findest du alle verfügbaren header-Felder.

body

Erforderlich.

Der Text deiner Nachricht. Maximal 1024 Zeichen.


Hier findest du alle verfügbaren body-Felder.

footer

Optional.

Die Fußzeile deiner Nachricht.


Hier findest du alle verfügbaren footer-Felder.

action

Erforderlich.

Innerhalb des Aktionsobjekts musst du Folgendes einbetten:

  • ein button-Feld mit dem Inhalt deines Buttons, den maximal 20 Zeichen umfasst
  • mindestens ein section-Objekt (und maximal zehn), das höchstens 24 Zeichen für den title von section umfasst

Innerhalb von section musst du mindestens ein rows-Objekt hinzufügen. Der title einer Zeile darf höchstens 24 Zeichen umfassen und die description einer Zeile nicht mehr als 72 Zeichen.


Hier findest du alle verfügbaren action-Felder.

Hier findest du alle verfügbaren section-Felder.

Am Ende sollte dein interactive-Objekt in etwa wie folgt aussehen:

"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",           
          }
        ]
      },
      ...
    ]
  }
}

Antwort-Buttons

Zum Senden einer Antwort-Button-Nachricht stelle ein interactive-Objekt des Typs button mit den folgenden Komponenten zusammen:

ObjektBeschreibung

header

Optional.

Für interaktive button-Nachrichten kannst du folgende Header-Typen verwenden: text, video, image oder document.


Nachdem du den type ausgewählt hast, füge entsprechende Objekte/Felder mit weiteren Informationen hinzu:

  • Füge für die Typen video, image und document ein media-Objekt hinzu.
  • Füge für den Typ text ein text-Feld mit dem gewünschten Inhalt hinzu.

Beispiel:

"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"
        }
      }
    }

Hier findest du alle verfügbaren header-Felder.

body

Erforderlich.

Hier findest du alle verfügbaren body-Felder.

footer

Optional.

Hier findest du alle verfügbaren footer-Felder.

action

Erforderlich.

Du musst mindestens einen button hinzufügen und type, title und id für deine Buttons angeben. Du kannst nicht mehr als drei Buttons hinzufügen. Maximal 20 Zeichen für title.

Wenn du die ID festlegst, darf sie nicht mit einem Leerzeichen beginnen oder enden.


Beispiel:

"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" 
          }
        }
      ] 
    }

Hier findest du alle verfügbaren action-Felder.

Am Ende sollte dein interactive-Objekt in etwa wie folgt aussehen:

"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

Standortabfragenachrichten

Standortabfragenachrichten enthalten einen Nachrichtentext und einen Button Standort senden, auf den Benutzer*innen tippen können. Durch das Tippen auf den Button wird ein Bildschirm für die Standortfreigabe angezeigt, über den Benutzer*innen ihren Standort freigeben können.

Stelle zum Senden einer Standortabfragenachricht zunächst ein interactive-Objekt mit dem Text zusammen, der in der Nachricht angezeigt werden soll:

{
  "type": "location_request_message",
  "body": {
    "type": "text",
    "text": "<TEXT>"
  },
  "action": {
    "name": "send_location" 
  }
}
EigenschaftBeschreibung

type

Auf location_request_message festgelegt.

body.type

Auf text festgelegt.

body.text

Auf den Text festgelegt, der über dem Button Standort senden angezeigt werden soll.

action.name

Auf send_location festgelegt.

Flow-Nachrichten

Flows-Nachrichten enthalten einen Call-to-Action-Button, auf den Benutzer*innen tippen können. Wenn sie auf den Button tippen, sehen sie deinen selbstdefinierten Flow.

Zum Senden einer Flows-Nachricht stelle ein interactive-Objekt des Typs flow zusammen. Hier findest du alle Details.

Schritt 2: Allgemeine Nachrichtenparameter hinzufügen

Nachdem du dein interactive-Objekt fertiggestellt hast, füge die anderen Parameter an, die eine Nachricht ausmachen: recipient_type, to und type. Denke daran, type auf interactive festzulegen.

{
  "recipient_type": "individual",
  "to" : "whatsapp-id", // WhatsApp ID of your recipient
  "type": "interactive",
  "interactive":{
    // Your interactive object  
   }
  }

Hier findest du allgemeine Parameter, die allen Nachrichtentypen gemein sind.

Schritt 3: POST-Aufruf an /messages senden

Sende einen POST-Aufruf mit dem JSON-Objekt, das du in den Schritten 1 und 2 erstellt hast, an den /messages-Endpunkt. Wenn deine Nachricht erfolgreich gesendet wird, erhältst du die folgende Antwort:

{
  "messages": [{
    "id": "{message-id}"
  }]
}

Schritt 4: Webhooks prüfen

Wenn du deine Webhooks eingerichtet hast, prüfe sie auf Änderungen deines Nachrichtenstatus und auf eingehende Nachrichten von deinen Benutzer*innen.

Webhooks für Benutzer*innen, die auf interaktive Nachrichten antworten, enthalten eine neue Komponente mit dem Namen interactive. Diese enthält Informationen über die Auswahl des*der Benutzer*in. Weitere Informationen findest du unter Webhooks, Komponenten.

Dies ist ein Beispiel für eine Webhook-Anfrage, die eine*n Benutzer*in beschriebt, der*die seinen*ihren Standort freigegeben hat.

{
  "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"
        }
      ]
    }
  ]
}

Die location-Komponente in der Payload enthält den Breiten- und Längengrad des*der Benutzer*in. Beachte, dass address und name optional für Benutzer*innen sind und möglicherweise nicht enthalten sind.

"location": {
  "address": "1071 5th Ave, New York, NY 10128", #Optional
  "latitude": 40.782910059774,
  "longitude": -73.959075808525,
  "name": "Solomon R. Guggenheim Museum" #Optional
}