Recurso: AgentMessage
Es un mensaje que el agente envía a un usuario.
| Representación JSON |
|---|
{ "name": string, "sendTime": string, "contentMessage": { object ( |
| Campos | |
|---|---|
name |
Este campo lo establece la plataforma de RCS para empresas. No lo incluyas cuando crees un mensaje de 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 |
Este campo lo establece la plataforma de RCS para empresas. No lo incluyas cuando crees un mensaje de agente. El campo resuelve la hora en que se envía el mensaje al usuario. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
contentMessage |
Es el contenido del mensaje del agente. |
messageTrafficType |
Es el tipo de tráfico de mensajes. |
richMessageClassification |
Solo salida. Clasifica el mensaje según el modelo de facturación de EE.UU. Para obtener detalles sobre cada tipo de clasificación, consulta la guía Modelo de facturación de EE.UU. Este campo solo se completa para los números de teléfono de EE.UU. |
totalPayloadSizeBytes |
Solo salida. Es el tamaño total de la carga útil del mensaje en bytes. La carga útil cuenta todos los archivos adjuntos en un mensaje de RCS para empresas, que pueden ser videos, imágenes, archivos PDF, etc., excepto el texto del mensaje o las sugerencias. Actualmente, este campo solo se completa para los números de teléfono de EE.UU. |
carrier |
Solo salida. Es la información del operador al que pertenece el número de teléfono del usuario, según los backends de RCS de Google. Actualmente, este campo solo se completa para los números de teléfono de EE.UU. |
| La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta: | |
expireTime |
Opcional. Marca de tiempo en UTC del momento en que este recurso se consideró vencido. Debe ser al menos seis segundos después del envío del mensaje. Si se especifica una marca de tiempo futura de menos de seis segundos después del envío, la plataforma la ajusta automáticamente a seis segundos. Cualquier marca de tiempo que sea igual o anterior a la hora de envío del mensaje devuelve un error Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
ttl |
Opcional. Solo entrada. Es la duración de un mensaje antes de que se revoque automáticamente. El valor mínimo es de seis segundos. Si se especifica una duración positiva de menos de seis segundos, la plataforma la ajusta automáticamente a seis segundos y refleja el valor ajustado en el campo Una duración en segundos con hasta nueve dígitos decimales, que terminan en “ |
| Fin de los campos mutuamente excluyentes. | |
AgentContentMessage
Es el contenido de un mensaje que el agente envía a un usuario.
| Representación JSON |
|---|
{ "suggestions": [ { object ( |
| Campos | |
|---|---|
suggestions[] |
Es una lista de respuestas y acciones sugeridas que aparecen como una lista de chips de sugerencias después del mensaje del agente asociado. Se permite un 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 enviar la respuesta de texto al agente o presionar una acción sugerida para iniciar una acción nativa en el dispositivo. Existen dos tipos de patrones de sugerencias: persistentes y transitorios. Para obtener más detalles, consulta Sugerencias. |
| Es el contenido del mensaje del agente. La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta: | |
text |
Texto codificado en UTF-8. Se admiten hasta 3,072 caracteres. |
fileName |
Es el nombre único de un archivo. La plataforma de RCS para empresas devuelve un nombre de archivo cuando un agente sube un archivo. Obsoleto en favor de uploadedRbmFile que se muestra a continuación. |
uploadedRbmFile |
Contiene identificadores de un archivo y una miniatura que se subieron al servidor de RCS para empresas y que este entrega. |
richCard |
Una tarjeta enriquecida independiente |
contentInfo |
Información sobre un archivo, incluidas su URL y la URL de su miniatura. La plataforma de RCS para empresas entrega contenido desde una caché, pero un agente puede forzar a la plataforma de RCS para empresas a recuperar una versión nueva del contenido y actualizar la caché. |
| Fin de los campos mutuamente excluyentes. | |
UploadedRbmFile
Mensaje que contiene información sobre el archivo y la miniatura
| Representación JSON |
|---|
{ "fileName": string, "thumbnailName": string } |
| Campos | |
|---|---|
fileName |
Es el nombre del archivo que devuelve la plataforma de RCS para empresas cuando se sube el archivo. |
thumbnailName |
Es el nombre de la miniatura que devuelve la plataforma de RCS para empresas cuando se sube la miniatura. |
RichCard
Una tarjeta enriquecida independiente o un carrusel de tarjetas enriquecidas que el agente envía al usuario.
| Representación JSON |
|---|
{ // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "carouselCard": { object ( |
| Campos | |
|---|---|
| Tarjeta independiente o carrusel de tarjetas. La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta: | |
carouselCard |
Carrusel de tarjetas. |
standaloneCard |
Tarjeta independiente. |
| Fin de los campos mutuamente excluyentes. | |
CarouselCard
Carrusel de tarjetas.
| Representación JSON |
|---|
{ "cardWidth": enum ( |
| Campos | |
|---|---|
cardWidth |
Es el ancho de las tarjetas del carrusel. |
cardContents[] |
Es la lista de contenidos 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 del carrusel.
| Enums | |
|---|---|
CARD_WIDTH_UNSPECIFIED |
No se especifica. |
SMALL |
120 dp. |
MEDIUM |
232 dp. |
CardContent
Contenido de la tarjeta
| Representación JSON |
|---|
{ "title": string, "description": string, "media": { object ( |
| Campos | |
|---|---|
title |
Es el título de la tarjeta (opcional). Se admiten hasta 200 caracteres. |
description |
Descripción de la tarjeta (opcional). Se admiten 2,000 caracteres como máximo. |
media |
(Opcional) Contenido multimedia (imagen, GIF, video o PDF) para incluir en la tarjeta |
suggestions[] |
(Opcional) Es una lista de sugerencias para incluir en la tarjeta. Máximo de 4 sugerencias. |
Medios
Es un archivo multimedia dentro de una tarjeta enriquecida.
| Representación JSON |
|---|
{ "height": enum ( |
| Campos | |
|---|---|
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 un diseño horizontal, usa |
| Contenido multimedia La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta: | |
fileName |
Es el nombre único del archivo que devuelve la plataforma de RCS para empresas cuando se sube el archivo. Obsoleto en favor de uploadedRbmFile que se muestra a continuación. |
uploadedRbmFile |
Contiene identificadores de un archivo y una miniatura que se subieron al servidor de RCS para empresas y que este entrega. |
contentInfo |
Información sobre un archivo, incluidas su URL y la URL de su miniatura. La plataforma de RCS para empresas entrega contenido desde una caché, pero un agente puede forzar a la plataforma de RCS para empresas a recuperar una versión nueva del contenido y actualizar la caché. |
| Fin de los campos mutuamente excluyentes. | |
ContentInfo
Mensaje que contiene la información del contenido.
| Representación JSON |
|---|
{ "fileUrl": string, "thumbnailUrl": string, "forceRefresh": boolean } |
| Campos | |
|---|---|
fileUrl |
Es la URL de acceso público del archivo. La plataforma de RCS para empresas determina el tipo de MIME del archivo a partir del campo content-type de los encabezados HTTP cuando la plataforma 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 redireccionamiento. |
thumbnailUrl |
(Opcional, solo para archivos de imagen, audio y video) Es la URL de acceso público de la miniatura. Tamaño máximo de 100 kB Si no proporcionas una URL de miniatura, la plataforma de RCS para empresas 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 redireccionamiento. |
forceRefresh |
Si se establece, la plataforma de RCS para empresas recupera el archivo y la miniatura de las URLs especificadas, incluso si la plataforma tiene copias almacenadas en caché del archivo (o de la miniatura). |
Media.Height
Altura de medios
| Enums | |
|---|---|
HEIGHT_UNSPECIFIED |
No se especifica. |
SHORT |
112 dp. |
MEDIUM |
168 dp |
TALL |
264 dp. |
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 |
|---|
{ "suggestionDisplay": enum ( |
| Campos | |
|---|---|
suggestionDisplay |
Opcional. Controla el comportamiento de visualización de la sugerencia. Solo se aplica a los mensajes de texto sin formato que se envían a los clientes de Mensajes de Google (versión 20260225.00 o posterior). Este campo solo se debe establecer en las sugerencias independientes asociadas con mensajes de texto sin formato. El servidor rechazará el mensaje si este campo se aplica a sugerencias en tarjetas enriquecidas o sugerencias independientes con transferencias de archivos. Este parámetro de configuración solo se serializa para Mensajes de Google; otros clientes (como iOS o Samsung) lo ignoran. |
| Una respuesta o una acción sugeridas La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta: | |
reply |
Los usuarios pueden presionar una respuesta sugerida para enviar la respuesta de texto al agente. |
action |
Los usuarios pueden presionar una acción sugerida para iniciar la acción nativa correspondiente en el dispositivo. |
| Fin de los campos mutuamente excluyentes. | |
SuggestedReply
Cuando se presiona, envía la respuesta de texto al agente.
| Representación JSON |
|---|
{ "text": string, "postbackData": string } |
| Campos | |
|---|---|
text |
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: 25 caracteres. |
postbackData |
Es la carga útil codificada en Base64 que recibe el agente en un evento de 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, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "dialAction": { object ( |
| Campos | |
|---|---|
text |
Es el texto que se muestra en la acción sugerida. Máximo: 25 caracteres. |
postbackData |
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 |
Es la URL de respaldo (opcional) que se usará si un cliente no admite una acción sugerida. Las URLs de respaldo 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. |
| Es la acción nativa que se inicia en el dispositivo cuando el usuario presiona la acción sugerida. La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta: | |
dialAction |
Abre la app de marcador predeterminada del usuario con el número de teléfono especificado por el agente. |
viewLocationAction |
Abre la app de mapas predeterminada del usuario y selecciona la ubicación especificada por el agente o busca alrededor de la ubicación del usuario según una consulta especificada por el agente. |
createCalendarEventAction |
Abre la app de calendario predeterminada del usuario y, luego, inicia el flujo de eventos de calendario nuevos con los datos de eventos especificados por el agente precompletados. |
openUrlAction |
Abre la app de navegador web predeterminada del usuario en la URL proporcionada. Si el usuario tiene instalada una app que está registrada como el controlador predeterminado de la URL, se abrirá esta app y se usará su ícono en la IU de la acción sugerida. |
shareLocationAction |
Abre el selector de ubicación de la app de RCS para que el usuario pueda elegir una ubicación y enviarla al agente. |
| Fin de los campos mutuamente excluyentes. | |
DialAction
Abre la app de marcador predeterminada del usuario con el número de teléfono especificado por el agente.
| Representación JSON |
|---|
{ "phoneNumber": string } |
| Campos | |
|---|---|
phoneNumber |
Es el 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 alrededor de la ubicación del usuario según una consulta especificada por el agente.
| Representación JSON |
|---|
{
"latLong": {
object ( |
| Campos | |
|---|---|
latLong |
(Opcional) La latitud y la longitud de la ubicación especificada. |
label |
(Opcional) Es la etiqueta del pin que se colocó en latLong. |
query |
(Opcional) En lugar de especificar un latLong (y, de manera opcional, una etiqueta), el agente puede especificar una cadena de consulta. En el caso de las apps de mapas predeterminadas que admiten la funcionalidad de búsqueda (incluida Google Maps), presionar esta acción sugerida genera una búsqueda de ubicación centrada en la ubicación actual del usuario. Si la consulta es lo suficientemente específica, los agentes pueden usarla para seleccionar cualquier ubicación del mundo. Por ejemplo, si configuras la cadena de consulta como "Banco Verde", se mostrarán todas las ubicaciones de Banco Verde que se encuentren cerca del 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 dobles para representar la latitud en grados y la longitud en grados. 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 |
La latitud expresada en grados. Debe pertenecer al rango [-90.0, +90.0]. |
longitude |
La longitud expresada en grados. Debe pertenecer al rango [-180.0, +180.0]. |
CreateCalendarEventAction
Abre la app de calendario predeterminada del usuario y, luego, inicia el flujo de eventos de calendario nuevos con los datos de eventos especificados por el agente precompletados.
| Representación JSON |
|---|
{ "startTime": string, "endTime": string, "title": string, "description": string } |
| Campos | |
|---|---|
startTime |
Es la hora de inicio del evento. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
endTime |
Es la hora de finalización del evento. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
title |
Título del evento. Se admiten 100 caracteres como máximo. |
description |
Es la descripción del evento. 500 caracteres como máximo. |
OpenUrlAction
Abre la app de navegador web predeterminada del usuario en la URL especificada. Si el usuario tiene instalada una app que está registrada como el controlador predeterminado de 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 ( |
| Campos | |
|---|---|
url |
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 de solicitud incorrecta 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 |
La URL abre la aplicación, el navegador o la vista web. 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 |
Modo de vista para la vista web. |
description |
Descripción de accesibilidad para la vista web. |
OpenUrlApplication
Tipo de aplicación de apertura de URL
| Enums | |
|---|---|
OPEN_URL_APPLICATION_UNSPECIFIED |
No se especificó, se usará el navegador para abrir. |
BROWSER |
Usa el navegador para abrir la URL. |
WEBVIEW |
Abrir la URL en una ventana de vista web integrada |
WebviewViewMode
Es el tipo de modo de vista de la WebView.
| Enums | |
|---|---|
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. |
Suggestion.SuggestionDisplay
Es el comportamiento de visualización de las sugerencias de texto independientes.
| Enums | |
|---|---|
SUGGESTION_DISPLAY_UNSPECIFIED |
Los clientes aplican el comportamiento de visualización predeterminado:
|
PERSISTENT |
La sugerencia permanece visible de forma persistente dentro de la burbuja de mensaje, incluso cuando se agregan mensajes nuevos a la conversación. |
StandaloneCard
Tarjeta independiente
| Representación JSON |
|---|
{ "cardOrientation": enum ( |
| Campos | |
|---|---|
cardOrientation |
Es la orientación de la tarjeta. |
thumbnailImageAlignment |
Alineación de la vista previa de la imagen para tarjetas independientes con diseño horizontal. |
cardContent |
Contenido de la tarjeta. |
StandaloneCard.CardOrientation
Es la orientación de la tarjeta.
| Enums | |
|---|---|
CARD_ORIENTATION_UNSPECIFIED |
No se especifica. |
HORIZONTAL |
Diseño horizontal. Si el campo |
VERTICAL |
Diseño vertical. |
StandaloneCard.ThumbnailImageAlignment
Alineación de la vista previa de la imagen para tarjetas independientes con diseño horizontal.
| Enums | |
|---|---|
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
Tipos de tráfico de mensajes admitidos. La enumeración se extenderá para admitir tipos de tráfico adicionales. Ten en cuenta que, si bien el caso de uso del agente puede proporcionar orientación sobre el tipo de tráfico que se debe usar, no se aplica ninguna API en su relación.
| Enums | |
|---|---|
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. No se proporciona un valor predeterminado para los agentes de uso múltiple. El tipo de tráfico se debe configurar de forma manual (p.ej., TRANSACCIÓN, PROMOCIÓN). |
AUTHENTICATION |
Para los mensajes de autenticación (recomendado para el caso de uso de agente de OTP) |
TRANSACTION |
Para los mensajes transaccionales (se recomienda para los casos de uso de agentes transaccionales o de usos múltiples). |
PROMOTION |
Para mensajes promocionales (se recomienda para casos de uso de agentes promocionales o de usos múltiples) |
SERVICEREQUEST |
Para mensajes sobre servicios que el usuario aceptó recibir (se recomienda para casos de uso de agentes de OTP, transaccionales, promocionales o de usos múltiples). |
ACKNOWLEDGEMENT |
Para los mensajes que confirman la solicitud de cancelación de la suscripción del usuario (se recomienda para los casos de uso de agentes de OTP, transaccionales, promocionales o de uso múltiple). |
RichMessageClassification
Solo para la facturación en EE.UU.: Detalles sobre las clasificaciones de mensajes que se usan para la facturación.
| Representación JSON |
|---|
{
"classificationType": enum ( |
| Campos | |
|---|---|
classificationType |
|
segmentCount |
Es la cantidad de segmentos de 160 bytes para el texto del mensaje, siempre redondeada hacia arriba. Se calcula solo a partir de la longitud total en bytes UTF-8 del contenido de texto. Se excluyen los datos de las respuestas sugeridas o acciones. Por ejemplo, un mensaje de texto de 300 bytes tiene un segmentCount de 2. Este campo solo se completa para los tipos RICH_MESSAGE. |
RichMessageClassificationType
Solo para la facturación en EE.UU.: Especifica la clasificación del mensaje para la facturación.
Importante: Los operadores de EE.UU. establecen el precio de los tipos de mensajes facturables que se describen en esta página. Los operadores de EE.UU. también determinan el cargo final del desarrollador por enviar mensajes de RCS para empresas. Para obtener más información sobre los precios o la facturación, comunícate con los representantes correspondientes del operador.
| Enums | |
|---|---|
RICH_MESSAGE_CLASSIFICATION_TYPE_UNSPECIFIED |
No especificado |
RICH_MESSAGE |
El mensaje se clasifica como ENRIQUECIDO en las siguientes condiciones: 1. No contiene tarjetas enriquecidas. 2. No contiene archivos adjuntos. 3. Las acciones sugeridas que contenga deben ser una acción de marcar o una acción de abrir una URL que no use un WebView. |
RICH_MEDIA_MESSAGE |
Cualquier mensaje que no cumpla con los criterios de RICH_MESSAGE. Esto incluye los mensajes que contienen una tarjeta enriquecida, un archivo multimedia o cualquier acción sugerida que no sea Marcar o Abrir URL en el navegador. |
SUGGESTED_ACTION_CLICK |
Representa que un usuario presionó una acción sugerida (no una respuesta sugerida). Esta clasificación se aplica solo a las acciones del usuario y aparece exclusivamente en la carga útil de UserMessage de un webhook. No se aplica a los mensajes de aplicación a persona (A2P). |
Métodos |
|
|---|---|
|
Envía un mensaje del agente a un usuario. |
|
Revoca un mensaje del agente que se envió, pero que aún no se entregó. |