Dans nos deux précédents articles, nous avons introduit l'intelligence artificielle générative et plus spécifiquement prompt builder pour construire des modèles de requêtes à l'IA. Aujourd'hui, voyons comment utiliser Einstein Copilot comme un assistant conversationnel avec l'IA pour lui formuler des requêtes en langue humaine avec un cas concret de recherche de formations sur Salesforce issues du catalogue Blueforma de Guimini. Cet article contient plusieurs liens vers de la littérature sur Einstein Copilot (documentation technique, articles de blog et vidéos de présentation) si vous voulez approfondir vos connaissances.
Einstein est comme un Chat GPT directement intégré dans la console Salesforce mais avec deux avantages : Copilot a accès à la donnée du CRM donc il a déjà connaissance du contexte de l'activité et Copilot inclut une couche de sécurisation de votre donnée (Einstein Trust Layer). Guimini possède un catalogue de formations "Blueforma" que nous dispensons aux administrateurs et développeurs Salesforce pour progresser sur leurs expertises. Ici, nous demandons à l'assistant Copilot de nous suggérer une formation sur comment auditer une org Salesforce.
Nous allons voir comment cette requête a été paramétrée pour renvoyer une réponse appropriée. Mais d'abord, nous devons comprendre comment fonctionne les actions de Copilot.
Fonctionnement des actions Copilot
Lorsqu'un utilisateur fait une requête dans l'assistant conversationnel, Einstein Copilot fait une analyse sémantique et en déduit le type d'action qu'il faut déclencher parmi celles qui existent, en standard ou en custom. Une fois les actions à effectuer identifiées, Copilot extrait des paramètres de la requête de l'utilisateur aux outils d'automatisme qui exécutent ces actions (pour l'instant : prompt, flow ou APEX). Copilot passe ensuite à l'action suivante jusqu'à ce que le plan soit exécuté.
Copilot propose des actions standards déjà pré-paramétrées :
- Rechercher des enregistrements
- Résumer des enregistrements
- Rédiger un brouillon d'email
- Rechercher des articles knowledge
- Mettre à jour des enregistrements
D'autres actions sont prévues comme la création d'enregistrement, la mise à jour de plusieurs enregistrements ou la création de rapports. Il existe aussi des actions qui sont propres aux clouds auxquels vous souscrivez :
Il est aussi possible de paramétrer ses propres actions personnalisées et ainsi faire appel à quatre outils différents :
- Les modèles d'invite
- Les flux
- Le code Apex
- Des APIs tierces (bientôt)
Voyons comment ces actions personnalisées de Copilot sont paramétrables.
Paramétrage d'une action Copilot personnalisée
Pour commencer, notons que notre action de recherche de formation Blueforma en base n'a pas vraiment besoin de l'intelligence artificielle de Copilot. Il serait plus simple et moins onéreux de simplement afficher un champ de recherche traditionnel, sans IA. Et si nous voulions absolument de l'IA, ce cas d'usage pourrait aussi convenir à l'action Copilot standard de recherche dans les articles Knowledge. Les formations Guimini pourraient alors être rédigées comme des articles dans la base de connaissance. Mais pour les besoins de la démonstration, reproduisons une fonctionnalité de recherche custom par l'IA.
Einstein Copilot est disponible après activation des fonctionnalités d'intelligence artificielle générative dans la configuration de Salesforce.
Le menu de configuration de Copilot apparaît alors, avec un Copilot préparamétré. Pour l'instant, il n'est possible d'en avoir qu'un seul mais Salesforce prévoit de pouvoir en paramétrer plusieurs. Il serait alors possible de créer plusieurs Copilot en donnant à certains profils utilisateurs l'accès à certaines actions mais pas à d'autres.
Plusieurs actions sont proposées en standard par Salesforce en fonction des licences auxquelles vous souscrivez. Pour cette démo, nous avons aussi créé deux actions personnalisées "Training Course Recommandation". Elles font la même chose, rechercher des formations, mais l'une utilise un flow pour les requêter et l'autre utilise l'Apex.
Au moment de créer une action Copilot personnalisée, vous pouvez choisir d'utiliser parmi trois technologies : un prompt, un flow ou l'Apex. En fonction de l'action que vous souhaitez réaliser en réaction à la requête, une techno sera plus appropriée qu'une autre. Mais d'abord, regardons l'instruction passée à Copilot. Ici, nous expliquons en langue humaine à l'action Copilot qu'elle doit se déclencher lorsque l'utilisateur demande explicitement à l'assistant conversationnel de lui suggérer des formations :
"Give recommandation about training courses on Salesforce. You must call Training_Course_Recommandation only if the user explicitly asks for recommandations (e.g. : 'Recommandations', 'Suggestions', Advices')."
C'est en quelque sorte notre trigger. C'est sur la base de cette instruction que Copilot analysera les demandes des utilisateurs pour savoir s'il doit déclencher cette action.
Si c'est effectivement cette action qui doit être déclenchée, alors Copilot exécutera le flow "Training_Course_Research". Ce flow reçoit une variable "keyword". Ce mot clé est le thème de la formation à rechercher. Par exemple : "Lightning Web Component". Ce mot clé est automatiquement extrait de la requête de l'utilisateur par l'IA. Le flow renvoie une liste de formations "trainingCourses" en output.
Une fois l'action de Copilot configurée, il est possible de la tester dans menu de configuration du Copilot. Nous pouvons y voir les actions assignées à ce Copilot sur le côté gauche. Sur le côté droit, formuler une requête permet de voir comment se comporte l'action de Copilot au centre. Dans la capture d'écran ci-dessous, nous demandons conseil pour deux types de formation, sur les Lightning Web Components et sur les flows. Nous pouvons voir que Copilot ne bulkifie pas l'appel au flow : il appelle deux fois le flow avec à chaque fois une seule variable et consolide les résultats à la fin. C'est à prendre en compte si vos traitements font beaucoup d'appels en base…
Comme avec Prompt Builder, soignez vos tests ! Elaborez une base de requêtes de test comme un cahier de recette. Les requêtes à l'IA paramétrées dans Prompt et Copilot Builder doivent faire l'objet d'une méthodologie aussi rigoureuse qu'avec nos algorithmes traditionnels : tester avec des cas passants et non passants, en tant qu'utilisateur, tester les performances et la sécurité…
Le flow appelé est de type autolaunched et se paramètre de manière identique aux flows que nous connaissons déjà. Une requête GET classique recherche des formations avec le "keyword" fourni en input et assigne les formations récupérées à la variable de sortie "trainingCourses".
En Apex, la configuration de l'action Copilot est identique. L'instruction et les variables d'entrée et de sortie sont les mêmes.
Là aussi, Copilot ne bulkifie pas les appels à l'Apex, il appellera la méthode invocable autant de fois qu'il y a de variables d'entrée.
L'Apex prend en charge la logique à l'aide d'une méthode invocable. Ici nous récupérons le mot clé "keyword" pour effectuer une requête de type SOSL afin de récupérer une liste de formations. Les connaisseurs des méthodes invocables reconnaîtront qu'il faut renvoyer une liste de listes (sic) !
Ce que l'Apex vous retourne peut-être (un peu) formaté à l'affichage. Consultez cet article pour connaître les possibilités de réponse par l'Apex.
Attention vous ne pourrez pas changer le format des paramètres de sortie (ce que vous "return" l'Apex) une fois votre action Copilot finalisée. Si vous voulez changer l'output, vous devrez recréer l'action Copilot.
N'oubliez pas de donner aux utilisateurs l'accès à votre flow ou à votre classe Apex de la même manière que vous le feriez avec un screen flow par exemple. Sinon ils ne pourront pas utiliser l'automatisme appelé par l'action Copilot.
Il faut souligner l'importance des descriptions dans le contexte de Copilot. C'est sur ces descriptions que va se baser le plan d'exécution de vos actions. Comme pour les prompts, les requêtes à l'IA doivent être anticipées et paramétrées par l'administrateur Salesforce. Si l'utilisateur pose une question non-prévue, l'assistant Copilot vous répondra simplement qu'il ne sait pas répondre. Encore une fois : pas de magie !
Une limitation importante doit être signalée : seuls les objets disponibles dans la User Interface API sont utilisables dans Einstein Copilot. Ce qui exclut par exemple les activités (tâches et événements).
Quelques conclusions générales
Sur la structure, une action de l'intelligence artificielle n'est donc pas fondamentalement différente de notre manière d'utiliser des algorithmes : nous passons quelques paramètres d'entrée et la machine nous retourne un résultat. Les différences sont de deux ordres.
Premièrement, l'IA est une boîte noire. Avec les algorithmes, nous pouvons faire du reverse engineering et comprendre pourquoi le traitement en est arrivé à telle ou telle conclusion. Avec l'IA, nous ne pouvons pas remonter le fil du raisonnement. L'IA est comme un être humain, nous ne comprenons pas toujours pourquoi elle agit dans un sens ou dans l'autre.
Deuxièmement, la manière dont est paramétrée l'IA sera déroutante au début pour les administrateurs et développeurs. Nous sommes habitués à développer des solutions sur Salesforce avec du clic et avec du code. Désormais, nous devrons aussi le faire avec des instructions en langue humaine. Ce n'est pas encore naturel pour nous et nous devrons nous organiser pour que nos développements liés à l'IA puissent être sécurisés, performants et maintenables. De la même manière que notre code Apex était particulièrement désorganisé lorsque cette technologie a commencé à être utilisée dans la seconde moitié des années 2000, les développements liés à l'IA mettrons du temps avant de généraliser des bonnes pratiques.
Gardez en tête de toujours vous demander en quoi Einstein Copilot pourrait améliorer l'expérience utilisateur par rapport à une autre interface. Il est préférable de ne pas utiliser l'intelligence artificielle quand nous pouvons nous en passer : c'est coûteux non seulement financièrement mais aussi écologiquement.
Communiquez clairement auprès de vos utilisateurs ce qu'ils peuvent requêter à l'assistant Copilot et ce qu'ils peuvent en attendre. Si vous ne les formez pas un minimum, ils formuleront de mauvaises requêtes et seront déçus par l'outil. Et n'oubliez pas de les solliciter pour vous donner des feedbacks !
Autres ressources
Get Started with Einstein Copilot Custom Actions
Einstein Copilot In-Depth: What It Is, How It Works, and What It Can Do
Get Started with Einstein Copilot Actions for Developers
Learn Best Practices for Creating Einstein Copilot Actions
9 Ways an AI Assistant Can Help Out at Work
Explorez comment maximiser le potentiel de votre CRM avec nos solutions Salesforce disponibles ici.
Pour rester informé de toutes nos actualités, suivez-nous sur LinkedIn !