Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Agentforce World Tour 2025] Facilitez les inté...

[Agentforce World Tour 2025] Facilitez les intéractions avec Agentforce grâce à LWC

Agentforce propose une interface simple mais certains cas d'usage peuvent bénéficier d'un affichage amélioré. Combinez la puissance de LWC et d'Agentforce pour faciliter l'intéraction avec vos Agents.

Avatar for Fabien Taillon

Fabien Taillon

May 22, 2025
Tweet

More Decks by Fabien Taillon

Other Decks in Programming

Transcript

  1. Déclarations Conditionnelles Déclaration conforme à la directive « Safe Harbor

    » contenue dans la loi américaine intitulée « Private Securities Litigation Reform Act » de 1995 : Cette présentation est susceptible de comporter des déclarations conditionnelles, qui impliquent nécessairement une certaine prise de risque, des incertitudes et des hypothèses. Si l'une de ces incertitudes se concrétise ou si certaines hypothèses se révèlent incorrectes, les résultats de Salesforce, Inc. pourraient être sensiblement différents de ceux explicitement ou implicitement avancés par nos déclarations conditionnelles. Toutes les déclarations ne portant pas sur des faits historiques peuvent être considérées comme conditionnelles, y compris les projections de disponibilité des produits ou des services, d'augmentation du nombre d'abonnés, de bénéfices, de chiffre d'affaires ou autre valeur financière, toute déclaration concernant les stratégies ou les plans de gestion des opérations à venir, toute opinion personnelle, toute déclaration concernant les services ou les développements technologiques nouveaux, planifiés ou mis à niveau, ainsi que les contrats clients et l'utilisation de nos services. Les incertitudes et les risques susmentionnés concernent, sans s'y limiter, les risques associés au développement et à la fourniture de nouvelles fonctionnalités pour notre service, aux nouveaux produits et services, à notre nouveau modèle commercial, nos pertes d'exploitation antérieures, les éventuelles fluctuations de nos résultats d'exploitation et de notre taux de croissance, les interruptions ou les retards de notre système d'hébergement, les failles des mesures de sécurité, l'issue des litiges, les risques associés aux fusions et acquisitions réelles et éventuelles, la jeunesse du marché dans lequel nous évoluons, notre historique relativement limité, notre capacité à développer, fidéliser et motiver notre personnel et à gérer notre croissance, les nouvelles éditions de notre service, ainsi que le déploiement réussi chez les clients, notre expérience limitée en matière de revente de produits tiers, et l'utilisation et les ventes à de grands comptes. Vous trouverez plus d'informations sur les facteurs pouvant influencer les résultats financiers de Salesforce, Inc. dans notre rapport annuel (formulaire 10-K) pour l'exercice fiscal le plus récent et dans notre rapport trimestriel (formulaire 10-Q) pour le trimestre fiscal le plus récent. Ce rapport et d'autres documents contenant d'importantes informations sont accessibles sur notre site web dans la partie Informations Investisseurs, section Documents pour la Commission des opérations de bourse (SEC). Certains services ou fonctions qui ne sont pas encore commercialisés et sont mentionnés ici ou dans d'autres présentations, communiqués de presse ou déclarations publiques, ne sont pas encore disponibles et ne seront peut-être pas livrés à temps, voire pas livrés du tout. Les clients qui achètent nos services doivent prendre leur décision sur la base des fonctions actuellement disponibles. Salesforce, Inc. n'est pas tenu et n'a pas l'intention de mettre à jour ces déclarations conditionnelles.
  2. Facilitez les interactions avec Agentforce grâce à LWC Fabien Taillon,

    Partner & CTO, Texeï linkedin.com/in/fabientaillon
  3. Fabien Taillon Partner & CTO at Texeï Salesforce MVP -

    Hall of Fame Paris Developer Group leader French Touch Dreamin team https://www.texei.com/blog
  4. Helps companies build AI agents that work together with humans

    to drive customer success Agentforce Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com
  5. Display sometimes unpredictable Not always the best UI Not always

    actionable Great but… Agentforce out of the box components Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com
  6. Map the Action Action Input or Output Rendering to you

    Custom Lightning Type Steps to Customise Agent UI Build a Custom LWC for your Apex Build a Custom Lightning Type with Schema referring to Apex and Editor / renderer referring to the component Custom LWC CLT Test your Action and launch your Agent Action Mapping Test 1 2 3 4 Custom Code Agent Config
  7. Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com Renderer Override (1/6) import

    { LightningElement } from 'lwc'; export default class RestaurantDetail extends LightningElement { @api label; @api rating; … } public class RestaurantService { … public class Restaurant { @InvocableVariable public String label; @InvocableVariable public Integer rating; } … } Use LWC to render Apex Type Apex LWC
  8. Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com Renderer Override (2/6) import

    { LightningElement } from 'lwc'; export default class RestaurantDetail extends LightningElement { … } public class RestaurantService { … public class Restaurant { … } … } Use Custom Lightning Type to define the override { "title": "My Restaurant Response", "description": "My Restaurant Response", "lightning:type": "@apexClassType/c__RestaurantService$Restaurant" } { "renderer": { "componentOverrides": { "$": { "definition": "c/restaurantDetail" } } } } Apex LWC renderer.json schema.json
  9. Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com Renderer Override (3/6) import

    { LightningElement } from 'lwc'; export default class RestaurantDetail extends LightningElement { @api label; … } public class RestaurantService { … public class Restaurant { @InvocableVariable public String name;… } … } Define mapping if attribute names are different { "title": "My Restaurant Response", "description": "My Restaurant Response", "lightning:type": "@apexClassType/c__RestaurantService$Restaurant" } { "renderer": { "componentOverrides": { "$": { "definition": "c/restaurantDetail", "attributes": { "label": "{!$attr.name}" } } } } } Apex LWC renderer.json schema.json
  10. <?xml version="1.0" encoding="UTF-8"?> <LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata"> <apiVersion>64.0</apiVersion> <isExposed>true</isExposed> <masterLabel>Restaurants Details</masterLabel> <targets>

    <target>lightning__AgentforceOutput</target> </targets> <targetConfigs> <targetConfig targets="lightning__AgentforceOutput"> <sourceType name="c__restaurantResponse" /> </targetConfig> </targetConfigs> </LightningComponentBundle> Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com Renderer Override (4/6) Allow your LWC to be used as Agentforce output restaurantDetail.js-meta.xml
  11. Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com Renderer Override (5/6) Collection

    Renderer Override import { LightningElement } from 'lwc'; export default class RestaurantDetail extends LightningElement { @api value; … } LWC { "collection": { "renderer": { "componentOverrides": { "$": { "definition": "c/restaurantDetail" } } } } } renderer.json
  12. Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com Editor Override { "editor":

    { "componentOverrides": { "$": { "definition": "c/restaurantRating" } } } } <?xml version="1.0" encoding="UTF-8"?> <LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata"> <apiVersion>64.0</apiVersion> <isExposed>true</isExposed> <masterLabel>Restaurant Rating</masterLabel> <targets> <target>lightning__AgentforceInput</target> </targets> <targetConfigs> <targetConfig targets="lightning__AgentforceInput"> <sourceType name="c__restaurantRating" /> </targetConfig> </targetConfigs> </LightningComponentBundle> Different tags but same idea Apex CLT
  13. • Fully integrated with Lightning Experience • Very powerful, no

    limitation in what can be done in this type of LWC ◦ use of modal, toasts… ◦ use of Lightning Data Service ▪ return only record Ids from Apex and use LDS to get data if you need to keep it updated ◦ use same color theme ◦ … • Run as your current user, with its access rights Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com It’s cool because… What you need to know But… • Only available in Lightning Experience ◦ Use “Standard Agent Surface” for Experience Cloud/Public Agent
  14. • General Availability (Summer ‘25) • More Custom Lightning Types

    options beside Apex: ◦ Record Types ◦ Objects ◦ Primitive overrides • Custom Lightning Types management in Setup UI ◦ Custom Lightning Types list in Lightning Experience (Summer ‘25) ◦ Create Custom Lightning Types in Setup (according to TDX) What’s coming Summer ‘25 and beyond Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com
  15. Custom Lightning Types list in Lightning Experience What’s coming Fabien

    Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com
  16. More Types + UI to create Custom Lightning Types What’s

    coming Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com
  17. Define which components to use for Editor/Renderer override What’s coming

    Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com
  18. GitHub Repository https://github.com/FabienTaillon/lwc-in-agentforce Documentation https://developer.salesforce.com/docs/einstein/genai/guide/lightning-types-custom.html TDX Video Customize Agentforce Responses

    with LWC and Lightning Types Standard Agent Surface https://help.salesforce.com/s/articleView?id=ai.agent_surfaces_ref.htm&type=5 Fabien Taillon - https://linkedin.com/in/fabientaillon - https://www.texei.com Resources