Recibir mensajes

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 a tu webhook configurado. Tu agente puede decodificar el mensaje procesarlo y emitir una respuesta al usuario.

El usuario envía un mensaje al agente

Los usuarios pueden enviar los mensajes de texto, las ubicaciones o los archivos que permita el cliente de RCS. Tu agente necesita manejar texto, ubicaciones o archivos que el usuario pueda enviar, como y los estados de error que esos mensajes podrían activar.

Administra los mensajes entrantes

La forma en que tu agente maneja y responde los mensajes de los usuarios depende en gran medida en tu lógica empresarial. Sin embargo, generalmente, los pasos para responder a un usuario mensaje sean 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 de sugerencia incluyen los datos de notificación de conversión y el texto del la acción sugerida o la respuesta sugerida que presionó el usuario
  • Los mensajes de Location incluyen los valores de latitud y longitud.

  • Los mensajes de File 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 sencilla de identificar la intención del usuario es con datos de notificación de conversión de un respuesta sugerida o acción sugerida. Independientemente del texto asociado con la sugerencia, los datos de notificación de conversión son legibles por máquina.

Si un usuario envía un mensaje de texto, tu agente puede analizar la respuesta para palabras clave admitidas o usan CLN (como Dialogflow) para procesar el mensaje del usuario identificar un camino a seguir.

Los mensajes de ubicación y de archivo no incluyen datos de texto ni de notificación de conversión, por lo que El agente debe tener en cuenta 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, debería responder con un estado de error e intentar continuar la conversación solicitarle al usuario información adicional pidiéndole información de un de forma diferente, o presentando respuestas y acciones sugeridas el agente sabe cómo responder.

Paso 3: Completa la lógica empresarial para la interacción

Una vez que el agente identifica la respuesta correcta al mensaje del usuario, recopila la información necesaria de su infraestructura y responde con otros sistemas según sea necesario para cumplir con la lógica empresarial interacción.

Paso 4: Responde al usuario

Una vez que el agente completa la lógica empresarial de la interacción, envía un mensaje otro mensaje y continúa la conversación con el usuario.

Ejemplos

El siguiente código muestra cómo tu agente recibe los mensajes. Para dar formato y la información del valor, 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"
    }
  }
}

Controla los eventos entrantes

Tu agente recibe notificaciones cuando los mensajes que envía a los usuarios entregar y leer.

El siguiente código muestra cómo tu agente recibe los mensajes. Para dar formato y la información del valor, consulta UserEvent.

Mensaje entregado al usuario

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "eventType": "DELIVERED"
}

Mensaje leído por el usuario

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "eventType": "READ"
}

El usuario está escribiendo

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "IS_TYPING",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "agentId": "AGENT_ID"
}