Saltar al contenido
Mintlify
Assistant

Widget de Mintlify

Instala y configura el widget de Mintlify para incrustar el asistente de IA entrenado con tu contenido en cualquier sitio web o aplicación web.

El asistente responde preguntas en tu sitio de Mintlify. Para incrustar la misma capacidad en otro sitio o aplicación web, usa el widget. Con el widget, puedes ofrecer a tus usuarios acceso a un chat de IA entrenado con tu contenido en el panel de tu producto, sitio de marketing, portal de soporte u otros lugares.

Añade el widget a cualquier sitio web o aplicación web con un script alojado. El widget gestiona su propio activador y se renderiza dentro de un Shadow DOM cerrado, lo que evita que los estilos de tu aplicación afecten al widget.

La única opción de navegador obligatoria es el ID público del widget. Gestiona el estado de activación, los orígenes permitidos, los adjuntos, la protección contra bots y el formulario de contacto de deflection desde tu panel. Configura las preguntas iniciales específicas del embed y un correo electrónico de soporte en la configuración del navegador.

Requisitos previos

Activar el widget

  1. Ve a la página Widget de tu despliegue.
  2. Activa el widget.
  3. Añade los orígenes permitidos donde vas a incrustar el widget.
  4. Copia el ID del widget.

Instalar y configurar

Usa el playground para configurar la presentación, las opciones visuales y los hooks de observación de tu widget. El bloque de código de instalación se actualiza a medida que cambias cada opción.

Reemplaza YOUR_WIDGET_ID en el código generado por el ID del widget de la página Widget de tu panel.

Después de añadir el código generado a tu sitio, recarga la página. Confirma que aparece el activador y, luego, haz clic en él y envía una pregunta de prueba para verificar que el widget está conectado.

Los scripts de módulo se difieren y se ejecutan en el orden del documento. Mantén el cargador alojado antes del bloque de inicialización cuando instales el widget con HTML, o el widget no se montará.

Establece defaultOpen en true para abrir el widget inmediatamente después de su primer montaje:

await window.MintlifyAssistant.init({
  id: "YOUR_WIDGET_ID",
  defaultOpen: true,
});

defaultOpen es false por defecto y solo se aplica a la primera inicialización. Llamar a init() de nuevo con el mismo ID de widget y endpoint de API no vuelve a abrir un widget que un visitante haya cerrado. Usa open() y close() para controlarlo después de la inicialización.

Espera a init() antes de llamar a otros métodos. Mantén el activador integrado o abre la presentación configurada desde cualquier botón de tu aplicación.

await window.MintlifyAssistant.init({
  id: "YOUR_WIDGET_ID",
  supportEmail: "[email protected]",
  starterQuestions: [
    "How do I get started with Mintlify?",
    "How do I customize my docs?",
    "How do I deploy my docs?",
  ],
});

document.querySelector("#help-button").addEventListener("click", () => {
  void window.MintlifyAssistant.open({
    source: "help-button",
    focus: true,
  });
});

Para abrir el widget y enviar inmediatamente una pregunta, llama a ask():

await window.MintlifyAssistant.ask("How do I authenticate?", {
  source: "authentication-guide",
  open: true,
  focus: true,
});

Los metadatos de eventos y las solicitudes incluyen el valor source, que te permite distinguir las interacciones integradas de tus puntos de entrada personalizados.

Usa update() para cambiar la apariencia, las etiquetas, el correo de soporte, las preguntas iniciales o los hooks sin borrar la conversación actual. Solo se cambian los campos proporcionados.

await window.MintlifyAssistant.update({
  appearance: {
    theme: "dark",
    accent: "#7c3aed",
  },
  labels: {
    title: "Docs copilot",
    trigger: "Ask docs",
  },
  supportEmail: "[email protected]",
  starterQuestions: [
    "How do I get started?",
    "How do I manage my account?",
  ],
});

Pasa null para restaurar un campo o grupo a su valor por defecto, eliminar el correo de soporte o restaurar una lista vacía de preguntas iniciales:

await window.MintlifyAssistant.update({
  appearance: {
    accent: null,
  },
  supportEmail: null,
  starterQuestions: null,
  hooks: null,
});

Cambiar identity inicia una nueva conversación. Cambiar el ID del widget o el endpoint de la API requiere llamar a destroy() antes de un nuevo init().

Puedes proporcionar supportEmail y starterQuestions durante la inicialización y cambiarlos más tarde con update(). Estos valores se aplican al embed actual y no se heredan desde tu panel de Mintlify.

Usa filter para restringir lo que el asistente recupera cuando tu documentación está organizada por idioma o versiones. Omite un campo para buscar en todos sus valores.

await window.MintlifyAssistant.init({
  id: "YOUR_WIDGET_ID",
  filter: {
    language: "en",
    version: "v2",
  },
});

language debe ser un código de idioma admitido, como en, es, fr o zh-Hans. version coincide con el nombre de la versión configurada en tu panel.

Cambia los filtros en tiempo de ejecución con update() cuando el visitante cambie de idioma o versión en tu aplicación:

await window.MintlifyAssistant.update({
  filter: {
    language: "fr",
    version: null,
  },
});

Pasa null en un campo para borrar ese filtro, o filter: null para borrar ambos.

AssistantConfig

Pasa este objeto a init().

OptionTypeDescription
idstringID público del widget desde el panel de Mintlify.
endpointstringSobrescribe el endpoint alojado de la API del widget.
identitystringToken firmado de identidad del usuario final. Omítelo para visitantes anónimos.
noncestringNonce de CSP copiado a los recursos creados por el widget.
defaultOpenbooleanAbre el widget en su primera inicialización. El valor por defecto es false.
appearanceAssistantAppearanceSobrescrituras visuales y de presentación.
labelsAssistantLabelsSobrescrituras de texto orientado al cliente.
supportEmailstringEstablece la dirección de soporte que se muestra en la barra de herramientas del widget para este embed.
starterQuestionsstring[]Establece hasta tres sugerencias de estado vacío para este embed.
filterAssistantFilterRestringe la recuperación a un idioma y versión de la documentación.
hooksAssistantHooksObservadores de eventos y errores.

AssistantAppearance

OptionValuesDescription
variantwidget, modal, panelControla si el asistente se abre como popover anclado, diálogo centrado o panel lateral adaptable.
themelight, dark, systemEstablece el esquema de color del widget. El valor por defecto es system.
accentCSS colorEstablece el color de los controles principales.
radiusCSS border radiusEstablece el radio del panel, como 18px.
fontCSS font familyUsa una fuente ya cargada por tu aplicación. Por defecto se incluye Inter.
sidetop, bottom, left, right, inline-start, inline-endColoca el activador integrado en un borde de la pantalla.
alignstart, center, endAlinea el activador a lo largo del borde seleccionado.
dismissOnInteractOutsidebooleanControla si las interacciones de puntero o foco fuera del asistente lo cierran.
logoURL or { light, dark }Reemplaza la marca predeterminada de Mintlify.
zIndexnumberCambia el orden de apilado del host del widget.

No se admiten sobrescrituras arbitrarias de CSS ni de paleta neutra. El Shadow DOM cerrado protege tanto a tu aplicación como al widget de regresiones de estilos entre sitios.

AssistantFilter

OptionTypeDescription
languagestring or nullRestringe la recuperación a un código de idioma admitido, como en. Omítelo para buscar en todos los idiomas.
versionstring or nullRestringe la recuperación a una versión de la documentación, como v2. Omítela para buscar en todas las versiones.

AssistantLabels

OptionValuesDescription
titlestring or nullEstablece el encabezado del panel. El valor por defecto es Assistant.
triggerstring or nullEstablece el texto del widget compacto y del activador del panel.
placeholderstring or nullEstablece el marcador de posición del compositor y del activador modal.
disclaimerstring, false, or nullEstablece el aviso del estado vacío. Pasa false para ocultarlo.
suggestionsstring or nullEstablece el encabezado sobre las preguntas iniciales. El valor por defecto es Suggestions.

AssistantHooks

hooks: {
  event(event) {
    console.log(event.type, event.actor, event.source);
  },
  error(error) {
    console.error(error.code, error.retryable, error.status);
  },
}

El hook event recibe metadatos de ciclo de vida e interacción para init, open, close, ask, update, reset, navigate y destroy. Los eventos no incluyen el texto de la pregunta, la identidad, la sesión ni los tokens CAPTCHA.

El hook error recibe un code estable, un booleano retryable y un status HTTP opcional. Las excepciones lanzadas por cualquiera de los hooks no interrumpen el widget.

AssistantOpenOptions

Pasa este objeto opcional a open().

OptionTypeDescription
sourcestringAtribución definida por el cliente incluida en eventos y solicitudes.
focusbooleanEnfoca el compositor después de abrir. El valor por defecto es true.

AssistantAskOptions

Pasa este objeto opcional después de la cadena de la pregunta en ask().

OptionTypeDescription
sourcestringAtribución definida por el cliente incluida en eventos y solicitudes.
openbooleanAbre el panel antes de enviar. El valor por defecto es true.
focusbooleanEnfoca el compositor al abrir. El valor por defecto es true.

AssistantUpdate

Pasa este objeto a update(). Todos los campos son opcionales y null restaura su valor por defecto.

OptionTypeDescription
identitystring or nullCambia la identidad firmada e inicia una nueva conversación.
appearanceAssistantAppearance or nullAplica parches en profundidad a la configuración de apariencia.
labelsAssistantLabels or nullAplica parches en profundidad al texto orientado al cliente.
supportEmailstring or nullCambia la dirección de soporte. Pasa null para eliminarla.
starterQuestionsstring[] or nullCambia hasta tres sugerencias. Pasa null para restaurar una lista vacía.
filterAssistantFilter or nullAplica parches en profundidad a los filtros de recuperación. Pasa null para borrar todos los filtros.
hooksAssistantHooks or nullAplica parches en profundidad a los observadores de eventos y errores.

API del navegador

MethodParameter typesDescription
init(config)AssistantConfigCarga y monta el widget. Es la promesa de disponibilidad para todos los demás métodos.
open(options)AssistantOpenOptionsAbre la presentación configurada.
close()NingunoCierra el widget.
ask(question, options)string, AssistantAskOptionsAbre el widget si se solicita y envía una pregunta.
update(config)AssistantUpdateAplica parches en profundidad a la identidad mutable, apariencia, textos y observadores.
reset()NingunoInicia una conversación nueva.
destroy()NingunoElimina el widget y libera sus recursos del navegador.

Las capturas de conversación permanecen privadas al widget. Cada método se resuelve en void.

Content Security Policy

Si tu sitio usa una Content Security Policy, permite los orígenes requeridos por las funciones habilitadas de tu widget:

DirectiveSourceRequired for
script-srchttps://widget.mintlify.comCargador y runtime del widget
connect-srchttps://widget.mintlify.comManifiesto de versión del widget
connect-srchttps://api.mintlify.comConfiguración, mensajes y comentarios
connect-srchttps://ph.mintlify.comAnalíticas internas del widget
font-srchttps://widget.mintlify.comFuente Inter incluida opcional
script-src, connect-src, and frame-srchttps://challenges.cloudflare.comProtección contra bots Turnstile
script-srchttps://js.hcaptcha.comProtección contra bots hCaptcha
connect-src and frame-srchttps://*.hcaptcha.comProtección contra bots hCaptcha

Una política script-src estricta debe autorizar tanto el cargador como el script de inicialización. Una política style-src estricta debe autorizar el nonce que pasas a init(), que el widget copia a su hoja de estilos inyectada. Pasar nonce a init() lo propaga solo a los recursos que el widget crea después de la inicialización.

Ctrl+I