Skip to content
Mintlify
Mintlify
Assistant

Widget Mintlify

Installez et configurez le widget Mintlify pour intégrer l'assistant IA entraîné sur votre contenu dans n'importe quel site web ou application web.

L’assistant répond aux questions sur votre site Mintlify. Pour intégrer la même capacité sur un autre site ou application web, utilisez le widget. Grâce au widget, vous pouvez donner à vos utilisateurs l’accès à un chat IA entraîné sur votre contenu dans le tableau de bord de votre produit, votre site marketing, votre portail d’assistance ou ailleurs.

Ajoutez le widget à n’importe quel site web ou application web à l’aide d’un script hébergé. Le widget possède son propre déclencheur et s’affiche dans un Shadow DOM fermé, ce qui empêche les styles de votre application d’affecter le widget.

La seule option de navigateur requise est l’ID public du widget. Gérez l’état d’activation, les origines autorisées, les pièces jointes, la protection contre les bots et le formulaire de contact de déflection dans votre tableau de bord. Définissez les questions d’introduction spécifiques à l’intégration et une adresse e-mail d’assistance dans la configuration du navigateur.

  1. Accédez à la page Widget de votre déploiement.
  2. Activez le widget.
  3. Ajoutez les origines autorisées où vous intégrez le widget.
  4. Copiez l’ID du widget.

Utilisez le playground pour configurer la présentation, les options visuelles et les hooks d’observation de votre widget. Le bloc de code d’installation se met à jour à mesure que vous modifiez chaque option.

Remplacez YOUR_WIDGET_ID dans le code généré par l’ID du widget de la page Widget de votre tableau de bord.

Après avoir ajouté le code généré à votre site, rechargez la page. Vérifiez que le déclencheur apparaît, puis cliquez dessus et envoyez une question de test pour confirmer que le widget est connecté.

Les scripts de module sont différés et exécutés dans l’ordre du document. Gardez le chargeur hébergé avant le bloc d’initialisation lorsque vous installez le widget en HTML, sinon le widget ne parvient pas à se monter.

Définissez defaultOpen sur true pour ouvrir le widget immédiatement après son premier montage :

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

defaultOpen est par défaut à false et ne s’applique qu’à la première initialisation. Appeler à nouveau init() avec le même ID de widget et le même endpoint API ne rouvre pas un widget qu’un visiteur a fermé. Utilisez open() et close() pour le contrôler après l’initialisation.

Attendez init() avant d’appeler d’autres méthodes. Conservez le déclencheur intégré ou ouvrez la présentation configurée depuis n’importe quel bouton de votre application.

await window.MintlifyAssistant.init({
  id: "YOUR_WIDGET_ID",
  supportEmail: "hi@mintlify.com",
  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,
  });
});

Pour ouvrir le widget et envoyer immédiatement une question, appelez ask() :

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

Les métadonnées d’événement et les requêtes incluent la valeur source, ce qui vous permet de distinguer les interactions intégrées de vos points d’entrée personnalisés.

Utilisez update() pour modifier l’apparence, les libellés, l’e-mail d’assistance, les questions d’introduction ou les hooks sans effacer la conversation en cours. Seuls les champs fournis sont modifiés.

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

Passez null pour restaurer un champ ou un groupe à sa valeur par défaut, supprimer l’e-mail d’assistance ou restaurer une liste vide de questions d’introduction :

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

La modification de identity démarre une nouvelle conversation. La modification de l’ID du widget ou de l’endpoint API nécessite d’appeler destroy() avant un nouveau init().

Vous pouvez fournir supportEmail et starterQuestions lors de l’initialisation et les modifier ultérieurement avec update(). Ces valeurs s’appliquent à l’intégration en cours et ne sont pas héritées de votre tableau de bord Mintlify.

Utilisez filter pour restreindre ce que l’assistant récupère lorsque votre documentation est organisée par langue ou par versions. Omettez un champ pour rechercher dans toutes ses valeurs.

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

language doit être un code de langue pris en charge, tel que en, es, fr ou zh-Hans. version correspond au nom de la version configurée dans votre tableau de bord.

Modifiez les filtres au moment de l’exécution avec update() lorsque le visiteur change de langue ou de version dans votre application :

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

Passez null sur un champ pour effacer ce filtre, ou filter: null pour effacer les deux.

Passez cet objet à init().

OptionTypeDescription
idstringID public du widget provenant du tableau de bord Mintlify.
endpointstringRemplace l’endpoint API du widget hébergé.
identitystringJeton d’identité signé de l’utilisateur final. Omettez-le pour les visiteurs anonymes.
noncestringNonce CSP copié dans les ressources créées par le widget.
defaultOpenbooleanOuvre le widget lors de sa première initialisation. La valeur par défaut est false.
appearanceAssistantAppearanceSubstitutions visuelles et de présentation.
labelsAssistantLabelsSubstitutions du texte visible par le client.
supportEmailstringDéfinit l’adresse d’assistance affichée dans la barre d’outils du widget pour cette intégration.
starterQuestionsstring[]Définit jusqu’à trois invites d’état vide pour cette intégration.
filterAssistantFilterRestreint la recherche à une langue et à une version de la documentation.
hooksAssistantHooksObservateurs d’événements et d’erreurs.
OptionValuesDescription
variantwidget, modal, panelContrôle si l’assistant s’ouvre comme un popover ancré, une boîte de dialogue centrée ou un panneau latéral réactif.
themelight, dark, systemDéfinit le schéma de couleurs du widget. La valeur par défaut est system.
accentCSS colorDéfinit la couleur des contrôles principaux.
radiusCSS border radiusDéfinit le rayon du panneau, par exemple 18px.
fontCSS font familyUtilise une police déjà chargée par votre application. Par défaut, Inter est intégrée.
sidetop, bottom, left, right, inline-start, inline-endPositionne le déclencheur intégré sur un bord de l’écran.
alignstart, center, endAligne le déclencheur le long du bord sélectionné.
dismissOnInteractOutsidebooleanContrôle si les interactions du pointeur ou du focus à l’extérieur ferment l’assistant.
logoURL or { light, dark }Remplace la marque Mintlify par défaut.
zIndexnumberModifie l’ordre d’empilement de l’hôte du widget.

Les substitutions CSS arbitraires et les palettes neutres ne sont pas prises en charge. Le Shadow DOM fermé protège à la fois votre application et le widget des régressions de style entre sites.

OptionTypeDescription
languagestring or nullRestreint la recherche à un code de langue pris en charge, tel que en. Omettez pour rechercher dans toutes les langues.
versionstring or nullRestreint la recherche à une version de la documentation, telle que v2. Omettez pour rechercher dans toutes les versions.
OptionValuesDescription
titlestring or nullDéfinit l’en-tête du panneau. La valeur par défaut est Assistant.
triggerstring or nullDéfinit le texte compact du widget et du déclencheur du panneau.
placeholderstring or nullDéfinit le placeholder du compositeur et du déclencheur modal.
disclaimerstring, false, or nullDéfinit l’avis d’état vide. Passez false pour le masquer.
suggestionsstring or nullDéfinit le titre au-dessus des questions d’introduction. La valeur par défaut est Suggestions.
hooks: {
  event(event) {
    console.log(event.type, event.actor, event.source);
  },
  error(error) {
    console.error(error.code, error.retryable, error.status);
  },
}

Le hook event reçoit les métadonnées de cycle de vie et d’interaction pour init, open, close, ask, update, reset, navigate et destroy. Les événements n’incluent pas le texte de la question, l’identité, la session ou les jetons CAPTCHA.

Le hook error reçoit un code stable, un booléen retryable et un status HTTP facultatif. Les exceptions levées par l’un ou l’autre des hooks n’interrompent pas le widget.

Passez cet objet facultatif à open().

OptionTypeDescription
sourcestringAttribution définie par le client incluse dans les événements et les requêtes.
focusbooleanMet le focus sur le compositeur après ouverture. La valeur par défaut est true.

Passez cet objet facultatif après la chaîne de question dans ask().

OptionTypeDescription
sourcestringAttribution définie par le client incluse dans les événements et les requêtes.
openbooleanOuvre le panneau avant d’envoyer. La valeur par défaut est true.
focusbooleanMet le focus sur le compositeur lors de l’ouverture. La valeur par défaut est true.

Passez cet objet à update(). Chaque champ est facultatif, et null restaure sa valeur par défaut.

OptionTypeDescription
identitystring or nullChange l’identité signée et démarre une nouvelle conversation.
appearanceAssistantAppearance or nullApplique un patch profond aux paramètres d’apparence.
labelsAssistantLabels or nullApplique un patch profond au texte visible par le client.
supportEmailstring or nullChange l’adresse d’assistance. Passez null pour la supprimer.
starterQuestionsstring[] or nullChange jusqu’à trois invites. Passez null pour restaurer une liste vide.
filterAssistantFilter or nullApplique un patch en profondeur aux filtres de recherche. Passez null pour effacer tous les filtres.
hooksAssistantHooks or nullApplique un patch profond aux observateurs d’événements et d’erreurs.
MethodParameter typesDescription
init(config)AssistantConfigCharge et monte le widget. Il s’agit de la promesse de disponibilité pour toutes les autres méthodes.
open(options)AssistantOpenOptionsOuvre la présentation configurée.
close()AucunFerme le widget.
ask(question, options)string, AssistantAskOptionsOuvre le widget si demandé et envoie une question.
update(config)AssistantUpdateApplique un patch profond aux paramètres modifiables d’identité, d’apparence, de texte et d’observateurs.
reset()AucunDémarre une nouvelle conversation.
destroy()AucunSupprime le widget et libère ses ressources navigateur.

Les instantanés de conversation restent privés au widget. Chaque méthode se résout en void.

Si votre site utilise une Content Security Policy, autorisez les origines requises par les fonctionnalités de votre widget activées :

DirectiveSourceRequired for
script-srchttps://widget.mintlify.comChargeur et runtime du widget
connect-srchttps://widget.mintlify.comManifeste de version du widget
connect-srchttps://api.mintlify.comConfiguration, messages et commentaires
connect-srchttps://ph.mintlify.comAnalytique interne du widget
font-srchttps://widget.mintlify.comPolice Inter intégrée facultative
script-src, connect-src, and frame-srchttps://challenges.cloudflare.comProtection anti-bot Turnstile
script-srchttps://js.hcaptcha.comProtection anti-bot hCaptcha
connect-src and frame-srchttps://*.hcaptcha.comProtection anti-bot hCaptcha

Une politique script-src stricte doit toujours autoriser à la fois le chargeur et le script d’initialisation. Une politique style-src stricte doit autoriser le nonce que vous passez à init(), que le widget copie sur sa feuille de style injectée. Passer nonce à init() ne le propage qu’aux ressources créées par le widget après l’initialisation.

Was this page helpful?Suggest editsRaise issue