Eventi

Gli eventi sono notifiche che l'agente può inviare e ricevere. Esistono tre tipi di eventi:

Eventi generati dal server

La piattaforma RBM invia eventi per notificare all'agente gli aggiornamenti a livello di server, ad esempio le scadenze dei messaggi.

Per informazioni su formattazione e opzioni dei valori, consulta ServerEvent.

Il messaggio è scaduto; revoca riuscita

Il messaggio è scaduto ed è stato revocato. Questo evento è un buon attivatore per la tua strategia di messaggistica di riserva.

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

Il messaggio è scaduto. Revoca non riuscita

Il messaggio è scaduto, ma non è stato revocato.

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

La consegna dei messaggi non è garantita.

  • Se il messaggio è stato recapitato, riceverai un evento DELIVERED sul webhook.
  • Se il messaggio non è stato recapitato, utilizza l'API revoca per inviare una richiesta di revoca.

Se il messaggio è sensibile alla data, ad esempio una OTP o un avviso di attività fraudolenta, è meglio inviarlo tramite un canale alternativo come SMS, anche se questo comporta la presenza di messaggi duplicati per l'utente.

Eventi generati dall'utente

Come per i messaggi utente e i controlli delle funzionalità, il tuo agente riceve gli eventi utente in formato JSON.

Per informazioni su formattazione e opzioni dei valori, consulta UserEvent.

L'utente riceve il messaggio dell'agente

Questo evento indica che un messaggio è stato recapitato.

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

L'utente legge il messaggio dell'agente

Questo evento indica che un messaggio è stato aperto o confermato.

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

L'utente inizia a digitare

Questo evento indica che un utente sta scrivendo.

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

L'utente invia un messaggio

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

L'utente invia un file

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

L'utente tocca una risposta suggerita

Quando un utente tocca una risposta suggerita, l'agente riceve un evento con il testo e i dati postback della risposta.

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

L'utente tocca un'azione suggerita

Quando un utente tocca un'azione suggerita, l'agente riceve un evento con i dati postback dell'azione.

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

Eventi generati dall'agente

L'agente invia eventi per simulare interazioni umane e rassicura l'utente che l'agente sta interagendo con i suoi messaggi. Per gli utenti, gli eventi vengono visualizzati come notifiche all'interno delle loro conversazioni.

Per informazioni su formattazione e opzioni dei valori, consulta phones.agentEvents.

L'agente invia un evento READ

Per gli utenti, questo evento viene visualizzato come conferma di lettura di un messaggio specifico. Consente all'utente di sapere che la piattaforma RBM ha consegnato il suo messaggio e che l'agente lo sta elaborando.

Il codice seguente invia un evento READ per un messaggio con un messageId corrispondente.

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);
Questo codice è un estratto da un agente di esempio RBM.

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");
Questo codice è un estratto da un agente di esempio RBM.

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)
Questo codice è un estratto da un agente di esempio RBM.

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");
Questo codice è un estratto da un agente di esempio RBM.

L'agente invia un evento IS_TYPING

Per gli utenti, questo evento viene visualizzato come indicatore di digitazione e informa gli utenti che l'agente sta scrivendo un messaggio. L'indicatore di digitazione scade dopo un breve periodo di tempo (circa 20 secondi) o quando il dispositivo dell'utente riceve un nuovo messaggio dall'agente. L'agente può inviare più eventi IS_TYPING per reimpostare il timer di scadenza dell'indicatore di digitazione.

Il codice seguente invia un evento IS_TYPING.

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!');
});
Questo codice è un estratto da un agente di esempio RBM.

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");
Questo codice è un estratto da un agente di esempio RBM.

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')
Questo codice è un estratto da un agente di esempio RBM.

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");
Questo codice è un estratto da un agente di esempio RBM.