Ereignisse

Ereignisse sind Benachrichtigungen, die Ihr Agent senden und empfangen kann. Es gibt drei Arten von Ereignissen:

Servergenerierte Ereignisse

Die RBM-Plattform sendet Ereignisse, um Ihren Agent über Aktualisierungen auf Serverebene wie Ablauf von Nachrichten zu informieren.

Informationen zu Formatierungs- und Wertoptionen finden Sie unter ServerEvent.

Nachricht ist abgelaufen; Widerruf erfolgreich

Die Nachricht ist abgelaufen und wurde erfolgreich widerrufen. Dieses Ereignis wäre ein guter Auslöser für Ihre Fallback-Messaging-Strategie.

{
  "phoneNumber": [phone number of recipient that the original message was intended for] ,
  "messageId": [RCS message ID of the message],
  "agentId": [bot ID],
  "eventType": "TTL_EXPIRATION_REVOKED",
  "eventId": [unique ID generated by the RBM platform],
  "sendTime": [time at which the server sent this event]
}

Nachricht ist abgelaufen; Widerruf fehlgeschlagen

Die Nachricht ist abgelaufen, wurde aber nicht widerrufen.

{
  "phoneNumber": [phone number of recipient that the original message was intended for] ,
  "messageId": [RCS message ID of the message],
  "agentId": [bot ID],
  "eventType": "TTL_EXPIRATION_REVOKE_FAILED",
  "eventId": [unique ID generated by the RBM platform],
  "sendTime": [time at which the server sent this event]
}

Die Zustellung der Nachricht ist nicht garantiert.

  • Wenn die Nachricht zugestellt wurde, erhalten Sie ein DELIVERED-Ereignis an Ihrem Webhook.
  • Wenn die Nachricht nicht zugestellt wurde, verwenden Sie die Widerrufs-API, um eine Widerrufsanfrage zu senden.

Wenn die Nachricht zeitkritisch ist, z. B. bei einem OTP oder einer Betrugswarnung, sollten Sie sie über einen anderen Kanal wie SMS senden, auch wenn dies zu doppelten Nachrichten an den Nutzer führt.

Von Nutzern erstellte Ereignisse

Wie bei Nutzernachrichten und Funktionsprüfungen empfängt der Agent Nutzerereignisse als JSON.

Informationen zu Formatierungs- und Wertoptionen finden Sie unter UserEvent.

Nutzer erhält Agent-Nachricht

Dieses Ereignis zeigt an, dass eine Nachricht zugestellt wurde.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "DELIVERED",
  "eventId": "EVENT_ID",
  "messageId": "MESSAGE_ID",
  "agentId": "AGENT_ID"
}

Nutzer liest Agent-Nachricht

Dieses Ereignis zeigt an, dass eine Nachricht geöffnet oder bestätigt wurde.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "READ",
  "eventId": "EVENT_ID",
  "messageId": "MESSAGE_ID",
  "agentId": "AGENT_ID"
}

Nutzer beginnt zu tippen

Dieses Ereignis zeigt an, dass ein Nutzer gerade etwas schreibt.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "IS_TYPING",
  "eventId": "EVENT_ID",,
  "agentId": "AGENT_ID"
}

Der Nutzer sendet eine SMS

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "text": "Hi",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

Nutzer sendet eine Datei

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "userFile": {
    "payload": {
      "mimeType": "image/gif",
      "fileSizeBytes": 127806,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9",
      "fileName": "4_animated.gif"
    }
  },
  "eventId": "EVENT_ID",,
  "agentId": "AGENT_ID"
}

Der Nutzer tippt auf eine vorgeschlagene Antwort.

Wenn ein Nutzer auf eine vorgeschlagene Antwort tippt, erhält der Agent ein Ereignis mit den Postback-Daten und dem Text der Antwort.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID",
  "suggestionResponse": {
    "postbackData": "postback_1234",
    "text": "Hello there!"
  }
}

Der Nutzer tippt auf eine vorgeschlagene Aktion.

Wenn ein Nutzer auf eine vorgeschlagene Aktion tippt, erhält der Agent ein Ereignis mit den Postback-Daten der Aktion.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID",
  "suggestionResponse": {
    "postbackData": "postback_1234"
  }
}

Vom Agent generierte Ereignisse

Der Agent sendet Ereignisse, um menschliche Interaktionen zu simulieren und dem Nutzer zu bestätigen, dass der Agent mit seinen Nachrichten interagiert. Für Nutzer werden Ereignisse als Benachrichtigungen in ihren Unterhaltungen angezeigt.

Informationen zu Formatierungs- und Wertoptionen finden Sie unter phones.agentEvents.

Der Kundenservicemitarbeiter sendet ein READ-Ereignis

Nutzern wird dieses Ereignis als Lesebestätigung für eine bestimmte Nachricht angezeigt. Sie teilt dem Nutzer mit, dass die RBM-Plattform seine Nachricht gesendet hat und der Agent sie verarbeitet.

Mit dem folgenden Code wird ein READ-Ereignis für eine Nachricht mit einer übereinstimmenden messageId gesendet.

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \
-d "{
  'eventType': 'READ',
  'messageId': 'MESSAGE_ID'
}"

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('../libs/rbm_api_helper');

// Send the device an event to indicate that messageId has been read
rbmApiHelper.sendReadMessage('+12223334444', messageId);
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

Java

import com.google.rbm.samples.lib.RbmApiHelper;
…

// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Send the device an event to indicate that messageId has been read
rbmApiHelper.sendReadMessage(messageId, "+12223334444");
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

Python

# Reference to RBM Python client helper and messaging object structure
from rcs_business_messaging import rbm_service

# Send the device an event to indicate that message_id was read
rbm_service.send_read_event('+12223334444', message_id)
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

C#

using RCSBusinessMessaging;
…

// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                                 projectId);

// Send the device an event to indicate that messageId has been read
rbmApiHelper.SendReadMessage(messageId, "+12223334444");
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

Der Kundenservicemitarbeiter sendet ein IS_TYPING-Ereignis

Nutzer sehen dieses Ereignis als Eingabeanzeige und teilt ihnen mit, dass Ihr Agent eine Nachricht erstellt. Die Eingabeanzeige läuft nach einer kurzen Zeit (ca. 20 Sekunden) ab oder wenn das Gerät des Nutzers eine neue Nachricht von Ihrem Agent empfängt. Der Agent kann mehrere IS_TYPING-Ereignisse senden, um den Ablauftimer der Eingabeanzeige zurückzusetzen.

Mit dem folgenden Code wird ein IS_TYPING-Ereignis gesendet.

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \
-d "{
  'eventType': 'IS_TYPING',
}"

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('../libs/rbm_api_helper');

// Send the device an event to indicate that the agent is typing
rbmApiHelper.sendIsTypingMessage('+12223334444', function() {
    console.log('Typing event sent!');
});
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

Java

import com.google.rbm.samples.lib.RbmApiHelper;
…

// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Send the device an event to indicate that the agent is typing
rbmApiHelper.sendIsTypingMessage("+12223334444");
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

Python

# Reference to RBM Python client helper and messaging object structure
from rcs_business_messaging import rbm_service

# Send the device an event to indicate that the agent is typing
rbm_service.send_is_typing_event('+12223334444')
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

C#

using RCSBusinessMessaging;
…

// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                                 projectId);

// Send the device an event to indicate that the agent is typing
rbmApiHelper.SendIsTypingMessage(messageId, "+12223334444");
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.