Cumplimiento de Dialogflow CX Messenger

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

Captura de pantalla de texto de Dialogflow Messenger

La respuesta de texto admite texto sin formato y Markdown. Aquí tienes algunos ejemplos de Markdown:

  • *Italic*
  • **Bold**
  • # Title
  • [Link text](Link URL)
  • ![](Image URL)

  • Tablas:

    Header 1 | Header 2
    -------- | --------
    Cell 1   | Cell 2
    

Tipo de respuesta de información

Captura de pantalla del tipo de información de Dialogflow Messenger

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

Captura de pantalla del tipo de descripción de Dialogflow Messenger

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

Captura de pantalla del tipo de imagen de Dialogflow Messenger

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

Captura de pantalla del tipo de vídeo de Dialogflow Messenger

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

Captura de pantalla del tipo de botón de Dialogflow Messenger

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

Captura de pantalla del tipo de lista de Dialogflow Messenger

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

Captura de pantalla del tipo de acordeón de Dialogflow Messenger

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

Captura de pantalla del tipo de chips de Dialogflow Messenger

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

Captura de pantalla del tipo de citas de Dialogflow Messenger

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

Captura de pantalla del tipo de archivo de Dialogflow Messenger

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

Captura de pantalla del tipo de HTML de Dialogflow Messenger

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 la url-allowlist personalización de HTML).
  • div: elemento de contenedor
  • span: 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

Captura de pantalla del tipo de plantilla personalizada de Dialogflow Messenger

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

Captura de pantalla de una tarjeta personalizada de Dialogflow Messenger

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:

Captura de pantalla de ejemplo

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);