Building a Searchbot using Slack, Zapier, and Elastic App Search | Elastic Blog
Technique

Création d’un Searchbot avec Slack, Zapier et Elastic App Search

Et si vous pouviez créer votre propre Searchbot et l’interroger directement avec Slack ? Ne serait-ce pas merveilleux ? Imaginez que vous puissiez parcourir des milliers et des milliers d’enregistrements clients, d’articles, de logs de serveur, de tickets d’assistance, le tout, depuis un canal Slack. Eh bien, nous allons vous en donner la possibilité en créant un Searchbot utile en conjuguant Elastic App Search et Slack avec Zapier.

Le tout, sans coder !

Assemblage du Searchbot

Nous aurons besoin des éléments suivants :

  • Un compte Elastic App Search ou une version d’essai gratuite de 14 jours. Elastic App Search est une boîte à outils qui permet de créer des expériences de recherche novatrices. Vous pouvez ajuster la pertinence à l’aide de pondérations et d’accélérateurs de recherche, de curations et de synonymes, ainsi qu’effectuer des analyses de recherche approfondies. Et vous savez le meilleur ? C’est que cette solution s’appuie sur la Suite Elastic.
  • Des documents d’Elastic App Search. Chaque nouveau compte dispose d’un exemple de champ de moteur de recherche avec des données de parcs nationaux des États-Unis. Vous pouvez utiliser ces données ou indexer vos propres documents et adapter le tutoriel.
  • Un compte ou une version d’essai Zapier. Zapier est un service d’automatisation. Avec ce service, vous pouvez créer des Zaps. Un Zap est un pipeline d’automatisation. Chaque étape d’une chaîne d’automatisation peut actionner et transformer les données.
  • Environ 30 minutes.

Quand vous aurez terminé, lorsque vous saisirez “search for query” dans un canal Slack désigné, query sera envoyé à Elastic App Search sous forme d’appel API :

Un message Slack “search for mountains“ et les résultats obtenus

Accéder à Slack

Connectez-vous à Zapier et cliquez sur Make a Zap! (Faire un Zap !).

Tout d’abord, nous devons créer un déclencheur.

Le déclencheur connectera Zapier à un espace de travail Slack.

Recherchez Slack, puis sélectionnez-le.

Vous pouvez choisir parmi un ensemble de déclencheurs Slack.

Sélectionnons “New Message Posted Anywhere” (Nouveau message publié n’importe où).

Sélection du message dans l’application Zapier Slack

Cliquez sur Continue (Continuer). Zapier vous demandera de vous authentifier sur Slack.

Une fois que vous êtes authentifié, associez l’instance de compte au Zap.

À la question de savoir s’il faut répondre aux filtres de bot, la réponse est “non“. Nous n’avons pas besoin de ça !

Ce dont nous avons besoin, c’est d’un échantillon de données de Slack. Dans un canal test de l’espace de travail Slack associé, entrez “search for old growth”. Le message sera alors mis à la disposition de Zapier pendant la phase Test This Step (Tester cette étape).

Un message Slack importé

Sélectionnez le message, puis cliquez sur Continue (Continuer).

C’est le premier lien de notre chaîne d’automatisation. Bravo !

Filtrage en douceur

La prochaine étape consiste à configurer le seul et unique filtre Zap.

Sous l’en-tête ADD A HELPER STEP (AJOUTER UNE ÉTAPE D’AIDE), cliquez sur Filter (Filtre).

Poursuivez avec la seule option : Only continue if… (Continuez uniquement si...).

Puis, remplissez comme ceci :

Création d’un filtre Zap : Text (Contains) "search for"

[Text] [Contains] "search for"

Ainsi, le Zap s’activera lorsque quelqu’un saisira search for dans Slack.

Et… action !

Maintenant, nous allons créer quatre actions pour faire en sorte que tous les éléments se trouvant derrière “search for” soient ajoutés en tant que recherche et que nous obtenions des résultats bien mis en forme à partir d’App Search.

La première action consiste à retirer le texte “search for” de la recherche que nous transférerons dans App Search.

Cliquez sur Add a step (Ajouter une étape), puis sélectionnez Action/Search (Action/Recherche).

Sélectionnez Formatter (Outil de mise en forme). C’est la première option qui s’affiche sous BUILT-IN APPS (APP INTÉGRÉES).

De là, sélectionnez Text (Texte).

Le menu déroulant Transform (Transformer) s’affiche. Cliquez dans ce menu, entrez Replace (Remplacer) et sélectionnez-le.

Les deux champs du bas sont Find (Rechercher) et Replace (Remplacer).

Dans Find (Rechercher), entrez “search for”.

Dans Replace (Remplacer), laissez la case vide, puis cliquez sur Continue (Continuer).

Outil de mise en forme de Zapier

Terminez l’étape, puis cliquez à nouveau sur Add a Step (Ajouter une étape).

Captain Webhook

La deuxième action concerne l’appel de notre API. C’est là que nous formulons la recherche que nous enverrons à App Search. Tout ce qui suit “search for …” représente le paramètre de recherche.

Nous allons générer l’appel d’API avec Webhooks.

Dans le menu déroulant Choose an Action App (Choisir une application d’action), entrez Webhooks by Zapier (Webhooks par Zapier), et sélectionnez-le.

Sous l’en-tête CREATE (CRÉER), sélectionnez POST (PUBLIER), puis cliquez sur Continue (Continuer).

Quatre champs sont nécessaires pour créer l’appel d’API :

1. URL

L’URL de point de terminaison de l’API est fournie dans le tableau de bord d’App Search. Elle doit contenir votre propre identificateur d’hôte, tel que : https://host-2376rb.api.swiftype.com/api/as/v1/engines/sample-engine/search. Si vous le souhaitez, vous pouvez utiliser l’URL proposée ci-dessus aux fins de test : elle est publique.

Le tableau de bord des identifiants App Search

2. Type de charge utile

Par défaut, il s’agit d’une charge de type Form (Formulaire). Sélectionnez Json.

3. Données

Dans la première case, saisissez “query” : c’est le paramètre que nous inclurons dans POST (PUBLIER). Cliquez sur l’icône située près de la barre d’entrée de valeur. De là, sélectionnez les données de test “search for old growth” de l’étape 1 :

Utilisation des données échantillon de message Slack à partir de l’étape 1

Sélectionnez le champ Text (Texte) qui contient la chaîne de l’exemple de message Slack.

4. En-têtes

À la fin du formulaire se trouve une section Headers (En-têtes). Dans la première case, entrez “Authorization” (Autorisation). Dans la case située à côté, entrez le mot “Bearer” (Titulaire), suivi de votre clé Public Search Key, que vous trouverez dans le menu Credentials (Identifiants) du tableau de bord d’App Search :

Ajout de la clé Public Search Key en tant qu’en-tête Authorization

Si vous n’avez pas de clé, vous pouvez utiliser la clé de démonstration publique suivante : search-7eud55t7ecdmqzcanjsc9cqu.

Cliquez sur Continue (Continuer), puis faites un test. Un exemple de réponse contenant les données de parc du moteur de recherche d’App Search devrait s’afficher.

Génial ! Nous pouvons donc créer une requête API. Mais pour l’instant, nous devons mettre la réponse en forme.

Un petit coup de baguette magique...

Cliquez sur Add a Step (Ajouter une étape).

Sélectionnez Action/Search (Action/Recherche), puis cherchez Formatter (Outil de mise en forme) et sélectionnez-le.

Sous l’en-tête CREATE (CRÉER), sélectionnez l’option Utilities (Utilitaires), puis cliquez sur Continue (Continuer).

Dans la section Transform (Transformer), entrez Line Itemizer (Créateur d’articles de ligne).

Nous souhaitons créer deux articles sous l’en-tête Line-item(s) (Articles de ligne) en fonction de la sortie de l’appel d’API à l’étape 4…

  1. Title: “Results Title Raw”
  2. Link: “Results NPS Link Raw”

Nous voulons que seuls le nom d’un parc national des États-Unis et un lien contenant davantage d’informations soient affichés dans nos résultats :

Création de deux articles de ligne à partir de l’appel d’API

Effectuez un test et terminez l’étape. Maintenant, passons à la troisième étape...

... Et le tour est joué !

Cliquez sur Add a Step (Ajouter une étape)…

Sélectionnez Formatter (Outil de mise en forme), puis Utilities (Utilitaires), comme précédemment…

Mais cette fois, recherchez Line-Item to Text (Article de ligne Texte).

Il y a une case intitulée Values (Valeurs), avec un en-tête Input (Entrée). Cliquez dans la barre, puis sélectionnez l’étape 5 Utilities (Utilitaires) et insérez-y les deux articles de ligne que nous venons de créer.

Remarque : La structure dans la case Input (Entrée) reflètera la mise en forme du message Slack. Nous souhaitons avoir le titre, un espace, puis l’URL entre parenthèses :

[TITLE] ([LINK])

Et nous voulons que les résultats s’affichent sur une ligne séparée. Pour cela, dans la case sous l’en-tête Separator (Séparateur), ajoutez le caractère spécial [:newline:] :

[TITLE] ([LINK])
[TITLE] ([LINK])
[TITLE] ([LINK])
[TITLE] ([LINK]) 

Voici à quoi cela ressemble dans le Zap :

Mise en forme correcte des nouvelles lignes, ce qui modifie l’apparence des réponses de l’API.

À présent, l’heure est venue d’attaquer la dernière étape ! Ça va envoyer !

Transmission finale

Cliquez sur Add a step (Ajouter une étape), entrez Action/Search (Action/Recherche)...

Sélectionnez Slack.

Sous Create (Créer) : Choisissez Send Channel Message (Envoyer le message sur le canal), puis save + continue (enregistrer + continuer).

Sélectionnez votre compte Slack, cliquez sur Continue (Continuer)…

Choisissez le canal dans lequel le Zap fonctionnera. Pour faire un test, nous vous recommandons d’utiliser #random.

Sous l’en-tête Message Text (Texte du message), cliquez dans la case, puis sélectionnez la sortie de l’étape 6 :

Sélection du canal Slack dans lequel publier, et contenu du message qui correspond à la sortie de toute la chaîne de filtre

Vous en voulez plus ? Nommez le bot Searchbot et attribuez-lui un avatar mignon.

nom : image du Slackbot : APP SEARCH !

Si vous le souhaitez, faites un clic droit sur l’image ci-dessous pour copier le lien de l’image Elastic App Search :

Le beau logo Elastic App Search

LÈVE-TOI, SEARCHBOT !

Une fois que tout est configuré, activez le Zap :

ACTIVEZ LE ZAP !

Allez sur Slack, entrez : “search for something” et testez quelques recherches.

Un GIF montrant Slack répondant à des questions

Félicitations ! Vous avez maintenant un Searchbot intelligent dans Slack.

Récapitulons

Un bot Searchbot peut être utile. Que vous souhaitiez effectuer une recherche dans une base de connaissances interne ou repérer une erreur dans un large pool de logs serveur, créez un Searchbot basé sur Elastic App Search et liez-le à Slack. Le tout, avec simplicité bien entendu.

Testez App Search dès aujourd’hui avec la version d’essai gratuite de 14 jours de notre application hébergée ou téléchargez la version bêta de notre application auto-gérée. Chaque nouvelle version d’essai est pré-chargée avec un échantillon de données. Comme ça, vous pouvez faire des tests avant d’importer vos propres données.