# FAQ dynamique

### Intégration - FAQ dynamique

Le champ de recherche de la FAQ dynamique est généré par un script javascript. Il peut également être constitué d'images et d'autres éléments en fonction de la personnalisation qui a été effectuée.

### Code HTML

Pour intégrer la boîte de dialogue, ces fichiers doivent être hébergés sur un serveur de fichiers.

La page qui doit héberger la FAQ dynamique doit réserver un emplacement où s'afficheront la fieldbox et les résultats.

Généralement, une page dédiée est conservée pour ce module avec uniquement un en-tête et un pied de page non définis.

Un nœud HTML avec un identifiant doit être présent. This identifier will be used by javascript to build the graphic elements in the page.

Ci-dessous, un exemple de code HTML pour l'intégration de la fieldbox.

Ce fichier HTML est hébergé dans le même répertoire que le fichier chatbox.js.

<figure><img src="/files/iXUpllnoI1pfeVvIiBOM" alt=""><figcaption></figcaption></figure>

La balise DOCTYPE en haut du fichier est absolument nécessaire au bon fonctionnement de la boîte de dialogue.

De plus, la balise *script* doit avoir l'attribut *id=dydufieldbox*.

### Variables de contexte

Pour permettre l'identification de l'utilisateur et personnaliser les réponses, il est possible d'utiliser le moteur de dialogue ou d'afficher à l'opérateur Livechat des informations depuis le site lui-même :

* Contenu des éléments de la page :
  * montant du panier ;
  * nom de l'utilisateur ;
  * code d'erreur actuellement affiché ;
  * etc.
  * Valeurs variables ou fonctions javascript ;
  * Valeurs des cookies.

La récupération de ces informations ne nécessite généralement pas d'éditer le site qui comprend la boîte de dialogue, sauf si vous souhaitez récupérer des informations qui ne sont pas présentes au moment de l'intégration.

La déclaration des variables de contexte se fait de cette manière :&#x20;

<figure><img src="/files/WN2REB9mDTt85qnUpcE3" alt=""><figcaption></figcaption></figure>

*getMontantPanier* est la fonction javascript qui obtient le nom de cette boutique.

<figure><img src="/files/M84WjyoEoxVyfI03Yuu2" alt=""><figcaption></figcaption></figure>

Il peut être défini soit dans la boîte de dialogue, soit par un autre script s'il est chargé sur les mêmes pages que la boîte de dialogue.

L'écriture de fonctions pour les variables de contexte peut être effectuée par les équipes du client ainsi que par nos équipes.

#### Débogage

Pour vérifier si les variables de contexte sont fonctionnelles, rendez-vous sur la page où la FAQ dynamique a été intégrée et posez n'importe quelle question dans la fieldbox.

Dans l'onglet **Réseau** du panneau *Outils de développement*, vous devez localiser la dernière requête *talk*

<figure><img src="/files/t46SoZzRsEhWiKsREl5B" alt=""><figcaption></figcaption></figure>

Dans la liste des paramètres, recherchez le paramètre *contextVariables*.

Cette liste doit inclure la liste des variables de contexte qui ont été enregistrées dans DYDUServlet, avec leur valeur encodée en base64.

Dans cet exemple, vous pouvez voir deux variables *first\_name* et *last\_name*:

* first\_name is *Sm9obg*== base64 ("*John*");
* last\_name is *RG9v*== base64 ("*Doo*").

#### Navigateurs à tester

| Navigateur Web de bureau | Version | Comptabilité |
| ------------------------ | ------- | ------------ |
| Microsoft Edge           | ≥ 80    | Total        |
| Mozilla Firefox          | ≥ 68    | Total        |
| Apple Safari             | ≥ 13.0  | Total        |
| Google Chrome            | ≥ 83    | Total        |

| Borne mobile | Version | Comptabilité |
| ------------ | ------- | ------------ |
| iOs          | ≥ 10    | Total        |
| Android      | ≥ 6.0   | Total        |

Le bon fonctionnement des éléments suivants doit être vérifié :

* Le champ de saisie ;
* Le bouton d'envoi ;
* Saisie semi-automatique : suggestion lors de la rédaction.

Lorsqu'une question est posée, vous devriez voir :

* Les sujets des FAQ proposées ;
* Les titres des FAQ ;
* Réponses associées ;
* Satisfaction (facultative – et uniquement sur les FAQ liées à la base de connaissances, c'est-à-dire qu'elle ne concerne pas les FAQ issues de l'indexation externe).

#### Intéractions

1. **Poser une question**

Il faut tester ce processus en envoyant la requête soit par la saisie de la touche **Entrée** soit en cliquant sur le bouton **Demander**.

2. **Rediriger le lien vers une autre connaissance**

Certaines connaissances peuvent contenir un lien dans leur réponse pour permettre l'accès à une autre connaissance, il faut donc identifier une connaissance à l'aide de ces liens de redirection et vérifier que l'utilisation de ce lien affiche la connaissance ciblée.

3. **Lien vers une autre page**

Certaines connaissances peuvent contenir dans leur réponse un lien permettant d'accéder à une autre page du site, il est nécessaire d'identifier une connaissance utilisant ces liens et de vérifier que l'utilisation de ce lien entraîne le changement de page. Le clic sur ce type de lien provoque une requête vers le serveur de dialogue de manière à suivre l'utilisation qui en est faite par les internautes.

4. **Champ de saisie vide**

Quand le champ de saisie est vide, il ne doit pas être possible de soumettre la requête au serveur, cela aussi bien par l'appui de la touche **Entrée** dans le champ de saisie que par le bouton d'envoi. Ce bouton d'envoi doit également être grisé ou inactif.

5. **Arbres de décision**

Lorsqu'une connaissance comporte un arbre de décision, il faut vérifier qu'un clic sur les icônes "+" affiche les réponses des sous-branches.

6. **URL de redirection**

Lorsqu'une connaissance est configurée avec une URL de redirection, vérifiez que le titre de la FAQ devient cliquable ou qu'un lien cliquable apparaît à côté de la FAQ.

7. **URL de la question posée**

Vous devez vérifier que l'URL de la page de la question posée utilise les termes de la question.

8. **Retours et changements de page**

Lorsque deux questions sont posées l'une après l'autre, le retour à la page précédente doit réafficher la première question. Cela devrait également être le cas lors du changement de page et du retour à la question posée.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dydu.ai/integrations/faq/faq-dynamique.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
