Los agentes de RBM reciben mensajes y eventos a través de un webhook. Cuando un usuario envía un mensaje a tu agente, el servicio de RBM de Google lo envía al webhook configurado. Luego, tu agente puede decodificar el mensaje, procesarlo y emitir una respuesta al usuario.

Los usuarios pueden enviar cualquier texto, ubicación o archivo que permita su cliente de RCS. Tu agente debe controlar cualquier texto, ubicación o archivo que el usuario pueda enviar, así como cualquier estado de error que puedan activar esos mensajes.
Para obtener información sobre cómo tu agente puede controlar las confirmaciones de entrega, las confirmaciones de lectura y los indicadores de escritura, consulta Recibe eventos.
Maneja los mensajes entrantes
La forma en que tu agente controla y responde a los mensajes de los usuarios depende en gran medida de tu lógica empresarial. Sin embargo, en general, los pasos para responder a un mensaje del usuario son coherentes.
Paso 1: Identifica el tipo de mensaje que envió el usuario
Los usuarios pueden enviar cuatro tipos de mensajes:
- Los mensajes de texto son respuestas de formato libre.
- Los mensajes desugerencias incluyen los datos de devolución y el texto de la acción o respuesta sugerida que presionó el usuario.
Los mensajes deubicación incluyen valores de latitud y longitud.
Los mensajes dearchivos incluyen el URI de un archivo y los datos asociados.
Paso 2: Procesa el contenido del mensaje
El contenido del mensaje del usuario debe guiar la lógica de tu agente y la siguiente respuesta en la conversación.
La forma más fácil de identificar la intención del usuario es con los datos de notificación de conversión de una respuesta o acción sugerida. Independientemente del texto asociado con la sugerencia, los datos de devolución son legibles por máquina.
Si un usuario envía un mensaje de texto, tu agente puede analizar la respuesta en busca de palabras clave compatibles o usar NLU (como Dialogflow) para procesar el mensaje del usuario e identificar un camino a seguir.
Los mensajes de ubicación y de archivos no incluyen texto ni datos de devolución, por lo que tu agente debe considerar el contexto de la conversación y los mensajes recientes antes de responder.
Si tu agente no sabe cómo responder al mensaje del usuario, debe responder con un estado de error y tratar de continuar la conversación solicitando información adicional al usuario, pidiéndole que ingrese datos de otra manera o presentando respuestas y acciones sugeridas a las que el agente sabe cómo responder.
Paso 3: Cumple con la lógica empresarial de la interacción
Una vez que tu agente identifica la respuesta correcta al mensaje del usuario, recopila la información necesaria de tu infraestructura y se relaciona con otros sistemas según sea necesario para cumplir con la lógica empresarial de la interacción.
Paso 4: Responde al usuario
Después de que el agente cumple con la lógica empresarial de la interacción, envía otro mensaje y continúa la conversación con el usuario.
Ejemplos
En el siguiente código, se muestra cómo tu agente recibe mensajes. Para obtener información sobre el formato y los valores, consulta UserMessage.
El agente recibe texto
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"text": "Hello, world!"
}El agente recibe un mensaje de una sugerencia
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"suggestionResponse": {
"postbackData": "suggestion_1",
"text": "Suggestion #1"
}
}El agente recibe una ubicación
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"location": {
"latitude": 37.422000,
"longitude": -122.084056
}
}El agente recibe un archivo
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "userFile": { "thumbnail": { "mimeType": "image/jpeg", "fileSizeBytes": 1280, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8", "fileName": "4_animated.jpeg" }, "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } } }