Los eventos son notificaciones que tu agente puede enviar y recibir. Hay tres tipos de eventos:
- Generado por el servidor: La plataforma de RBM lo envía a tu agente.
- Generado por el usuario: El dispositivo del usuario lo envía a tu agente.
- Generado por el agente: El agente lo envió al usuario.
Eventos generados por el servidor
La plataforma de RBM envía eventos para notificar a tu agente sobre actualizaciones a nivel del servidor, como los vencimientos de los mensajes.
Para las opciones de formato y valor, consulta ServerEvent
.
El mensaje venció; la revocación se realizó correctamente
El mensaje venció y se revocó correctamente. Este evento sería un buen activador para tu estrategia de mensajes de resguardo.
{ "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] }
El mensaje venció; se produjo un error de revocación
El mensaje venció, pero no se revocó.
{ "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] }
No se garantiza la entrega de mensajes.
- Si se entregó el mensaje, recibirás un evento
DELIVERED
en tu webhook. - Si no se entregó, usa la API de revocación para enviar una solicitud de revocación.
Si el mensaje es urgente, como una OTP o una alerta de fraude, se recomienda enviar el mensaje a través de un canal alternativo, como SMS, incluso si esto genera mensajes duplicados para el usuario.
Eventos generados por el usuario
Al igual que con los mensajes de usuario y las verificaciones de capacidades, tu agente recibe eventos de usuario en formato JSON.
Para las opciones de formato y valor, consulta UserEvent
.
El usuario recibe un mensaje de agente
Este evento indica que se entregó un mensaje.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "DELIVERED", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
El usuario lee el mensaje del agente
Este evento indica que se abrió o confirmó un mensaje.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "READ", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
El usuario comienza a escribir
Este evento indica que un usuario está escribiendo.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID",, "agentId": "AGENT_ID" }
El usuario envía un mensaje de texto
{ "senderPhoneNumber": "PHONE_NUMBER", "text": "Hi", "eventId": "EVENT_ID", "agentId": "AGENT_ID" }
El usuario envía un archivo
{ "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" }
El usuario presiona una respuesta sugerida
Cuando un usuario presiona una respuesta sugerida, tu agente recibe un evento con los datos de notificación de conversión y el texto de la respuesta.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234", "text": "Hello there!" } }
El usuario presiona una acción sugerida
Cuando un usuario presiona una acción sugerida, tu agente recibe un evento con los datos de notificación de conversión de la acción.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234" } }
Eventos generados por el agente
Tu agente envía eventos para simular interacciones humanas y asegurar al usuario que tu agente está interactuando con sus mensajes. Para los usuarios, los eventos se muestran como notificaciones dentro de sus conversaciones.
Para las opciones de formato y valor, consulta phones.agentEvents
.
El agente envía un evento READ
Para los usuarios, este evento se muestra como una confirmación de lectura de un mensaje específico. Le permite al usuario saber que la plataforma de RBM entregó su mensaje y que el agente lo está procesando.
El siguiente código envía un evento READ
para un mensaje con un messageId
coincidente.
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);Este código es un extracto de un agente de muestra de 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");Este código es un extracto de un agente de muestra de 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)Este código es un extracto de un agente de muestra de 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");Este código es un extracto de un agente de muestra de RBM.
El agente envía un evento IS_TYPING
Para los usuarios, este evento se muestra como un indicador de escritura y les permite saber que tu agente está redactando un mensaje. El indicador de escritura vence después de un período corto (aproximadamente 20 segundos) o cuando el dispositivo del usuario recibe un mensaje nuevo de tu agente. Tu agente puede enviar varios eventos IS_TYPING
para restablecer el temporizador de vencimiento del indicador de escritura.
El siguiente código envía 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!'); });Este código es un extracto de un agente de muestra de 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");Este código es un extracto de un agente de muestra de 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')Este código es un extracto de un agente de muestra de 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");Este código es un extracto de un agente de muestra de RBM.