REST Resource: phones.agentMessages

Recurso: AgentMessage

Es un mensaje que envía el agente a un usuario.

Representación JSON
{
  "name": string,
  "sendTime": string,
  "contentMessage": {
    object (AgentContentMessage)
  },
  "messageTrafficType": enum (MessageTrafficType),

  // Union field expiration can be only one of the following:
  "expireTime": string,
  "ttl": string
  // End of list of possible types for union field expiration.
}
Campos
name

string

La plataforma de RBM establece este campo. No lo incluyas cuando crees un mensaje del agente. El campo resuelve "phones/{E.164}/agentMessages/{messageId}", donde {E.164} es el número de teléfono del usuario en formato E.164 y {messageId} es el ID asignado por el agente del mensaje del agente.

sendTime

string (Timestamp format)

La plataforma de RBM establece este campo. No lo incluyas cuando crees un mensaje del agente. El campo resuelve la hora en la que se envía el mensaje al usuario.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizado a Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

contentMessage

object (AgentContentMessage)

Es el contenido del mensaje del agente.

messageTrafficType

enum (MessageTrafficType)

Es el tipo de tráfico del mensaje.

Campo de unión expiration.

expiration puede ser una de las siguientes opciones:

expireTime

string (Timestamp format)

Opcional. Marca de tiempo en UTC del momento en que este recurso se consideró vencido. Este valor se proporciona en el resultado si se establece o si se establece el campo TTL.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizado a Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

ttl

string (Duration format)

Opcional. Solo entrada. Tiempo que el mensaje estará activo antes de que se revoque automáticamente.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

AgentContentMessage

Es el contenido de un mensaje que se envía del agente a un usuario.

Representación JSON
{
  "suggestions": [
    {
      object (Suggestion)
    }
  ],

  // Union field content can be only one of the following:
  "text": string,
  "fileName": string,
  "uploadedRbmFile": {
    object (UploadedRbmFile)
  },
  "richCard": {
    object (RichCard)
  },
  "contentInfo": {
    object (ContentInfo)
  }
  // End of list of possible types for union field content.
}
Campos
suggestions[]

object (Suggestion)

Es una lista de respuestas y acciones sugeridas que aparecen como una lista de chips de sugerencias después del mensaje del agente asociado. Máximo de 11 sugerencias.

Los chips solo se muestran cuando el mensaje del agente asociado es el más reciente de la conversación (incluidos los mensajes del agente y del usuario). El usuario puede presionar una respuesta sugerida para enviarle la respuesta de texto al agente o presionar una acción sugerida para iniciar una acción nativa en el dispositivo. Máximo de 11 sugerencias.

Campo de unión content. El contenido del mensaje del agente content solo puede ser uno de los siguientes:
text

string

Texto codificado en UTF-8. Se admiten hasta 3,072 caracteres.

fileName
(deprecated)

string

Es el nombre único de un archivo. La plataforma de RBM devuelve un nombre de archivo cuando un agente sube un archivo. Obsoleto y reemplazado por uploadedRbmFile a continuación

uploadedRbmFile

object (UploadedRbmFile)

Contiene identificadores de un archivo y una miniatura que se subieron al servidor de RBM y se publicaron en él.

richCard

object (RichCard)

Es una tarjeta enriquecida independiente.

contentInfo

object (ContentInfo)

Es información sobre un archivo, incluidas la URL del archivo y la URL de su miniatura.

La plataforma de RBM publica contenido desde una caché, pero un agente puede forzar a la plataforma de RBM a recuperar una versión nueva del contenido y actualizar la caché.

UploadedRbmFile

Mensaje que contiene información del archivo y la miniatura

Representación JSON
{
  "fileName": string,
  "thumbnailName": string
}
Campos
fileName

string

Es el nombre del archivo que devolvió la plataforma de RBM cuando se subió el archivo.

thumbnailName

string

Nombre de la miniatura, que devuelve la plataforma de RBM cuando se subió la miniatura.

RichCard

Es una tarjeta enriquecida independiente o un carrusel de tarjetas enriquecidas que el agente envía al usuario.

Representación JSON
{

  // Union field card can be only one of the following:
  "carouselCard": {
    object (CarouselCard)
  },
  "standaloneCard": {
    object (StandaloneCard)
  }
  // End of list of possible types for union field card.
}
Campos
Campo de unión card. Tarjeta independiente o carrusel de tarjetas. Las direcciones (card) solo pueden ser una de las siguientes opciones:
carouselCard

object (CarouselCard)

Carrusel de tarjetas.

standaloneCard

object (StandaloneCard)

Tarjeta independiente.

CarouselCard

Carrusel de tarjetas.

Representación JSON
{
  "cardWidth": enum (CarouselCard.CardWidth),
  "cardContents": [
    {
      object (CardContent)
    }
  ]
}
Campos
cardWidth

enum (CarouselCard.CardWidth)

Es el ancho de las tarjetas en el carrusel.

cardContents[]

object (CardContent)

Es la lista de contenido de cada tarjeta del carrusel. Un carrusel puede tener un mínimo de 2 tarjetas y un máximo de 10.

CarouselCard.CardWidth

Es el ancho de las tarjetas en el carrusel.

Enumeraciones
CARD_WIDTH_UNSPECIFIED No se especifica.
SMALL 120 DP. Ten en cuenta que no se puede usar contenido multimedia vertical.
MEDIUM 232 DP.

CardContent

Contenido de la tarjeta

Representación JSON
{
  "title": string,
  "description": string,
  "media": {
    object (Media)
  },
  "suggestions": [
    {
      object (Suggestion)
    }
  ]
}
Campos
title

string

Título opcional de la tarjeta. Se admiten hasta 200 caracteres.

description

string

(Opcional) Descripción de la tarjeta. Se admiten 2,000 caracteres como máximo.

media

object (Media)

(Opcional) Contenido multimedia (imagen, GIF, video o PDF) para incluir en la tarjeta.

suggestions[]

object (Suggestion)

(Opcional) Lista de sugerencias para incluir en la tarjeta. Se pueden mostrar hasta 4 sugerencias.

Medios

Es un archivo multimedia dentro de una tarjeta enriquecida.

Representación JSON
{
  "height": enum (Media.Height),

  // Union field content can be only one of the following:
  "fileName": string,
  "uploadedRbmFile": {
    object (UploadedRbmFile)
  },
  "contentInfo": {
    object (ContentInfo)
  }
  // End of list of possible types for union field content.
}
Campos
height

enum (Media.Height)

Es la altura del contenido multimedia dentro de una tarjeta enriquecida con un diseño vertical. En el caso de una tarjeta independiente con diseño horizontal, la altura no se puede personalizar y este campo se ignora.

Campo de unión content. El contenido multimedia content solo puede ser uno de los siguientes:
fileName
(deprecated)

string

Es el nombre único del archivo que devolvió la plataforma de RBM cuando se subió el archivo. Obsoleto y reemplazado por uploadedRbmFile a continuación

uploadedRbmFile

object (UploadedRbmFile)

Contiene identificadores de un archivo y una miniatura que se subieron al servidor de RBM y se publicaron en él.

contentInfo

object (ContentInfo)

Es información sobre un archivo, incluidas la URL del archivo y la URL de su miniatura.

La plataforma de RBM publica contenido desde una caché, pero un agente puede forzar a la plataforma de RBM a recuperar una versión nueva del contenido y actualizar la caché.

ContentInfo

Es un mensaje que contiene la información del contenido.

Representación JSON
{
  "fileUrl": string,
  "thumbnailUrl": string,
  "forceRefresh": boolean
}
Campos
fileUrl

string

Es la URL del archivo a la que se puede acceder públicamente. La plataforma de RBM determina el tipo de MIME del archivo a partir del campo content-type en los encabezados HTTP cuando recupera el archivo. El campo content-type debe estar presente y ser preciso en la respuesta HTTP de la URL. El tamaño máximo recomendado del archivo es de 100 MB.

Nota: No se admiten redireccionamientos en las URLs de archivos. Usa CreateFileRequest si se necesita un redireccionamiento.

thumbnailUrl

string

(Opcional, solo para archivos de imagen, audio y video) URL accesible de forma pública de la miniatura. El tamaño máximo es de 100 KB.

Si no proporcionas una URL de miniatura, la plataforma de RBM mostrará una miniatura de marcador de posición en blanco hasta que el dispositivo del usuario descargue el archivo. Según la configuración del usuario, es posible que el archivo no se descargue automáticamente y que el usuario deba presionar un botón de descarga.

Nota: No se admiten redireccionamientos en las URLs de archivos. Usa CreateFileRequest si se necesita un redireccionamiento.

forceRefresh

boolean

Si se configura, la plataforma de RBM recupera el archivo y la miniatura de las URLs especificadas, incluso si tiene copias almacenadas en caché del archivo (o de la miniatura).

Media.Height

Altura de medios

Enumeraciones
HEIGHT_UNSPECIFIED No se especifica.
SHORT 112 DP
MEDIUM 168 DP.
TALL 264 DP. No está disponible para los carruseles de tarjetas enriquecidas cuando el ancho de la tarjeta se establece como pequeño.

Sugerencia

Es una respuesta o acción sugerida que se incluye en una tarjeta enriquecida o en una lista de chips de sugerencias.

Representación JSON
{

  // Union field option can be only one of the following:
  "reply": {
    object (SuggestedReply)
  },
  "action": {
    object (SuggestedAction)
  }
  // End of list of possible types for union field option.
}
Campos
Campo de unión option. Una respuesta o acción sugerida option solo puede ser una de las siguientes:
reply

object (SuggestedReply)

Los usuarios pueden presionar una respuesta sugerida para enviarle la respuesta de texto al agente.

action

object (SuggestedAction)

Los usuarios pueden presionar una acción sugerida para iniciar la acción nativa correspondiente en el dispositivo.

SuggestedReply

Cuando se presiona, envía la respuesta de texto al agente.

Representación JSON
{
  "text": string,
  "postbackData": string
}
Campos
text

string

Es el texto que se muestra en la respuesta sugerida y se envía de vuelta al agente cuando el usuario lo presiona. Máximo de 25 caracteres.

postbackData

string

Es la carga útil codificada en base64 que el agente recibe en un evento del usuario cuando este presiona la respuesta sugerida.

SuggestedAction

Cuando se presiona, inicia la acción nativa correspondiente en el dispositivo.

Representación JSON
{
  "text": string,
  "postbackData": string,
  "fallbackUrl": string,

  // Union field action can be only one of the following:
  "dialAction": {
    object (DialAction)
  },
  "viewLocationAction": {
    object (ViewLocationAction)
  },
  "createCalendarEventAction": {
    object (CreateCalendarEventAction)
  },
  "openUrlAction": {
    object (OpenUrlAction)
  },
  "shareLocationAction": {
    object (ShareLocationAction)
  }
  // End of list of possible types for union field action.
}
Campos
text

string

Es el texto que se muestra en la acción sugerida. Máximo de 25 caracteres.

postbackData

string

Es la carga útil (codificada en base64) que se enviará al agente en el evento del usuario que se genera cuando el usuario presiona la acción sugerida. Se admiten hasta 2,048 caracteres.

fallbackUrl

string

(Opcional) URL de resguardo que se usará si un cliente no admite una acción sugerida. Las URLs de resguardo se abren en ventanas nuevas del navegador. Debe ser un URI válido, como se define en RFC 3986. Se admiten hasta 2,048 caracteres.

Campo de unión action. La acción nativa que se inicia en el dispositivo cuando el usuario presiona la acción sugerida action solo puede ser una de las siguientes:
dialAction

object (DialAction)

Abre la app de marcador predeterminada del usuario con el número de teléfono especificado por el agente completado.

viewLocationAction

object (ViewLocationAction)

Abre la app de mapas predeterminada del usuario y selecciona la ubicación especificada por el agente o busca cerca de la ubicación del usuario con una búsqueda especificada por el agente.

createCalendarEventAction

object (CreateCalendarEventAction)

Abre la app de calendario predeterminada del usuario y comienza el flujo del nuevo evento de calendario con los datos del evento especificados por el agente completados previamente.

openUrlAction

object (OpenUrlAction)

Abre la app del navegador web predeterminado del usuario en la URL determinada. Si el usuario tiene instalada una app que está registrada como controlador predeterminado para la URL, se abrirá esta app y se usará su ícono en la IU de la acción sugerida.

shareLocationAction

object (ShareLocationAction)

Abre el selector de ubicación de la app de RCS para que el usuario pueda elegir una ubicación y enviársela al agente.

DialAction

Abre la app de marcador predeterminada del usuario con el número de teléfono especificado por el agente completado.

Representación JSON
{
  "phoneNumber": string
}
Campos
phoneNumber

string

Número de teléfono en formato E.164, por ejemplo, +12223334444.

ViewLocationAction

Abre la app de mapas predeterminada del usuario y selecciona la ubicación especificada por el agente o busca cerca de la ubicación del usuario con una búsqueda especificada por el agente.

Representación JSON
{
  "latLong": {
    object (LatLng)
  },
  "label": string,
  "query": string
}
Campos
latLong

object (LatLng)

(Opcional) La latitud y la longitud de la ubicación especificada.

label

string

(Opcional) Es la etiqueta de la chincheta que se soltó en latLong.

query

string

(Opcional, solo se admite en clientes de Mensajes para Android) En lugar de especificar una latitud y longitud (y, de manera opcional, una etiqueta), el agente puede especificar una cadena de búsqueda. En el caso de las apps de mapas predeterminadas que admiten la función de búsqueda (incluido Google Maps), si se presiona esta acción sugerida, se realiza una búsqueda de ubicación centrada en la ubicación actual del usuario. Si la búsqueda es lo suficientemente específica, los agentes pueden usarla para seleccionar cualquier ubicación del mundo.

Por ejemplo, si configuras la cadena de búsqueda como "Banco Verde en crecimiento", se mostrarán todas las ubicaciones de Banco Verde en crecimiento cercanas al usuario. Si configuras la cadena de consulta como "1600 Amphitheater Parkway, Mountain View, CA 94043", se seleccionará esa dirección específica, independientemente de la ubicación del usuario.

LatLng

Es un objeto que representa un par de valores de latitud y longitud. Esto se expresa como un par de números de punto flotante de doble precisión que representan los grados de latitud y longitud. A menos que se especifique lo contrario, este objeto debe cumplir con el estándar WGS84. Los valores deben pertenecer a rangos normalizados.

Representación JSON
{
  "latitude": number,
  "longitude": number
}
Campos
latitude

number

La latitud expresada en grados. Debe pertenecer al rango [-90.0, +90.0].

longitude

number

La longitud expresada en grados. Debe pertenecer al rango [-180.0, +180.0].

CreateCalendarEventAction

Abre la app de calendario predeterminada del usuario y comienza el flujo del nuevo evento de calendario con los datos del evento especificados por el agente completados previamente.

Representación JSON
{
  "startTime": string,
  "endTime": string,
  "title": string,
  "description": string
}
Campos
startTime

string (Timestamp format)

Hora de inicio del evento.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizado a Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

endTime

string (Timestamp format)

Hora de finalización del evento.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizado a Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

title

string

Es el título del evento. Se admiten 100 caracteres como máximo.

description

string

Descripción del evento. 500 caracteres como máximo.

OpenUrlAction

Abre la app del navegador web predeterminado del usuario en la URL especificada. Si el usuario tiene instalada una app que está registrada como controlador predeterminado para la URL, se abrirá esta app y se usará su ícono en la IU de la acción sugerida.

Representación JSON
{
  "url": string,
  "application": enum (OpenUrlApplication),
  "webviewViewMode": enum (WebviewViewMode),
  "description": string
}
Campos
url

string

Es la URL que se abrirá. A partir del 1 de noviembre de 2025, el esquema de URL debe ser https:// o http://. Las solicitudes a la API que usen cualquier otro esquema (p.ej., tel:, mailto:, sms:) se rechazarán con un error 400 Bad Request después de esta fecha. La URL debe ser un URI válido, como se define en RFC 3986. Se admiten hasta 2,048 caracteres.

application

enum (OpenUrlApplication)

Es la aplicación, el navegador o la WebView que abre la URL. Para verificar si el dispositivo de un usuario admite el modo de WebView, primero ejecuta una verificación de capacidades. Consulta la documentación para obtener más detalles: https://developers.google.com/business-communications/rcs-business-messaging/guides/build/capabilities.

webviewViewMode

enum (WebviewViewMode)

Modo de lectura para WebView

description

string

Es la descripción de accesibilidad para WebView.

OpenUrlApplication

Tipo de la aplicación de apertura de URL

Enumeraciones
OPEN_URL_APPLICATION_UNSPECIFIED No se especificó. Se usará el navegador para abrir el vínculo.
BROWSER Usa el navegador para abrir la URL.
WEBVIEW Abrir la URL en una ventana integrada de WebView

WebviewViewMode

Es el tipo de modo de visualización de la WebView.

Enumeraciones
WEBVIEW_VIEW_MODE_UNSPECIFIED No se especifica. Para usar WebView, se debe especificar un modo de vista.
FULL Requiere una superposición de pantalla completa con la conversación del chatbot etiquetada en la barra de estado.
HALF Requiere una superposición de media pantalla.
TALL Requiere una superposición de pantalla de tres cuartos.

ShareLocationAction

Este tipo no tiene campos.

Abre el selector de ubicación de la app de RCS para que el usuario pueda elegir una ubicación y enviársela al agente.

StandaloneCard

Tarjeta independiente

Representación JSON
{
  "cardOrientation": enum (StandaloneCard.CardOrientation),
  "thumbnailImageAlignment": enum (StandaloneCard.ThumbnailImageAlignment),
  "cardContent": {
    object (CardContent)
  }
}
Campos
cardOrientation

enum (StandaloneCard.CardOrientation)

Es la orientación de la tarjeta.

thumbnailImageAlignment

enum (StandaloneCard.ThumbnailImageAlignment)

Es la alineación de la vista previa de la imagen para tarjetas independientes con diseño horizontal.

cardContent

object (CardContent)

Contenido de la tarjeta.

StandaloneCard.CardOrientation

Es la orientación de la tarjeta.

Enumeraciones
CARD_ORIENTATION_UNSPECIFIED No se especifica.
HORIZONTAL

Diseño horizontal.

Si el objeto object(CardContent) de una tarjeta enriquecida horizontal contiene el campo media, también debe incluir al menos un campo title, description o suggestions[].

VERTICAL Diseño vertical.

StandaloneCard.ThumbnailImageAlignment

Es la alineación de la vista previa de la imagen para tarjetas independientes con diseño horizontal.

Enumeraciones
THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED No se especifica.
LEFT La vista previa del archivo está alineada a la izquierda.
RIGHT La vista previa del archivo está alineada a la derecha.

MessageTrafficType

Son los tipos de tráfico de mensajes admitidos. Se extenderá el enum para admitir tipos de tráfico adicionales.

Enumeraciones
MESSAGE_TRAFFIC_TYPE_UNSPECIFIED Comportamiento predeterminado: El tipo de tráfico de mensajes se determina según el caso de uso del agente. Actualiza el tipo de tráfico según sea necesario en función del contenido del mensaje. En el caso de los agentes de uso múltiple, no se proporciona ningún valor predeterminado. El tipo de tráfico se debe establecer de forma manual (p.ej., TRANSACCIÓN, PROMOCIÓN).
AUTHENTICATION Son los mensajes de autenticación en el caso de uso del agente de OTP.
TRANSACTION Para mensajes transaccionales en casos de uso de agentes transaccionales o de uso múltiple.
PROMOTION Para mensajes promocionales en casos de uso de agentes promocionales o de uso múltiple
SERVICEREQUEST Son los mensajes sobre los servicios que el usuario aceptó recibir. Se usa en casos de uso de agentes de OTP, transaccionales, promocionales o de uso múltiple.
ACKNOWLEDGEMENT Son los mensajes que confirman la solicitud de cancelación de suscripción del usuario. Se usa en casos de uso de agentes de OTP, transaccionales, promocionales o de uso múltiple.

Métodos

create

Envía un mensaje del agente a un usuario.

delete

Revoca un mensaje del agente que se envió, pero aún no se entregó.