Cuando creas una tarjeta personalizada de respuesta, puedes crear respuestas de texto y cargas útiles personalizadas. Las respuestas de texto se usan para las respuestas de texto sin formato y Markdown del agente, y las cargas útiles personalizadas se usan para las respuestas enriquecidas. El formato de carga útil personalizada de todos los tipos de respuesta tiene la siguiente estructura básica:
{
"richContent": [
[
{
"type": "type-id",
...
},
{
"type": "type-id",
...
}
],
[
{
"type": "type-id",
...
},
{
"type": "type-id",
...
}
]
]
}
Ten en cuenta que el valor richContent
permite un array externo y varios arrays internos.
Las respuestas de una matriz interna se combinan en una sola tarjeta visual.
Si el array externo contiene varios arrays internos, se mostrarán varias tarjetas, una por cada array interno.
En las subsecciones restantes se describen los distintos tipos de respuestas que puedes configurar para una carga útil personalizada.
Respuesta de texto rápida
La respuesta de texto admite texto sin formato y Markdown. Aquí tienes algunos ejemplos de Markdown:
*Italic*
**Bold**
# Title
[Link text](Link URL)

Tablas:
Header 1 | Header 2 -------- | -------- Cell 1 | Cell 2
Tipo de respuesta de información
El tipo de respuesta de información es una tarjeta con un título sencillo en la que los usuarios pueden hacer clic o tocar.
En la siguiente tabla se describen los campos:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "info" |
title |
string |
Título de la tarjeta |
subtitle |
string |
Subtítulo de la tarjeta |
image |
object |
Imagen |
image.rawUrl |
string |
URL pública de la imagen |
anchor |
object |
Ancla que se debe seguir cuando se haga clic en el elemento |
anchor.href |
string |
URL del ancla |
anchor.target |
string |
Objetivo del ancla. El valor predeterminado es _blank . |
Por ejemplo:
{
"richContent": [
[
{
"type": "info",
"title": "Info item title",
"subtitle": "Info item subtitle",
"image": {
"rawUrl": "https://example.com/images/logo.png"
},
"anchor": {
"href": "https://example.com"
}
}
]
]
}
Tipo de respuesta de descripción
El tipo de respuesta de descripción es una tarjeta informativa que puede tener varias líneas de texto.
En la siguiente tabla se describen los campos:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "description" |
title |
string |
Título de la tarjeta |
text |
array<string> |
Matriz de cadenas, donde cada cadena se representa en una línea nueva. |
Por ejemplo:
{
"richContent": [
[
{
"type": "description",
"title": "Description title",
"text": [
"This is text line 1.",
"This is text line 2."
]
}
]
]
}
Tipo de respuesta de imagen
El tipo de respuesta de imagen es una tarjeta de imagen en la que los usuarios pueden hacer clic o tocar. El tipo de respuesta admite un chip de referencia que permite añadir la fuente de la imagen como un enlace de ancla junto con un texto descriptivo breve y un icono.
En la siguiente tabla se describen los campos:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "image" |
rawUrl |
string |
URL pública de la imagen |
accessibilityText |
string |
Texto alternativo de la imagen |
reference.text |
string |
Texto que se muestra en el chip de referencia |
reference.anchor.href |
string |
URL del chip de referencia |
reference.anchor.target |
string |
Destino de la ancla en el chip de referencia. El valor predeterminado es _blank . |
reference.image.rawUrl |
string |
Imagen que se muestra en el chip de referencia |
Por ejemplo:
{
"richContent": [
[
{
"type": "image",
"rawUrl": "https://example.com/images/logo.png",
"accessibilityText": "Example logo",
"reference": {
"text": "Logo",
"anchor": {
"href": "https://example.com/images/logo.png"
},
"image": {
"rawUrl": "https://example.com/images/logo_small.png"
}
}
}
]
]
}
Se pueden proporcionar las siguientes variables de CSS:
Propiedades | Política de entrada | Valor predeterminado | Descripción |
---|---|---|---|
df-messenger-image-border-radius |
Opcional | 8 píxeles | Radio del borde de la imagen |
Tipo de respuesta de vídeo
El tipo de respuesta de vídeo renderiza un elemento de vídeo que puede ser un vídeo directo de una URL, que se reproduce directamente en el mensajero, o un enlace a un vídeo.
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "video" |
title |
string |
Título del vídeo opcional |
source |
object |
La fuente del vídeo |
source.type |
string |
Tipo de fuente de vídeo, link o raw |
source.anchor |
object |
Ancla que se debe seguir cuando se haga clic en el elemento |
source.embeddedPlayer |
string |
Un vídeo de tipo link puede insertarse en lugar de enlazarse a la página web del reproductor. Solo se ha implementado para un conjunto conocido de reproductores y admite youtube . |
source.thumbnail |
object |
Miniatura que se mostrará en anchor |
source.thumbnail.rawUrl |
string |
URL de la miniatura |
source.rawUrl |
string |
URL de un vídeo de tipo raw |
Por ejemplo:
{
"richContent": [
[
{
"type": "video",
"source": {
"type": "link",
"anchor": {
"href": "https://www.youtube.com/watch?v=cNfINi5CNbY"
}
}
}
]
]
}
Se pueden proporcionar las siguientes variables de CSS:
Propiedades | Política de entrada | Valor predeterminado | Descripción |
---|---|---|---|
df-messenger-video-width |
Opcional | automático | Anchura de un vídeo (limitada a max-width\: 100% ) |
df-messenger-video-height |
Opcional | automático | Altura de un vídeo |
df-messenger-video-embed-width |
Opcional | 560 px | Ancho de un vídeo insertado (limitado por max-width\: 100% ) |
df-messenger-video-embed-height |
Opcional | 315 px | Altura de un vídeo insertado |
df-messenger-video-border |
Opcional | 1px solid #e0e0e0 | Borde del vídeo |
df-messenger-video-border-radius |
Opcional | 8 píxeles | Radio del borde del vídeo |
Tipo de respuesta del botón
El tipo de respuesta de botón es un botón pequeño con un icono en el que los usuarios pueden hacer clic o tocar.
En la siguiente tabla se describen los campos:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "button" |
icon |
object |
Icono del botón |
icon.type |
string |
Icono de la biblioteca de iconos de Material. El icono predeterminado es una flecha |
icon.color |
string |
Código hexadecimal de color |
image |
object |
Imagen del botón. Tiene prioridad sobre icon . |
image.rawUrl |
string |
URL pública de la imagen |
mode |
string |
Opcional. Si se asigna el valor "blocking", la entrada del usuario se inhabilita hasta que el usuario hace clic en el botón. |
text |
string |
Texto del botón |
anchor |
object |
Ancla que se debe seguir cuando se haga clic en el elemento |
anchor.href |
string |
URL del ancla |
anchor.target |
string |
Objetivo del ancla. El valor predeterminado es _blank . |
event |
object |
Evento de Dialogflow que se activa cuando se hace clic en el botón. |
Por ejemplo:
{
"richContent": [
[
{
"type": "button",
"icon": {
"type": "chevron_right",
"color": "#FF9800"
},
"mode": "blocking",
"text": "Button text",
"anchor": {
"href": "https://example.com"
},
"event": {
"event": ""
}
}
]
]
}
Se pueden proporcionar las siguientes variables de CSS:
Propiedades | Política de entrada | Valor predeterminado | Descripción |
---|---|---|---|
df-messenger-button-border |
Opcional | ninguno | Borde de un botón |
df-messenger-button-border-radius |
Opcional | 8 píxeles | Radio del borde de un botón |
df-messenger-button-font-color |
Opcional | #1f1f1f | Color del texto de un botón |
df-messenger-button-font-family |
Opcional | "Google Sans", "Helvetica Neue", sans-serif | Conjunto de fuentes de un botón |
df-messenger-button-font-size |
Opcional | 14 píxeles | Tamaño de fuente de un botón |
df-messenger-button-padding |
Opcional | 12 píxeles | Relleno de un botón |
df-messenger-button-icon-spacing |
Opcional | 12 píxeles | Espacio entre el icono y el texto del botón |
df-messenger-button-icon-font-size |
Opcional | 24 px | Tamaño del icono del botón |
df-messenger-button-image-size |
Opcional | 24 px | Tamaño de la imagen del botón |
df-messenger-button-image-offset |
Opcional | 0 | Desplazamiento de la imagen del botón. Permite usar valores negativos para desplazar el relleno. |
df-messenger-button-text-align |
Opcional | centro | Alineación del texto de un botón |
df-messenger-button-text-wrap |
Opcional | normal | Usa nowrap para no permitir botones de varias líneas |
Tipo de respuesta de lista
El tipo de respuesta de lista es una tarjeta con varias opciones que los usuarios pueden seleccionar.
La respuesta contiene una matriz de tipos de respuesta list
y divider
.
En la siguiente tabla se describe el tipo list
:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "list" |
title |
string |
Título de la opción |
subtitle |
string |
Subtítulo de la opción |
event |
object |
Evento de Dialogflow que se activa cuando se hace clic en la opción. |
anchor |
object |
Ancla que se debe seguir cuando se haga clic en el elemento |
anchor.href |
string |
URL del ancla |
anchor.target |
string |
Objetivo del ancla. El valor predeterminado es _blank . |
image |
object |
Imagen |
image.rawUrl |
string |
URL pública de la imagen |
En la siguiente tabla se describe el tipo divider
:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "divider" |
Por ejemplo:
{
"richContent": [
[
{
"type": "list",
"title": "List item 1 title",
"subtitle": "List item 1 subtitle",
"event": {
"event": ""
}
},
{
"type": "list",
"title": "List item 2 title",
"subtitle": "List item 2 subtitle",
"event": {
"event": ""
}
}
]
]
}
Se pueden proporcionar las siguientes variables de CSS:
Propiedades | Política de entrada | Valor predeterminado | Descripción |
---|---|---|---|
df-messenger-list-padding |
Opcional | 16 píxeles | Relleno de un elemento de lista |
df-messenger-list-inset |
Opcional | 0 | "Inset" horizontal adicional del elemento de lista (además del relleno) para controlar la expansión del borde entre elementos. |
df-messenger-list-spacing |
Opcional | 10 píxeles | Espacio vertical entre los elementos de la lista |
df-messenger-list-border-bottom |
Opcional | 1px solid #e0e0e0 | Borde entre elementos de la lista |
Tipo de respuesta de acordeón
El tipo de respuesta de acordeón es una tarjeta pequeña en la que un usuario puede hacer clic o tocar para ampliarla y ver más texto.
En la siguiente tabla se describen los campos:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "acordeón" |
title |
string |
Título del acordeón |
subtitle |
string |
Subtítulo del acordeón |
image |
object |
Imagen |
image.rawUrl |
string |
URL pública de la imagen |
text |
string |
Texto del acordeón |
Por ejemplo:
{
"richContent": [
[
{
"type": "accordion",
"title": "Accordion title",
"subtitle": "Accordion subtitle",
"image": {
"rawUrl": "https://example.com/images/logo.png"
},
"text": "Accordion text"
}
]
]
}
Tipo de respuesta del chip de sugerencia
El tipo de respuesta de chip de sugerencia proporciona al usuario final una lista de chips de sugerencia en los que puede hacer clic.
En la siguiente tabla se describen los campos:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "chips" |
options |
array<object> |
Matriz de objetos Option |
options[].mode |
string |
Opcional. Si se asigna el valor "blocking", la entrada del usuario se inhabilita hasta que el usuario hace clic en el chip. |
options[].text |
string |
Texto de la opción |
options[].image |
object |
Opcional: imagen |
options[].image.rawUrl |
string |
Opción de URL pública de la imagen |
options[].anchor |
object |
Opcional, ancla que se debe seguir cuando se haga clic en el elemento. |
options[].anchor.href |
string |
URL del ancla |
options[].anchor.target |
string |
Objetivo del ancla. El valor predeterminado es _blank . |
Por ejemplo:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"mode": "blocking",
"text": "Chip 1",
"image": {
"rawUrl": "https://example.com/images/logo.png"
},
"anchor": {
"href": "https://example.com"
}
},
{
"text": "Chip 2",
"image": {
"rawUrl": "https://example.com/images/logo.png"
},
"anchor": {
"href": "https://example.com"
}
}
]
}
]
]
}
Se pueden proporcionar las siguientes variables de CSS:
Propiedades | Política de entrada | Valor predeterminado | Descripción |
---|---|---|---|
df-messenger-chips-spacing |
Opcional | 10 píxeles | Espacio encima de los chips con respecto al mensaje anterior |
df-messenger-chips-border-color |
Opcional | #e0e0e0 | Color del borde de un chip. |
df-messenger-chips-border-color-hover |
Opcional | #e0e0e0 | Color del borde de un chip al colocar el cursor sobre él |
df-messenger-chips-border-radius |
Opcional | 999 px | Radio del borde de un chip |
df-messenger-chips-background |
Opcional | blanco | Fondo de un chip |
df-messenger-chips-background-hover |
Opcional | rgba(68, 71, 70, 0.08) | Fondo de un chip al colocar el cursor sobre él |
df-messenger-chips-padding |
Opcional | 6px 16px | Relleno de un chip |
df-messenger-chips-font-color |
Opcional | negro | Color del texto de un chip |
df-messenger-chips-font-family |
Opcional | "Google Sans", "Helvetica Neue", sans-serif | Conjunto de fuentes de un chip |
df-messenger-chips-font-size |
Opcional | 14 píxeles | Tamaño del texto de un chip |
df-messenger-chips-font-weight |
Opcional | normal | Grosor de fuente de un chip. |
df-messenger-chips-font-weight-hover |
Opcional | normal | Grosor de la fuente de un chip al colocar el cursor sobre él. |
df-messenger-chips-box-shadow |
Opcional | 0 2px 2px 0 rgba(0, 0, 0, 0.24) | Sombra de un chip |
df-messenger-chips-content-align |
Opcional | flex-start | Alineación vertical del contenido (por ejemplo, la imagen) de un chip. |
df-messenger-chips-text-wrap |
Opcional | nowrap | Usa normal para permitir chips de varias líneas |
Tipo de respuesta de citas
El tipo de respuesta de citas proporciona al usuario final una lista de enlaces de citas en los que se puede hacer clic.
En la siguiente tabla se describen los campos:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "match_citations" |
citations |
array<object> |
Matriz de objetos Citation |
citations[].title |
string |
Título de la cita |
citations[].subtitle |
string |
Subtítulo de la cita (se ignora actualmente) |
citations[].anchor |
object |
Ancla que se debe seguir cuando se haga clic en el elemento |
citations[].anchor.href |
string |
URL del ancla |
citations[].anchor.target |
string |
Objetivo del ancla. El valor predeterminado es _blank . |
Por ejemplo:
{
"richContent": [
[
{
"type": "match_citations",
"citations": [
{
"title": "Source 1",
"subtitle": "",
"anchor": {
"href": "https://example.com/1"
}
},
{
"title": "Source 2",
"subtitle": "",
"anchor": {
"href": "https://example.com/2"
}
}
]
}
]
]
}
Se pueden proporcionar las siguientes variables de CSS:
Propiedades | Política de entrada | Valor predeterminado | Descripción |
---|---|---|---|
df-messenger-citations-spacing |
Opcional | 10 píxeles | Espacio encima de las citas del mensaje anterior |
df-messenger-citations-message-display |
Opcional | bloque | Define la visualización de la nota encima de las citas. Los valores permitidos son block y none . |
df-messenger-citations-message-font-color |
Opcional | #041e49 | Color del texto de la nota situada encima de las citas |
df-messenger-citations-message-font-size |
Opcional | 12 píxeles | Tamaño del texto de la nota situada encima de las citas |
df-messenger-citations-flex-direction |
Opcional | fila | Propiedad flex-direction de las citas. Se recomienda usar row (horizontal con saltos de línea) o column (vertical). |
df-messenger-citations-border-color |
Opcional | #1a73e8 | Color del borde de una cita |
df-messeenger-citations-border-color-hover |
Opcional | #1a73e8 | Color del borde de una cita al colocar el cursor sobre ella |
df-messenger-citations-border-radius |
Opcional | 4 px | Radio del borde de una cita |
df-messenger-citations-padding |
Opcional | 8 píxeles | Espacio de relleno de una cita |
df-messenger-citations-background |
Opcional | blanco | Fondo de una cita |
df-messenger-citations-background-hover |
Opcional | rgba(68, 71, 70, 0.08) | Fondo de una cita al colocar el cursor sobre ella |
df-messenger-citations-font-color |
Opcional | #1a73e8 | Color del texto de una cita |
df-messenger-citations-font-family |
Opcional | "Google Sans", "Helvetica Neue", sans-serif | Conjunto de fuentes de una cita |
df-messenger-citations-font-size |
Opcional | 11 píxeles | Tamaño del texto de una cita |
df-messenger-citations-icon-font-size |
Opcional | 14 píxeles | Tamaño del texto del icono de una cita |
df-messenger-citations-font-weight |
Opcional | normal | Grosor de la fuente de una cita |
df-messenger-citations-font-weight-hover |
Opcional | normal | Grosor de la fuente de una cita al colocar el cursor sobre ella |
df-messenger-citations-icon-spacing |
Opcional | 4 px | Espacio entre el icono y el texto de una cita |
df-messenger-citations-box-shadow |
Opcional | ninguno | Sombra de un cuadro de cita |
Tipo de respuesta de archivos
El tipo de respuesta de archivos muestra una lista de elementos de archivo que contienen un enlace descargable.
En la siguiente tabla se describen los campos:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "files" |
files |
array<object> |
Matriz de objetos File |
files[].name |
string |
Nombre de archivo |
files[].image |
object |
Imagen de archivo |
files[].image.rawUrl |
string |
URL pública del archivo de la imagen |
files[].anchor |
object |
Ancla para descargar el archivo |
files[].anchor.href |
string |
URL del ancla |
files[].anchor.target |
string |
Objetivo del ancla. El valor predeterminado es _blank . |
Por ejemplo:
{
"richContent": [
[
{
"type": "files",
"files": [
{
"name": "instructions.pdf",
"image": {
"rawUrl":
"https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/cloud_download/default/24px.svg"
},
"anchor": {
"href": "https://example.com/instructions.pdf"
}
},
{
"name": "data.csv",
"image": {
"rawUrl":
"https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/csv/default/24px.svg"
},
"anchor": {
"href": "https://example.com/data.csv"
}
}
]
}
]
]
}
Se pueden proporcionar las siguientes variables de CSS:
Propiedades | Política de entrada | Valor predeterminado | Descripción |
---|---|---|---|
df-messenger-files-spacing |
Opcional | 10 píxeles | Espacio encima del archivo con respecto al mensaje anterior |
df-messenger-files-distance |
Opcional | 8 píxeles | Distancia entre los archivos de la lista |
df-messenger-files-flex-direction |
Opcional | fila | Propiedad de dirección de flexión de los archivos. Se recomienda usar row (horizontal con saltos de línea) o column (vertical). |
df-messenger-files-background |
Opcional | blanco | Fondo de un archivo |
df-messenger-files-border |
Opcional | 1px solid #e0e0e0 | Borde de un archivo |
df-messenger-files-border-radius |
Opcional | 999 px | Radio del borde de un archivo |
df-messenger-files-box-shadow |
Opcional | 0 2px 2px 0 rgba(0, 0, 0, 0.24) | Sombra de un cuadro de un archivo |
df-messenger-files-padding |
Opcional | 6px 16px | Relleno de un archivo |
df-messenger-files-font-color |
Opcional | #1f1f1f | Color del texto de un archivo |
df-messenger-files-font-family |
Opcional | "Google Sans", "Helvetica Neue", sans-serif | Conjunto de fuentes de un archivo |
df-messenger-files-font-size |
Opcional | 14 píxeles | Tamaño del texto de un archivo |
df-messenger-files-font-weight |
Opcional | normal | Grosor de fuente de un archivo |
df-messenger-files-background-hover |
Opcional | blanco | Fondo de un archivo al colocar el cursor sobre él |
df-messenger-files-border-hover |
Opcional | 1px solid #e0e0e0 | Borde de un archivo al colocar el cursor sobre él |
df-messenger-files-font-weight-hover |
Opcional | normal | Grosor de la fuente de un archivo al colocar el cursor sobre él. |
df-messenger-files-image-offset |
Opcional | 0 0 0 -8px | Desplazamiento de la imagen de la izquierda |
df-messenger-files-image-size |
Opcional | 18 px | Tamaño de la imagen de la izquierda |
df-messenger-files-text-spacing |
Opcional | 8 píxeles | Distancia entre la imagen y el texto de la izquierda y el texto y el icono de la derecha |
df-messenger-files-icon-offset |
Opcional | 0 -8px 0 0 | Desplazamiento del icono de descarga a la derecha. |
df-messenger-files-icon-size |
Opcional | 18 px | Tamaño del icono de descarga de la derecha. |
df-messenger-files-icon-font-color |
Opcional | #444746 | Color del icono de descarga de la derecha |
Tipo de respuesta HTML
El tipo de respuesta HTML proporciona al usuario final un mensaje HTML.
En la siguiente tabla se describen los campos:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "html" |
html |
string |
Contenido de texto del mensaje. Admite HTML. |
Etiquetas HTML admitidas:
a
: elemento de anclaje (se usa para crear hiperenlaces)b
: elemento de negrita (se usa para poner texto en negrita)i
: elemento de cursiva (se usa para poner texto en cursiva)u
: elemento de subrayado (se usa para subrayar texto)h1
: elemento de encabezado 1 (se usa para el encabezado principal de una página)h2
: elemento de encabezado 2 (se usa para los subtítulos)h3
: elemento de encabezado 3 (se usa para subtítulos de tercer nivel)p
: elemento de párrafo (se usa para crear párrafos de texto).br
: elemento de salto de línea (se usa para crear saltos de línea en un párrafo).table
: elemento de tabla (se usa para crear tablas).tr
: elemento de fila de tabla (se usa para crear filas en una tabla)thead
: elemento de encabezado de tabla (se usa para crear un encabezado en una tabla).th
: datos del encabezado de la tabla o elemento de celda (se usa para crear celdas en una fila de encabezado de tabla).tbody
: elemento del cuerpo de la tabla (se usa para crear un cuerpo en una tabla)td
: datos de tabla o elemento de celda (se usa para crear celdas en una fila de una tabla)ul
: elemento de lista sin ordenar (se usa para crear listas con viñetas)ol
: elemento de lista ordenada (se usa para crear listas numeradas)li
: elemento de elemento de lista (se usa para crear elementos en una lista)img
: elemento de imagen (se usa para mostrar una imagen; consulta también laurl-allowlist
personalización de HTML).div
: elemento de contenedorspan
: elemento de contenedor insertado
Por ejemplo:
{
"richContent": [
[
{
"type": "html",
"html": "<b>Bold text</b> <i>Italic text</i> <u>Underlined text</u>"
}
]
]
}
Aplicar estilos a HTML y Markdown
En el caso de los elementos de anclaje (elemento a
de HTML y enlace de Markdown), se pueden proporcionar las siguientes variables de CSS:
Propiedades | Política de entrada | Valor predeterminado | Descripción |
---|---|---|---|
df-messenger-link-decoration |
Opcional | subrayado | Decoración de un elemento de enlace |
df-messenger-link-font-color |
Opcional | #0b57d0 | Color de fuente de un elemento de enlace no visitado |
df-messenger-link-visited-font-color |
Opcional | #0b57d0 | Color de fuente de un elemento de enlace visitado |
df-messenger-link-hover-font-color |
Opcional | #0b57d0 | Color de la fuente al colocar el cursor sobre un elemento de enlace |
df-messenger-link-background |
Opcional | Transparente | Fondo de un elemento de enlace |
df-messenger-link-padding |
Opcional | 0 | Relleno de un elemento de enlace |
df-messenger-link-border |
Opcional | ninguno | Borde de un elemento de enlace |
df-messenger-link-border-radius |
Opcional | 0 | Radio del borde de un elemento de enlace |
En el caso de los elementos de tabla (elemento table
de HTML y tablas de Markdown), se pueden proporcionar las siguientes variables de CSS:
Propiedades | Política de entrada | Valor predeterminado | Descripción |
---|---|---|---|
df-messenger-table-font-size |
Opcional | 14 píxeles | Tamaño del texto en un elemento de tabla |
df-messenger-table-font-color |
Opcional | #1f1f1f | Color del texto de un elemento de tabla |
df-messenger-table-align |
Opcional | izquierda | Alineación del texto en una celda de una tabla |
df-messenger-table-padding |
Opcional | 0 | Espacio de relleno de una celda de una tabla |
df-messenger-table-border-collapse |
Opcional | independiente | Modo de combinación de bordes de una tabla. Usa separate para habilitar border-radius . |
df-messenger-table-border-radius |
Opcional | 0 | Radio del borde de una tabla |
df-messenger-table-header-border-radius |
Opcional | 0 | Radio del borde del encabezado de la tabla |
df-messenger-table-border-top |
Opcional | ninguno | Borde superior de una fila de una tabla |
df-messenger-table-border-top-first |
Opcional | ninguno | Borde superior de la primera fila de la tabla |
df-messenger-table-border-bottom |
Opcional | ninguno | Borde inferior de una fila de una tabla |
df-messenger-table-border-bottom-last |
Opcional | ninguno | Borde inferior de la última fila de la tabla |
df-messenger-table-border-left |
Opcional | ninguno | Borde izquierdo de una celda de una tabla |
df-messenger-table-border-left-first |
Opcional | ninguno | Borde izquierdo de la primera celda de una fila de la tabla |
df-messenger-table-border-right |
Opcional | ninguno | Borde derecho de una celda de una tabla |
df-messenger-table-border-right-last |
Opcional | ninguno | Borde derecho de la última celda de una fila de una tabla |
df-messenger-table-background |
Opcional | Transparente | Fondo de una fila de una tabla |
df-messenger-table-even-background |
Opcional | Transparente | Fondo de las filas de la tabla con número par |
df-messenger-table-odd-background |
Opcional | Transparente | Fondo de las filas de la tabla con números impares |
df-messenger-table-header-font-size |
Opcional | 14 píxeles | Tamaño del texto de un elemento de encabezado de tabla |
df-messenger-table-header-font-weight |
Opcional | negrita | Grosor de fuente en un elemento de encabezado de tabla |
df-messenger-table-header-font-color |
Opcional | #1f1f1f | Color del texto de un elemento de encabezado de tabla |
df-messenger-table-header-align |
Opcional | izquierda | Alineación del texto de una celda de encabezado de una tabla |
df-messenger-table-header-padding |
Opcional | 0 | Espacio de relleno en una celda de encabezado de tabla |
df-messenger-table-header-border-top |
Opcional | ninguno | Borde superior de la fila de encabezado de la tabla |
df-messenger-table-header-border-bottom |
Opcional | ninguno | Borde inferior de la fila de encabezado de la tabla |
df-messenger-table-header-border-left |
Opcional | ninguno | Borde izquierdo de una celda de la fila de encabezado de la tabla |
df-messenger-table-header-border-left-first |
Opcional | ninguno | Borde izquierdo de la primera celda de la fila de encabezado de la tabla |
df-messenger-table-header-border-right |
Opcional | ninguno | Borde derecho de una celda de la fila de encabezado de la tabla |
df-messenger-table-header-border-right-last |
Opcional | ninguno | Borde derecho de la última celda de una fila de encabezado de tabla |
df-messenger-table-header-background |
Opcional | Transparente | Fondo de la fila de encabezado de la tabla |
Tipo de respuesta de plantilla personalizada
El tipo de respuesta de plantilla personalizada renderiza un elemento personalizado definido en el sitio web del cliente. El elemento no se coloca dentro de una tarjeta y siempre se muestra por sí solo.
En la siguiente tabla se describen los campos:
Nombre | Tipo | Descripción |
---|---|---|
type |
string |
Tipo de respuesta: "custom_template" |
name |
string |
Nombre del elemento personalizado |
payload |
Object |
Carga útil que se va a transferir al elemento personalizado |
Por ejemplo:
{
"richContent": [
[
{
"type": "custom_template",
"name": "custom-element-example",
"payload": {
"text": "Hello World"
}
}
]
]
}
En su sitio web, el elemento personalizado debe registrarse con el nombre exacto
del campo name
de la respuesta. El campo payload
se transfiere al elemento personalizado como dfPayload
después de la construcción (pero antes de connectedCallback
). El campo puede contener JSON arbitrario. Además, dfResponseId
se
pasa al elemento.
A partir de la respuesta del ejemplo, a continuación se muestra un ejemplo de implementación de un elemento personalizado:
class CustomElementExample extends HTMLElement {
constructor() {
super();
// The `dfPayload` field will be provided before `connectedCallback` is
// being called.
this.dfPayload = null;
// The `dfResponseId` field will be provided before `connectedCallback` is
// being called.
this.dfResponseId = null;
// It is not strictly required but recommended to contain the custom
// element in a shadow root.
// https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot
this.renderRoot = this.attachShadow({mode: 'open'});
}
/** Web component Lifecycle method. */
connectedCallback() {
const div = document.createElement('div');
// The `.text` must match the payload's structure in `richContent.payload`.
div.innerText = this.dfPayload.text;
this.renderRoot.appendChild(div);
}
}
(function() {
// Registers the element. This name must match the name in
// `richContent.payload`.
customElements.define('custom-element-example', CustomElementExample);
})();
Combinar tipos de respuesta
Los elementos de mensaje enriquecido individuales de Dialogflow CX Messenger se pueden usar para crear una tarjeta personalizada que se adapte a tus necesidades.
A continuación, se muestra un ejemplo con algunos de los elementos que se indican en la sección de tramitación:
{
"richContent": [
[
{
"type": "image",
"rawUrl": "https://example.com/images/logo.png",
"accessibilityText": "Dialogflow across platforms"
},
{
"type": "info",
"title": "Dialogflow",
"subtitle": "Build natural and rich conversational experiences",
"anchor": {
"href": "https://cloud.google.com/dialogflow/docs"
}
},
{
"type": "chips",
"options": [
{
"text": "Case Studies",
"anchor": {
"href": "https://cloud.google.com/dialogflow/case-studies"
}
},
{
"text": "Docs",
"anchor": {
"href": "https://cloud.google.com/dialogflow/docs"
}
}
]
}
]
]
}
Se pueden proporcionar las siguientes variables de CSS:
Propiedades | Política de entrada | Valor predeterminado | Descripción |
---|---|---|---|
df-messenger-card-background |
Opcional | blanco | Fondo de una tarjeta personalizada |
df-messenger-card-padding |
Opcional | 16 píxeles | Espacio de relleno de los elementos de una tarjeta personalizada |
df-messenger-card-border |
Opcional | 1px solid #e0e0e0 | Borde de una tarjeta personalizada |
df-messenger-card-border-radius |
Opcional | 8 píxeles | Radio del borde de una tarjeta personalizada |
df-messenger-card-border-top-left-radius |
Opcional | 8 píxeles | Radio del borde superior izquierdo de una tarjeta personalizada |
df-messenger-card-border-top-right-radius |
Opcional | 8 píxeles | Radio del borde superior derecho de una tarjeta personalizada |
df-messenger-card-border-bottom-left-radius |
Opcional | 8 píxeles | Radio del borde inferior izquierdo de una tarjeta personalizada |
df-messenger-card-border-bottom-right-radius |
Opcional | 8 píxeles | Radio del borde inferior derecho de una tarjeta |
df-messenger-card-stack-border-top-left-radius |
Opcional | 8 píxeles | El radio del borde superior izquierdo de las tarjetas personalizadas consecutivas anula el radio superior izquierdo |
df-messenger-card-stack-border-top-right-radius |
Opcional | 8 píxeles | El radio de la parte superior derecha del borde de las tarjetas personalizadas consecutivas anula el radio de la parte superior derecha |
df-messenger-card-stack-border-bottom-left-radius |
Opcional | 8 píxeles | El radio del borde inferior izquierdo de las tarjetas personalizadas consecutivas anula el radio inferior izquierdo |
df-messenger-card-stack-border-bottom-right-radius |
Opcional | 8 píxeles | El radio de borde inferior derecho de las tarjetas personalizadas consecutivas anula el radio inferior derecho |
df-messenger-card-box-shadow |
Opcional | 0 2px 2px 0 rgba(0, 0, 0, 0.24) | Sombra de un cuadro de una tarjeta personalizada |
Contenido enriquecido de una herramienta de guía
Puedes usar las herramientas de manual de procedimientos para enviar contenido enriquecido a Dialogflow CX Messenger.
Paso 1: Crea una herramienta addRichContent en tu agente
Crea una herramienta de función llamada addRichContent con los siguientes datos:
Entrada de la herramienta:
properties: {}
type: object
Salida de la herramienta:
properties:
status:
type: string
reason:
type: string
type: object
Paso 2: Indica a tu agente cómo usar esta herramienta
Indica a tu agente cómo usar la herramienta con instrucciones y ejemplos.
Por ejemplo, añade algo como lo siguiente a tus instrucciones:
- Greet the user
- Ask the user what their favorite color is.
At the same time run ${TOOL: addRichContent} to display buttons
for blue, red, yellow, and green.
- Thank the user
Por ejemplo, crea un ejemplo como el siguiente:
Ten en cuenta que la sintaxis del contenido enriquecido es la misma que usarías si devolvieras una carga útil personalizada en un agente virtual basado en flujo.
Paso 3: Define el JavaScript
En el código de la página que aloja df-messenger
,
debe crear código JavaScript
que defina una función que indique a df-messenger
que renderice el contenido enriquecido.
También debes registrar esa función en df-messenger
para que sepa que tiene que ejecutarla cuando el agente virtual la necesite.
Asegúrate de que la variable dfMessenger
se ha declarado
y apunta a tu instancia de df-messenger
.
Aquí tienes un ejemplo de código que puedes usar para ello:
const dfMessenger = document.querySelector('df-messenger');
function addRichContent(customPayload) {
dfMessenger.renderCustomCard(customPayload.richContent);
// add error handling
return Promise.resolve({ status: "OK", reason: null });
}
// substitute your own tool id
const toolId = 'projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID/tools/TOOL_ID'
dfMessenger.registerClientSideFunction(toolId, addRichContent.name, addRichContent);