Dialogflow CX Messenger

Esta integración proporciona un diálogo de chat personalizable para tu agente que puedes incorporar en tu sitio web.

Interfaz de Dialogflow CX Messenger

Configuración

Esta integración te permite proporcionar acceso autenticado o no autenticado a las consultas de los usuario-agentes de los usuarios finales.

Configuración no autenticada

Para configurar el acceso no autenticado a tu agente de Dialogflow CX Messenger, sigue estos pasos:

  1. Ve a la consola de Dialogflow CX.
  2. Elige tu proyecto de Google Cloud.
  3. Selecciona el agente.
  4. Selecciona la pestaña Administrar.
  5. Haz clic en Integrations, en el menú de la barra lateral izquierda.
  6. Haz clic en Conectar en Dialogflow CX Messenger.
  7. Se abrirá un cuadro de diálogo de configuración.
  8. Si la integración se configuró previamente para este agente, verás el código HTML incorporable. Independientemente de si deseas que se autentique o no, haz clic en el botón Inhabilitar… en la parte inferior del diálogo para que puedas volver a establecer la configuración en el siguiente paso.
  9. Selecciona un entorno.
  10. Selecciona API no autenticada.
  11. Selecciona un estilo.
  12. Opcionalmente, restringe el acceso al dominio.
  13. Haz clic en Habilitar la API no autenticada.
  14. En el cuadro de diálogo, se mostrará el código HTML que puedes incorporar en tu sitio web. Copia este código.
  15. Haz clic en Listo.

Configuración autenticada

Para configurar el acceso autenticado a tu agente de Dialogflow CX Messenger, sigue estos pasos:

  1. Ve a la consola de Dialogflow CX.
  2. Elige tu proyecto de Google Cloud.
  3. Selecciona el agente.
  4. Selecciona la pestaña Administrar.
  5. Haz clic en Integrations, en el menú de la barra lateral izquierda.
  6. Haz clic en Conectar en Dialogflow CX Messenger.
  7. Se abrirá un cuadro de diálogo de configuración.
  8. Si la integración se configuró previamente para este agente, verás el código HTML incorporable. Independientemente de si deseas que se autentique o no, haz clic en el botón Inhabilitar… en la parte inferior del diálogo para que puedas volver a establecer la configuración en el siguiente paso.
  9. Selecciona un entorno.
  10. Selecciona API autorizada.
  11. Selecciona un estilo.
  12. Opcionalmente, restringe el acceso al dominio.
  13. Haz clic en Habilitar la API autorizada.
  14. En el cuadro de diálogo, se mostrará el código HTML que puedes incorporar en tu sitio web. Copia este código.
  15. Haz clic en Listo.
  16. Configura el cliente de OAuth:
    1. Crea una pantalla de consentimiento de OAuth para tu organización. Agrega https://www.googleapis.com/auth/cloud-platform como un permiso obligatorio.
    2. Crea un ID de cliente de OAuth 2.0. En Orígenes autorizados de JavaScript, especifica los orígenes HTTP que pueden alojar y consultar tu agente. Por ejemplo, https://your-company.com.
    3. Proporciona permiso a los usuarios finales para que consulten tu agente. Agrega a cada uno de tus usuarios finales o a un grupo como entidad con los roles de cliente de API de Dialogflow y Consumidor de Service Usage.

Incorporar

Pega el código de inserción que copiaste antes en una página web de tu sitio web. Los elementos HTML <script> y <df-messenger> deben estar en el elemento <body> de la página.

Si usas una integración autenticada, establece el atributo oauth-client-id de <df-messenger> en tu ID de cliente de OAuth. Y si quieres usar las identidades de los usuarios finales para la autenticación de herramientas, establece el atributo access-token-name con el nombre que quieras. Luego, usa el token del portador con el valor $session.params.ACCESS_TOKEN_NAME para la autenticación de la herramienta.

Actualiza cualquier otro atributo que lo requiera.

Para permitir diseños responsivos, agrega también lo siguiente a tu elemento <head>:

<meta name="viewport" content="width=device-width, initial-scale=1">

Personalización

Puedes aplicar muchas personalizaciones de HTML y personalizaciones de CSS para modificar la apariencia y el comportamiento del diálogo de chat.

JavaScript

Existen muchos eventos de JavaScript y funciones de JavaScript que puedes usar para interactuar con el diálogo de chat.

Ejemplo

En el siguiente ejemplo, se muestra la personalización de HTML, la personalización de CSS y el control de eventos de JavaScript:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
  <meta http-equiv="Pragma" content="no-cache" />
  <meta http-equiv="Expires" content="0" />
  <title>My chat</title>
  <style>
    df-messenger {
      /*
       * Customize as required. df-messenger will fill the
       * space that is provided.
      */
      position: absolute;
      right: 0;
      top: 0;
      bottom: 0;
      width: 320px;
    }
  </style>
  <script src="https://www.gstatic.com/dialogflow-console/fast/df-messenger/prod/v1/df-messenger.js"></script>
</head>
<body>
<df-messenger
    location="global" <!-- TODO: update agent location as needed -->
    project-id="my-project-id" <!-- TODO: update project ID -->
    agent-id="my-agent-id" <!-- TODO: update agent ID -->
    language-code="en" <!-- TODO: update agent language as needed -->
>
  <df-messenger-chat
      chat-title="Agent Name" <!-- TODO: update dialog title as needed -->
  ></df-messenger-chat>
</df-messenger>

<script>
  // An example of handling events: Navigate to the first suggested URL.
  document.addEventListener('df-url-suggested', (event) => {
    if (Array.isArray(event.detail.suggestedUrls) &&
      event.detail.suggestedUrls.length) {
      window.location.href = event.detail.suggestedUrls[0];
  }
});
</script>
</body>
</html>

Entrega

Puedes usar muchos tipos de respuestas de entrega para las respuestas del agente.

Comentarios sobre la respuesta

Si los comentarios sobre las respuestas están habilitados, el diálogo de chat agrega de forma predeterminada los botones Me gusta y No me gusta a la interfaz de usuario. Durante la conversación, puedes hacer clic en estos botones para proporcionar comentarios sobre las respuestas del agente. Si haces clic en No me gusta, puedes proporcionar un motivo para los comentarios negativos.

Componente de comentarios personalizados

Para especificar un elemento de comentarios personalizado, debes definir un elemento personalizado nuevo en el sitio web. Para enviar los comentarios, el elemento debe emitir un evento df-custom-submit-feedback-clicked. El campo detail contenido debe ser una cadena.

class CustomFeedbackElement extends HTMLElement {
  constructor() {
    super();
    // It is not strictly required but recommended to contain the custom
    // element in a shadow root.
    this.renderRoot = this.attachShadow({mode: 'open'});
  }

  // Web component Lifecycle method.
  connectedCallback() {
    const wrapper = document.createElement('div');

    // Build the component as required.
    const button = document.createElement('button');
    button.innerText = 'Submit';
    button.addEventListener('click', () => {
      this._onSubmitClick();
    });
    wrapper.appendChild(button);

    this.renderRoot.appendChild(wrapper);
  }

  // Called when Submit button is clicked.
  _onSubmitClick() {
    const event = new CustomEvent("df-custom-submit-feedback-clicked", {
      // `detail` may be any string,
      // this will be sent to the backend to be stored.
      detail: JSON.stringify({
        "usefulness": 2,
        "accuracy": 3,
      }),
      // Required to propagate up the DOM tree
      // https://developer.mozilla.org/en-US/docs/Web/API/Event/bubbles
      bubbles: true,
      // Required to propagate across ShadowDOM
      // https://developer.mozilla.org/en-US/docs/Web/API/Event/composed
      composed: true,
   });
   this.dispatchEvent(event);
  }
}

(function() {
  // Registers the element. This name must be "df-external-custom-feedback".
  customElements.define('df-external-custom-feedback', CustomFeedbackElement);
})();

Depuración

Para probar tu agente con Dialogflow CX Messenger de forma local, sigue estos pasos:

  • Incorpora el elemento Dialogflow CX Messenger en una página como se describió anteriormente.
  • Inicia un servidor HTTP local para esa página con un puerto específico.
  • Abre esa página en http://localhost:port_number.