Nous avons vu dans notre précédent article sur l'intelligence artificielle générative que Salesforce présente trois outils qui permettent d'introduire la Gen AI dans son CRM : Prompt Builder, Copilot Builder et Model Builder. Aujourd'hui, nous nous concentrons sur le premier, avec un cas concret de génération d'un résumé des compétences Salesforce de collaborateurs de Guimini dans un champ texte. Cet article contient plusieurs liens vers de la littérature sur Prompt Builder (documentation technique, articles de blog et vidéos de présentation) si vous voulez approfondir vos connaissances.
Prompt Builder permet de construire des invites, des requêtes à l'IA, qui peuvent être utilisées par les utilisateurs finaux dans leurs tâches quotidiennes. Rédiger des invites à l'IA demande de la pratique, voire une expertise : le prompt engineering. On ne peut pas demander aux utilisateurs finaux, vendeurs, agents du support client, etc… d'en avoir la compétence sans y être formé. C'est la raison pour laquelle l'administrateur Salesforce se charge de prérédiger ces invites en anticipant les cas d'usages quotidiens que sont susceptibles de rencontrer les utilisateurs. Ces modèles sont construits dans le Prompt Builder.
Il est possible de créer plusieurs types de prompts templates, les principaux sont :
- Génération de champs
- Résumé de l'enregistrement
- Flex
- Brouillon d'email
Field Generation
La génération de champs est une nouvelle fonctionnalité qui permet de renseigner automatiquement la valeur d'un champ texte long avec du texte généré. C'est donc particulièrement indiqué pour générer des résumés d'information (comme c'est souvent montré dans les démos sur la Gen AI), des résumés de conversations téléphonique ou par chat ou pour préparer des posts liés à des enregistrements Salesforce et calibrés pour une publication sur les réseaux sociaux.
Dans cet exemple, nous avons renseigné les compétences Salesforce des collaborateurs de Guimini dans un champ multi-picklist sur l'objet Contact. Nous demandons ensuite à l'IA de générer un résumé de ces compétences dans un champ texte libre du compte Guimini parent de ces contacts (nos collaborateurs). Lorsque nous cliquons pour éditer le champ, une icône apparaît sur le côté droit pour générer le résumé.
Comme nous pouvons le voir dans la capture, pas besoin de rédiger une requête à l'IA. Field Generation sait quelle information il doit renseigner dans ce champ : un résumé des compétences des collaborateurs. Ce comportement est défini dans la configuration Salesforce. Voyons comment.
Le paramétrage du champ en soi se fait dans le Lightning App Builder. Il est obligatoire d'utiliser les Dynamic Forms pour activer Field Generation sur un champ (donc adieu présentations de page !) et Field Generation ne fonctionne que pour les champs de type texte long. En cliquant sur un champ texte long dans l'App Builder, une section "Einstein Generative AI" permet de choisir un modèle d'invite (prompt template) à appliquer à ce champ. C'est ce modèle d'invite qui renseigne automatiquement le champ avec un texte généré sur la base d'instructions fournies dans le Prompt Builder.
Field Generation peut aussi être appelé depuis l'assistant Copilot, sur lequel nous ferons un focus dans un prochain article. Nous verrons comment la requête de résumé des compétences des collaborateurs Guimini a été construite dans le Prompt Builder plus bas dans cet article, dans une section dédiée.
Record Summary
Le résumé d'enregistrement est principalement utilisé dans l'assistant Copilot (que nous étudierons dans un prochain article). Il existe déjà une requête standard de résumé d'enregistrement mais l'équivalent custom permet de personnaliser l'action Copilot standard "Record Summary".
Flex
Celui-ci est un peu particulier. Flex, comme son nom le suggère, est utilisé de manière plus libre pour générer du texte depuis des endroits non définis de manière standard (comme peuvent l'être des outils standards comme Field Generation ou Copilot).
Les modèles Flex peuvent être appelés de n'importe où, depuis un Lightning Web Component par exemple. De plus, Flex peut être lié à jusqu'à cinq enregistrements, pas forcément du même type d'objet, pour en utiliser la donnée.
Sales Email Draft
Le brouillon d'email est utilisé au moment de rédiger un email à un contact ou une piste. C'est plus avancé que les modèles d'email ou les quick texts que vous connaissez déjà car l'IA a plus de liberté pour rédiger un email qui utilisera des informations contextuelles sur le client. Seule la pratique vous permettra de déterminer si l'IA est plus indiquée que les modèles d'email ou les quick texts pour envoyer des emails personnalisés à vos clients.
Lorsque l'utilisateur clique sur l'assistant Einstein, il peut choisir un modèle d'invite préalablement paramétré par l'administrateur Salesforce pour rédiger son email.
Et Einstein rédige un sujet et le corps de l'email qui peuvent être modifiés par l'utilisateur si besoin.
Notons que la rédaction d'email avec Einstein ne peut pas être utilisée avec les modèles d'email Classic ou Lightning (en tant que trame HTML avec une mise en page élaborée). La rédaction d'email avec Einstein proposée avec Sales Cloud n'est pas non plus compatible avec les emails de liste, pour envoyer des emails en masse. Pour construire des campagnes d'emailing avancé, il faut souscrire à Einstein 1 avec Marketing Cloud.
Sales Email Draft peut aussi être appelé depuis l'assistant Copilot, sur lequel nous ferons un focus dans un prochain article.
Tous ces modèles d'invite peuvent être appelés à partir de flows et de classes Apex.
La construction des modèles d'invite dans le Prompt Builder
C'est là où la magie opère et nous avons suffisamment fait durer le suspense. Prompt Builder est disponible après activation de la Gen AI dans Salesforce, depuis le menu dédié dans la configuration.
Le menu de configuration du Prompt Builder apparaît alors.
A la création d'un nouveau modèle d'invite, vous pouvez choisir entre les types de modèles discutés plus haut. Dans le cas de notre résumé des compétences des collaborateurs Guimini, il a fallu utiliser Field Generation.
Prompt Builder a trois principales sections dans son interface :
- La partie haute concerne la rédaction de l'invite avec le grounding pour récupérer la donnée pertinente.
- La partie basse est la prévisualisation de la requête post-grounding et la réponse générée.
- La partie droite est le choix du modèle de langage utilisé, le LLM pour Large Langage Model, qui n'est rien d'autre que le "moteur" utilisé par l'IA.
Ici, nous avons formulé en langue humaine des instructions à l'IA de Salesforce pour remplir notre champ texte avec de la donnée pertinente et rédigée d'une certaine manière. Ainsi, nous pouvons voir que cette requête mobilise plusieurs savoir-faire en matière de prompt pour l'IA.
Un premier concept pour comprendre la rédaction d'invite est le grounding. Il s'agit de la capacité de l'IA à utiliser de la donnée pertinente pour générer ses réponses, des outputs. Contrairement à du chat GPT simple, tout l'intérêt d'utiliser une IA intégrée à Salesforce est qu'elle peut s'appuyer sur la donnée du CRM pour générer des textes contextuellement pertinents. Prompt Builder utilise plusieurs mécanismes d'accès à la donnée (data providers) :
- Les champs de fusion de l'enregistrement lié mais aussi les listes associées.
- Les flows : un "template-triggered prompt flow" doit alors être préalablement créé avec une logique complexe pour récupérer de la donnée. Optionnellement, ce type de flow peut ajouter des invites d'instructions (prompt instructions) qui vont dynamiquement ajouter des instructions dans le modèle d'invite qui invoque le flow.
- Les méthodes invocables Apex.
Notez qu'il est tout à fait possible d'effectuer des requêtes à une API tierce dans les flows ou l'Apex de grounding pour récupérer de la donnée d'un système externe à Salesforce.
Un second concept à bien maîtriser est le prompt engineering. Il s'agit d'une compétence clé que les administrateurs/développeurs devront maîtriser pour utiliser l'IA. Poser une question peut sembler simple, mais il faut entre autres préciser :
- Le rôle de la personne
- Le contexte
- Le périmètre
Et itérer parce que le premier résultat ne sera jamais bon. Autre conseil au moment de tester la requête : ne faites jamais qu'un seul essai car les réponses de l'IA peuvent varier même quand on lui envoie exactement la même requête. Vérifier que la réponse ne varie pas trop avant de livrer votre configuration en production.
Une dernière compétence sera aussi de savoir déterminer quand ne pas utiliser l'IA. Vous vous rendrez compte que les utilisateurs n'ont pas toujours besoin de l'IA et que le temps qu'ils formulent leur question de la bonne manière est parfois plus long que le temps passé à accomplir la tâche par eux-mêmes !
Déploiement
Les modèles d'invite sont déployables avec SFDX. La métadonnée s'appelle GenAIPromptTemplate et vous pouvez voir des exemples sur le repository GitHub de démonstration de Salesforce.
L'API pour accéder à un Prompt Template
Petit bonus pour finir ! Sachez qu'il existe une API standard pour appeler un prompt et il y a une collection Postman pour cela (dans la section "Connect" puis "Einstein"). Ici, nous appelons l'API Einstein Prompt Template Generations Resource et nous précisons le nom de notre modèle d'invite "Generate_Account_Skills_Summary" pour générer notre résumé des compétences des collaborateurs Guimini. Nous passons l'ID du compte pour lequel nous voulons un résumé dans le corps de la requête en JSON. L'API nous renvoie alors le résumé au format JSON.
Imaginez pouvoir appeler le prompt à l'API Salesforce puis mettre à jour un champ dans le CRM, tout ça par une application tierce !
Autres ressources
- The ultimate guide to Prompt Builder
- Une vidéo de présentation complète du TrailblazerDX 2024
- La documentation technique complète
- Sur Trailhead :
- Premiers pas avec les invites et le générateur d’invites : ce parcours vous donne toute la théorie sur l'utilisation du Prompt Builder.
- Quick Start: Prompt Builder : ce module vous donne accès à une org Salesforce d'essai qui expire au bout de 5 jours pour vous familiariser avec l'outil.
En attendant notre prochain article, n'hésitez pas à explorer nos solutions Salesforce disponibles ici.
Pour n’en rater aucune miette, suivez-nous sur LinkedIn !