# Comment pré renseigner la mémoire (un attribut) d'un utilisateur

Les chatbots génèrent et utilisent une mémoire pour chaque utilisateur.

Si vous partagez votre chatbot à une base d'utilisateur connue (une newsletter Mailchimp par exemple), on peut imaginer que vous souhaitez pré renseigner certaines valeurs pour éviter à l'utilisateurs de les renseigner dans le chatbot.

C'est possible et simple à mettre en oeuvre, uniquement pour les chatbots en mode mobile, web ou widget (pas sur une messagerie instantanée)

Le concept est de faire passer des attributs présents dans votre base de données source (ex: Mailchimp) en paramètres de l'URL du chatbot.

Voici les 2 paramètres que vous pouvez renseigner:

  • uid: ce sera l'unique respondentID de l'utilisateur. Par défaut, nous créons un uid unique par utilisateur sous la forme suivante : 5dd425c4186006002378aace. Dans la majorité des cas, vous voudrez le remplacer par l'email de l'utilisateur.
    Attention: ce uid doit être unique pour parmi tous les utilisateurs de Vizir, donc pensez à un format bien particulier

  • ref: ref vous permet de faire remonter dans le chatbot des attributs concernant votre utilisateur, comme son prénom ou son email par exemple.

Voici un exemple avec un uid fixé comme étant l'email de l'utilisateur:

https://chat.vizir.co/monApplication?uid=michel.platini@fifa.com

Voici un exemple ou nous faisons remonter le uid, le prénom et l'email

https://chat.vizir.co/monApplication?uid=michel.platini@fifa.com&ref=first_name:Michel,email:michel.platini@fifa.com

Voici un dernier exemple ou nous faisons remonter seulement le prénom et l'email

https://chat.vizir.co/monApplication?ref=first_name:john,email:john@doe.fr

Si vous souhaitez passer des paramètres et que le chatbot est accessible via le widget c'est également possible.

Dans le code que vous récupérez sur la plateforme, il faudra effectuer quelques modifications:

Il faudra remplacer l'appID (ligne 2) appID = "id"  par une expression comme celle ci:
appID= "id?rel=first_name:John,last_name:doe"

Voici un exemple du code que l'on pourra obtenir:

  <script type="text/javascript">  var appID = '5e41479e68667d002d87344f?ref=first_name:John,last_name:doe';  var url = 'httts://chat.vizir.co'  ! function() {    var e, l, t, a, c = document,    r = c.getElementById,    s = c.createElement,    i = c.getElementsByTagName,    n = 'n',    d = 'https://chat.vizir.co/static/widget/';    r.call(c, n) || (l = s.call(c, 'script'), l.id = n, l.src = d + 'new.js', t = i.call(c, 'script')[0], t.parentNode.insertBefore(l, t)), n += '_', r.call(c, n) || (e = s.call(c, 'link'), e.rel = 'stylesheet', e.id = n, e.href = d + 'm.css', a = i.call(c, 'head')[0], a.appendChild(e, a))  }();  </script>

# WARNING :

Quelque soit l'utilisation que vous voulez faire de cet attribut passé en paramètre dans le chatbot, vous devez le créer à la main dans la mémoire du bot.

Rendez-vous donc dans Paramètres > Mémoire > Ajouter un attribut

Ensuite, déclarez cet attribut comme étant un attribut racine => pour qu'il soit utilisable partout !

Vous pouvez dès à présent utiliser cet attribut en l'appelant avec des moustaches ! Par exemple : {screenshot} dans mon cas !

Pour vérifier que votre attribut passé en paramètre a bien été enregistré dans la mémoire du chatbot c'est très simple :

Lancez une conversation avec le chatbot puis vous rendre dans le dashboard, dans l'onglet Conversations > paramètres et vérifiez qu'il est bien présent.

A vous de jouer !

# Pré-alimenter la description dans un process

Il est possible de pré-alimenter la description dans un process avec la requête de l'utilisateur.

Nous stockons dans la variable

  • last_nlu_request qui correspond à la dernière requête NLU que nous avons analysé via notre algorithme de NLU

Nous pouvons utiliser ces deux variables pour pré-alimenter la description lors de la création d'un ticket par exemple.

Prenons un exemple très simple, d'un chatbot qui permet de créer des tickets pour commander duu matériel IT.

Nous souhaitons arriver au résultat ci-desous ou tous les champs de l'AC sont automatiquement pré-remplis. Pré renseigner la description d'un process

Pour cela, il faut:

  • ajouter une ressource dans la FAQ qui redirige vers la création de ticket (Jira dans notre exemple)
  • ajouter des phrases d'entrainement sur la ressource FAQ en question
  • éditer le concept pour sauvegarder la valeurs dans la mémoire du répondant

=> Nous sommes maintenant capable d'extraire le "device" et le sauvegarder dans la variable device du répondant. Pour que cette valieur soit directement affichée dans l'AC, il faut que l'id du champs qui correspond au device ait la valeur de l'attribut en question (device dans notre cas).

  • La prochaine étape est de pré-remplir la description. Pour cela, nous allons créer un workflow très simple comme ci-dessous:

TIP

Ici aussi la valeur description devra être la même que l'id de l'AC qui correspond à la description.

  • déclencher ce workflow avant la compétence de création de ticket