Plateforme
Templates
Tarifs
Ressources
DocumentationAPI
Contact
Se connecter
Commencer
FR
EN

partager

Comment interagir avec une collection dans un workflow ?

Un chatbot sans moyen de traiter de la donnée, c'est bien pour faire de la FAQ. Mais si vous souhaitez aller plus loin, apparaîtra très vite le besoin de stocker et lire dans ou depuis une collection.

Parution le 

13/8/2021

, par 

Martin Caussanel

Introduction

Un chatbot sans moyen de traiter de la donnée, c'est bien pour faire de la FAQ. Mais si vous souhaitez aller plus loin, apparaîtra très vite le besoin de stocker et lire dans ou depuis une collection.

Prenons par exemple l'exemple d'un chatbot permettant d'échanger des annonces entre employés d'une même entreprise. Une annonce serait simplement constituée d'un titre, d'une description et d'une catégorie. Seules 2 catégories seraient proposées : Activité Hors Travail et Réunion.

  • Le chatbot permettrait de publier une annonce contenant ces informations
  • L'auteur de l'annone pourrait modifier ou supprimer son annonce a posteriori
  • Les autres employés pourraient consulter l'ensemble des annonces disponibles

Si vous avez votre propre infrastructure technique ainsi que des développeurs, vous pourriez bien sûr recourir à des appels d'API vers vos propres services pour gérer tous ces flux. Ou alors, bien plus simplement, vous pourriez mettre sur pied l'ensemble de ces workflows uniquement depuis la console Prisme.ai, en utilisant notamment les collections.

Cet article vous apprendra :

  • Créer votre collection
  • Interagir avec depuis un workflow

‍

Créer votre collection

Comme pour toutes les ressources, la création d'une collection se fait de cette manière :

  1. Cliquer sur le menu bleu en haut à gauche de la console pour le dérouler
  2. Cliquer sur Créer, en tête du menu
  3. Sélectionner Collection
  4. Remplir les différentes informations demandées
  5. Créer

‍

Interagir avec depuis un workflow

Depuis l'éditeur Design de votre chatbot, 4 actions sont disponibles pour interagir avec votre collection :

  • Lire dans collection : lire des lignes depuis la collection
  • Ecrire dans collection : insérer une ligne dans la collection
  • Mettre à jour collection : modifier une ligne de la collection
  • Supprimer collection : supprimer une / des lignes de la collection

‍

Nous allons maintenant voir l'usage de ces 4 actions en reprenant l'exemple décrit dans l'introduction.

‍

Publier : Insérer une ligne

Avant toutes choses, créons une entité "AnnouncementType" qui permettra à l'utilisateur de choisir parmi les différentes catégories disponibles :

‍

De retour dans l'onglet Design, nous pouvons maintenant créer la première intention, qui permettra de publier une annonce. Celle-ci s'appellerait par exemple "CreateAnnouncement", et contiendrait quelques phrases d'entraînements telles que "créer une annonce" ou "publier une annonce".

Ceci-fait, 3 réponses de type Question (situé dans la partie Logiques des réponses) peuvent être déposées dans le workflow de cette intention :

Première question :

  • Question posée : "Nommez votre annonce"
  • Nom du paramètre : title
  • Entité : ggwg/any

‍

Deuxième question :

  • Question posée : "Décrivez votre annonce"
  • Nom du paramètre : description
  • Entité : ggwg/any

‍

Troisième question :

  • Question posée : "Choisissez une catégorie"
  • Nom du paramètre : type
  • Entité : AnnouncementType
  • Cocher "Proposer les valeurs de l'entité" et "Désactiver la saisie de text" afin de restreindre le choix de l'utilisateur aux seules catégories indiquées par notre entité AnnouncementType

‍

A ce stade, l'assistant devrait ainsi poser les 3 questions, mais nous ne faisons encore rien des paramètres récoltés.

‍

‍

Vient donc maintenant l'étape la plus cruciale, le stockage de ces informations dans votre collection. Et pour cela rien de plus simple ! Il suffit en effet de glisser-déposer l'action "Ecrire dans collection" à la suite des questions, et de sélectionner votre ressource "MyUserForms". Les autres options peuvent être laissées vides, celles-ci permettant de sélectionner des variables précises à insérer, mais nous souhaitons stocker toutes celles disponibles.

Pour faire un retour à vos usagers, nous pouvons aussi ajouter une simple réponse texte "J'ai bien publié votre annonce $title !".

En ré-essayant le même parcours via le chat de preview comme dans la capture d'écran un peu plus haut, une nouvelle ligne sera maintenant insérée dans votre collection. Vous pouvez vérifier ceci en vous rendant dans Store (menu de gauche) > Collections > MyUserForms.

‍

Consulter : lire des lignes

Pour visualiser les annonces disponibles, ajoutons une nouvelle intention "ListAnnouncements", contenant des phrases d'entraînement telles que "consulter annonces".

Afin de lister les annonces par catégorie, ajoutez-y une Question identique à la dernière Question de CreateAnnouncement :

  • Question posée : "Choisissez une catégorie"
  • Nom du paramètre : type
  • Entité : AnnouncementType
  • Cocher "Proposer les valeurs de l'entité" et "Désactiver la saisie de text"

A présent, glissez déposer une action "Lire dans collection" telle que :

  • Collection: MyUserForms
  • Requête à effectuer : {"type":"$type"}
  • Nom du paramètre de sortie: results

La requête filtre les lignes pour ne sélectionner que celles dont la colonne type est identique à ce qui a été précédemment demandé par l'utilisateur. Si vous aviez voulu sélectionner l'ensemble des lignes, il aurait simplement fallu indiquer une paire d'accolades vides {}.

Le paramètre de sortie indique dans quelle variable seront stockées les lignes trouvées.

A ce stade, les données sont bien récupérées et stockées, mais il reste encore à les afficher. Pour ça, la manière traditionnelle de faire est d'utiliser une réponse Répétition (réponses Logiques) qui bouclera sur $results pour afficher chaque ligne sous la forme d'une card.

Vous pouvez donc commencer par glisser uneréponse Répétitition dont la seule option "Effectuer la répétition sur ..." vaudrait results.

A présent, un nouveau bloc Répétition apparaît dans l'onglet Design, vous permettant d'y glisser une card affichant les différentes colonnes de votre collection :

Modifier une ligne

Ajoutons maintenant une intention permettant de modifier une annonce. Appelez la "EditAnnouncement", et ajoutez UPDATE_ANNOUNCEMENT dans les événements d'entrée. Cet événement permettra de déclencher la modification de l'annonce directement depuis un bouton située dans l'annonce.

Commencez par ajouter 1 Variable (réponses Logiques) telle que :

  • Nom du paramètre : id
  • Entité : ggwg/any

Cette variable id sera directement transmise par le bouton d'évènement pour identifier l'annonce.

Ajoutez maintenant les 3 mêmes questions que pour la création d'annonces, afin de pouvoir modifier les 3 colonnes.

Vient maintenant l'étape de la modification elle-même, en glissant l'action "Mettre à jour collection" :

Là aussi, la dernière option laissée vide pourrait être utilisée pour spécifier la liste précise de colonnes à modifier, et potentiellement avec une variable nommée différemment que la colonne.

Bien-sûr, une réponse texte est ajoutée à la suite de l'action pour notifier l'utilisateur que l'annonce a bien été mise à jour : "J'ai bien mis à jour votre annonce $title !"

‍

Dernière étape : l'appel de cette intention depuis un bouton des cards d'annonces.

Cette étape, un peu plus avancée, nécessite d'utiliser l'onglet Code.

Commencez par vous positionner au dessus de l'intention ListAnnouncements dans l'onglet Code en utilisant le menu de recherche en haut à droite.

Un peu en dessous de la ligne surlignée en jaune, vous apercevrez une ligne buttons: [] correspondant aux boutons optionnels de la cards (ligne 124 dans la capture d'écran).

Transformez-la comme ceci :

buttons:
                 - say event:
                     text: Mettre à jour
                     value: UPDATE_ANNOUNCEMENT
                     payload:
                       - type: parameters
                         value:
                           id: $_id

‍

Et nous voilà avec un bouton de modification fonctionnel et parfaitement intégré à notre parcours !

Supprimer une / des lignes

La suppression d'une annonce se fera de manière identique que la modification :

  1. On crée l'intention "DeleteAnnouncement", déclenchée par un événement "DELETE_ANNOUNCEMENT".
  2. On ajoute à son workflow une Variable "id" ayant pour entité ggwg/any
  3. On ajoute à son workflow une action "Supprimer collection" comme décrit dans la capture d'écran ci-dessous
  4. Depuis l'onglet code, on ajoute un second bouton "Supprimer" dans les cards d'annonces, comme dans la seconde capture d'écran ci-dessous

‍

Tout comme pour la lecture de collection, il est aussi possible de supprimer l'ensemble des lignes d'une collection en indiquant la requête {} dans l'action "Supprimer collection"

PlateformeCas d'usageTarifs
BlogDocumentationRecrutement
Se connecterBlagnac, France
CGUMentions LégalesPolitique de confidentialité

Tous droits réservés Prisme.ai - 2016-2022 - Gogowego SAS - Made In Francecréation de site internet polish_ studio