• Accueil / Salesforce / Comment j’ai résolu…
, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Comment j’ai résolu ce problème : créer un score d’opportunité BANT avec des types de métadonnées personnalisés22 minutes de lecture


Problème clé de l’entreprise :

Comment traduire un modèle de scoring personnalisé vers Salesforce, tout en le rendant facile à gérer ? Une équipe de vente en transition vers Salesforce dispose déjà d’un modèle de notation BANT mature pour les opportunités qu’elle souhaite utiliser dans Salesforce, mais elle souhaite conserver la possibilité de mettre à jour les critères de son modèle rapidement et facilement sans retravailler les automatisations.

Fond:

BANT est un acronyme qui signifie Budget, Authority, Need, Timeline. Il s’agit d’un schéma de notation et d’organisation des opportunités pour s’assurer que les transactions sont correctement qualifiées et que les équipes commerciales tirent le meilleur parti de leur temps. L’idée derrière BANT est que certains domaines clés sont les plus critiques pour réaliser une vente, et les efforts y sont mieux concentrés. Plus précisément, si le budget d’un client potentiel correspond au prix, qu’il a le pouvoir de faire l’achat, qu’il a un besoin clair et que le calendrier est correct, un vendeur peut être sûr que l’opportunité est susceptible de se fermer.

Le défi de la création d’un modèle BANT réussi réside dans la façon dont ces catégories sont mesurées dans une industrie donnée ou pour un produit ou service donné, qui peut varier énormément. Les équipes de vente développent souvent des playbooks sophistiqués conçus pour capturer les faits clés liés à chaque catégorie et leur attribuer un score par rapport à un score global total. Ces scores sont souvent au cœur de la stratégie commerciale de l’entreprise et, en tant que tels, sont essentiels à refléter dans Salesforce.

Un ensemble de questions et réponses BANT peut ressembler à ceci pour la catégorie Budget :

Q : Quelle est l’opinion du prospect sur le prix partagé ?

A1 : Le prospect estime que le prix est juste – 25 points

A2 : Le prospect n’a pas partagé d’opinion – 15 points

A3 : Le prospect a eu une légère réaction négative au prix – 10 points

A4 : Le prospect a eu une forte réaction négative au prix – 5 points

Bien sûr, nous savons tous qu’une telle chose n’existe pas dans Salesforce prête à l’emploi. Mais pouvons-nous le construire ET le rendre facile à entretenir ? DÉFI ACCEPTÉ! 🦸‍♀️

Comment je l’ai résolu :

Étape 1 : Créez des types de métadonnées personnalisés pour stocker les questions, les réponses et les scores

Si vous débutez avec les types de métadonnées personnalisées (CMDT), voici votre chance de vous lancer ! Considérez-les comme des objets personnalisés pour les administrateurs. Les CMDT vous permettent de créer des emplacements pour stocker la logique métier qui peut être référencée à la fois par la configuration déclarative et le code – et mieux encore, elles sont considérées comme faisant partie des métadonnées. Cela signifie qu’ils sont copiés dans des bacs à sable et déployables dans des ensembles de modifications.

Commence par création d’une CMDT appelé « question BANT ». Vous avez besoin de trois champs personnalisés : un pour suivre la question elle-même (j’ai utilisé une zone de texte), un pour suivre le statut de la question (« Actif » ou « Retraité ») et un pour suivre la catégorie (Budget, Autorité, Besoin ou chronométrage, respectivement). Voici mes champs personnalisés pour la question BANT :

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Une fois que vous avez un CMDT pour la question, vous avez besoin d’un autre type appelé « Réponses BANT ». Ce type aura également trois champs. Le premier est le champ critique Relation des métadonnées qui relie la réponse à sa question parente. Ne vous inquiétez pas, cela semble difficile, mais il s’agit essentiellement d’un champ de recherche d’un CMDT à un autre. N’oubliez pas que ce sont comme des objets personnalisés pour les administrateurs !

Une fois que vous avez mis en place le champ Relation des métadonnées, il vous suffit maintenant d’un champ de texte pour votre réponse et d’un champ numérique pour le score attribué à cette réponse. Voici les champs personnalisés de ma CMDT pour BANT Answers :

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Enfin, ajoutez vos questions et réponses BANT en tant qu’enregistrements CMDT. Pour ce faire, cliquez sur le Gérer les enregistrements du CMDT avec lequel vous souhaitez travailler en premier. Dans ce cas, je pense que les questions sont le meilleur endroit pour commencer, puis ajoutez les réponses BANT une fois que vous avez vos questions.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Vous pouvez également personnaliser la section détaillée des questions BANT et la présentation des listes associées pour faciliter la visualisation de vos données au fur et à mesure. Voici à quoi ressemble l’un de mes enregistrements de questions BANT terminés :

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Félicitations! Vous êtes désormais un héros CMDT !

Étape 2 : Créez un objet personnalisé « Scores BANT » en tant qu’enfant de l’opportunité

Maintenant, nous devons créer une place pour ces questions et réponses par rapport à un accord spécifique pour être stocké. Nous pourrions le faire avec des champs personnalisés sur l’opportunité, mais cela ferait beaucoup de champs et il serait difficile de mettre à jour ou de modifier. Peut-être plus critique encore, il serait difficile de résumer les scores.

Au lieu de cela, créons un objet personnalisé. J’ai appelé cet objet « BANT Score » et je lui ai donné une recherche maître-détails pour l’opportunité, donc c’est simple comme bonjour ?? pour résumer les scores plus tard. Vous aurez besoin d’un champ pour suivre la question, d’un autre pour suivre la réponse, d’une liste de sélection pour suivre la catégorie et enfin d’un champ numérique pour suivre le score obtenu par cette réponse. J’ai également ajouté un champ Last Score Set pour aider à auditer la solution et un champ Notes pour donner aux commerciaux un endroit pour capturer le contexte.

Voici mon objet Score BANT :

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Étape 3 : automatisez le travail chargé et facilitez la saisie de données avec Flow

Un utilisateur peut désormais créer des enregistrements de score BANT personnalisés sur son opportunité et saisir manuellement toutes ces informations, mais nous pouvons faire mieux que cela. N’oubliez pas que les CMDT sont accessibles depuis Flow. Pour éviter à nos commerciaux un travail chargé, créons un flux qui récupère toutes les questions BANT actuelles de CMDT et les utilise pour créer des enregistrements de score BANT chaque fois qu’une opportunité est créée.

Pour ce faire, vous devez commencer par un flux déclenché par un enregistrement défini pour s’exécuter après la création d’un enregistrement sur l’objet Opportunity. Nous voulons que cela se produise uniquement lorsqu’une nouvelle opportunité est créée, et nous utiliserons une sauvegarde après enregistrement pour notre exécution, comme ceci :

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Ensuite, nous ajouterons une étape « Obtenir des enregistrements » pour récupérer et stocker toutes les questions BANT actuelles à partir de métadonnées personnalisées. Voici comment j’ai configuré mon étape « Get BANT Questions » :

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Cela collectera tous les enregistrements de métadonnées personnalisées de la question BANT avec un statut défini sur « Actif ». Cela vous permet de conserver les anciennes questions BANT si vous souhaitez des enregistrements historiques, mais de ne travailler qu’avec les questions actives. Nous allons avoir affaire à un collection d’enregistrements, alors assurez-vous de sélectionner Tous les enregistrements en bas sous « Combien d’enregistrements à stocker ».

Maintenant, vous voudrez parcourir cette collection et créer vos partitions BANT « brouillons ». Pour ce faire, utilisez un élément Loop — voici le mien :

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Dans la boucle, nous utiliserons deux éléments d’affectation pour créer d’abord un enregistrement de score BANT « brouillon », puis ajouterons vos brouillons d’enregistrements à une collection afin que vous puissiez les créer tous en même temps. C’est appelé « gonfler » le flux et nous procédons ainsi pour éviter de créer de nouveaux enregistrements dans une boucle, que vous ne devrait JAMAIS FAIRE dans Flow, pour de très bonnes raisons.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Lorsque vous définissez les valeurs « brouillon », vous pouvez utiliser l’enregistrement de métadonnées actuel dans votre boucle pour les valeurs de votre nouvel enregistrement de partition « brouillon », comme suit :

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

La variable « varDraftScore » est une variable d’enregistrement de l’objet Score BANT ; une fois créé, vous pouvez référencer ses champs individuels et définir une valeur pour chacun. C’est un peu difficile à lire dans la capture d’écran car les valeurs complètes sont tronquées, mais voici comment les champs s’alignent :

varDraftScore.Opporutnity__c   =  $Record.Id

varDraftScore.Question_Number__c  = $Loop_Metadata.Label

varDraftScore.Question__c   = $Loop_Metadata.Question__c
varDraftScore.Category__c = $Loop_Metadata.Category__c

Enfin, à la fin, nous créons nos nouveaux scores BANT brillants sur la nouvelle opportunité. Pour ce faire, nous utilisons un élément Créer des enregistrements :

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Huzzah ! ??

Maintenant que nous avons automatisé la création des questions BANT, permettons à nos utilisateurs de sélectionner facilement la bonne réponse à n’importe quelle question. Pour ce faire, nous allons créer un autre flux, et cette fois, nous utiliserons un flux d’écran que nous déploierons sur la page d’enregistrement du score BANT. Ce flux récupère les réponses correctes à partir des métadonnées personnalisées et les présente sous la forme d’un ensemble d’options parmi lesquelles l’utilisateur peut choisir la meilleure réponse.

Démarrez votre flux d’écran en effectuant un Get et en stockant les détails de l’enregistrement de score BANT actuel. Vous pouvez le faire en définissant une variable pour l’ID de cet enregistrement (recordId fonctionne très bien, mais ici, j’ai utilisé varBantScoreId pour être plus descriptif) et en le rendant disponible pour la saisie. De cette façon, nous pouvons passer une valeur dans cette variable à partir de notre enregistrement.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Maintenant que vous avez les valeurs sur notre enregistrement de score BANT, nous pouvons rechercher les réponses correspondantes à notre question à partir des métadonnées personnalisées. C’est pourquoi nous avons pris le temps dans un premier temps d’être réfléchi et précis dans l’étiquetage de nos questions. Si une question est étiquetée « B2 », alors nous avons juste besoin d’obtenir toutes les réponses dont le numéro de question contient « B2 ». Cela renverra « B2-1 », « B2-2 », et ainsi de suite. Cela a la flexibilité supplémentaire de sens que nous pouvons avoir autant de réponses à n’importe quelle question que nous le souhaitons pour les besoins de notre modèle BANT.

La meilleure façon de le faire dans Flow est de créer une variable de type « Record Choice Set ». Ajoutez-y tous les enregistrements de réponse BANT dont le champ Étiquette contient notre numéro de question BANT. J’aime aussi les trier par ordre croissant pour qu’ils soient jolis dans le flux d’écran. Sous « Configurer chaque choix », assurez-vous de définir la valeur du choix sur Id – c’est ainsi que nous nous souviendrons de ce que l’utilisateur a choisi plus tard.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Maintenant, vous pouvez créer un écran pour que l’utilisateur choisisse la réponse qu’il souhaite. Pour lui donner plus de flair, j’ai utilisé des champs de fusion dans un composant Afficher le texte pour annoncer ma question spécifiquement, et j’ai ajouté des composants dynamiques Afficher le texte pour alerter l’utilisateur si le score avait déjà été envoyé ou non. C’est facile à faire en faisant simplement glisser le composant Afficher le texte sur votre écran, puis en définissant les conditions sous Visibilité du composant afin qu’il ne s’affiche que lorsque l’avertissement est pertinent. Dans ce cas, j’en ai deux pour si le champ BANT_Score_Set__c est nul ou non. Nous mettrons à jour ce champ lorsque nous mettrons à jour les scores, afin que nous puissions garder une trace de la dernière mise à jour de l’enregistrement de score uniquement pour des cas comme celui-ci.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Enfin, ajoutez votre ensemble de choix d’enregistrement en tant qu’ensemble de boutons radio en faisant glisser l’élément d’entrée Boutons radio sur l’écran. Dans le paramètre Choice, pointez vos boutons radio sur la variable Record Choice Set que nous avons déjà créée. Cela transforme l’ensemble d’enregistrements des métadonnées personnalisées en une entrée à choix multiples. C’est comme par magie ! ??

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Lorsque l’utilisateur fait son choix, vous pouvez mettre à jour les valeurs du score BANT en fonction de ce qu’il choisit, et même inclure ses notes. C’est ici que vous définissez le « Dernier jeu de scores » à l’aide de la variable $Flow de « Date actuelle » à l’intérieur d’un élément Mettre à jour les enregistrements. Je recommande également de suivre cette mise à jour avec un écran de commentaires indiquant clairement à l’utilisateur qu’il a mis à jour le flux avec succès.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Maintenant, déployons cette beauté au bon endroit dans notre interface utilisateur. Afin d’éviter de confondre les utilisateurs avec les champs vides pour la réponse et le score de l’enregistrement de score BANT, j’ai stylisé la page d’enregistrement Lightning pour le score BANT de sorte que le volet de détails soit caché derrière un onglet et que mon flux d’écran soit affiché bien en vue. De cette façon, les utilisateurs savent utiliser le flux d’écran pour effectuer leurs mises à jour.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

N’oubliez pas de transmettre la variable d’enregistrement au flux de la page d’enregistrement Lightning pour votre enregistrement BANT Score. Pour ce faire, après avoir fait glisser le flux sur le canevas, cochez la case « Passer l’ID d’enregistrement dans cette variable ». Si vous êtes comme moi, vous avez tendance à oublier cette étape et vous vous demanderez pourquoi votre flux d’écran ne fonctionne pas !

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Pour un peu plus de flair, j’ai ajouté un composant Related Record qui exploite la mini mise en page associée à Actions rapides spécifiques à un objet, un pour l’opportunité parent et son compte. Encore une fois, c’est facile car BANT Score est un enregistrement enfant dans une relation maître/détail avec Opportunity.

Pour créer ces aperçus, commencez à partir de l’objet dont vous consultez l’enregistrement et créez une nouvelle action rapide. Pour le composant Opportunity parent supérieur, nous partons de l’objet Opportunity et créons une nouvelle action. Vous voulez choisir de mettre à jour un record, pas créer. J’aime appeler ces « enregistrements associés » afin de ne pas les confondre avec mes autres actions rapides.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Une fois que vous avez votre action, cliquez sur le bouton Modifier la mise en page de la page Action pour personnaliser les champs que vous souhaitez voir apparaître dans votre composant d’enregistrement associé. Cela fonctionne à peu près comme une mise en page principale, mais veillez à ne pas choisir trop de champs. Plus de six champs ralentiront les temps de chargement de votre page.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Enfin, ouvrez la page d’enregistrement Lightning pour l’objet Score BANT. Dans mon cas, j’ai juste la page qui est définie comme mon organisation par défaut. Vous allez faire glisser le composant Related Record de la liste des composants standard sur la gauche vers votre page. Ensuite, configurez le composant pour qu’il pointe vers l’opportunité parent du score BANT et sélectionnez votre action de mise à jour si nécessaire (s’il n’y a qu’une seule action de mise à jour sur l’objet, elle sera par défaut cette action). En option, vous pouvez donner au composant une étiquette personnalisée ; J’ai utilisé « Parent Opportunity » par souci de clarté. Ensuite, répétez tout cela pour le compte, et vous êtes prêt.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Étape 4 : Mettez-le à l’échelle ! Ajouter un score de masse

Jusqu’ici tout va bien! Désormais, nos utilisateurs peuvent ouvrir chaque score BANT et utiliser l’assistant pour effectuer des mises à jour précises de la réponse et du score, et notre score BANT total sera cumulé à l’opportunité. Mais pouvons-nous faire cela encore plus facile ? Ne serait-il pas formidable que les utilisateurs puissent mettre à jour plusieurs scores BANT à la fois à partir d’une liste de tous les scores BANT existants ? Nous pouvons le faire avec un peu d’aide de nos amis de Non officielSF! Si vous êtes nouveau sur cette ressource pratique, UnofficialSF est une banque de composants installables en crowdsourcing que vous pouvez utiliser pour étendre votre flux. Une note de prudence: Surtout parce que ceux-ci sont crowdsourcing et ne sont pas répertoriés sur l’AppExchange, assurez-vous toujours de les tester (et TOUS les composants que vous installez) d’abord dans votre bac à sable !

L’un de mes préférés est Eric Smith Tableau de données. Cet outil vous permet d’afficher n’importe quelle collection d’enregistrements sous forme de grille exploitable. C’est génial pour travailler avec des lots d’enregistrements et afficher beaucoup d’informations dans un petit espace.

Une fois installé dans votre organisation (avec les prérequis packs de base), vous pouvez démarrer un flux d’écran avec un Get de tous les scores BANT de l’opportunité, encore une fois en utilisant une variable que vous allez créer et définir pour accepter l’entrée comme « recordId ».

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Ici, encore une fois, j’aime ajouter un tri basé sur le numéro de la question pour que le résultat soit joli dans l’affichage de la table de données.

Ensuite, vous créerez un écran à l’aide du composant Datatable. Assurez-vous de formater ses paramètres selon Le guide d’Eric, mais le plus important est de transmettre votre collection « Get_BANT_Scores » dans la table de données pour l’afficher sous Afficher quels enregistrements ? champ.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Le composant Datatable d’Eric génère les enregistrements qu’un utilisateur sélectionne en tant que nouvelle collection, que vous pouvez désormais parcourir en boucle. À l’intérieur de la boucle, placez un écran permettant à l’utilisateur de choisir la bonne réponse, puis utilisez les éléments d’affectation pour définir les nouvelles valeurs de brouillon, comme nous l’avons fait pour un enregistrement individuel à l’étape 3.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

À la fin, mettez à jour vos scores et le flux reviendra à la table de données nouvellement mise à jour. Maintenant, créez un emplacement sur votre page d’enregistrement d’opportunité pour distribuer ce flux. Personnellement, j’aime mettre des aides à l’utilisateur et des assistants comme celui-ci derrière un onglet. Cela leur donne de l’espace pour respirer, mais les utilisateurs n’ont pas à le regarder à moins ou jusqu’à ce qu’ils en aient besoin.

Voyons maintenant en action !

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Les utilisateurs peuvent désormais sélectionner plusieurs scores BANT avec lesquels travailler et parcourir rapidement leurs choix, répondre à la question et ajouter des notes – et Salesforce se chargera de totaliser les scores.

Étape 5 : Ajouter des indicateurs de progression

Dernier point, mais non le moindre, donnons à nos utilisateurs des indicateurs très clairs de leurs performances. Nous voulons leur montrer à la fois comment évolue le score BANT de leur opportunité ET à quel point ils en sont à terminer la notation.

Encore une fois, parce que les scores BANT sont un enregistrement enfant de l’opportunité, nous pouvons cumuler le score total assez facilement. Nous pouvons également calculer le pourcentage des scores BANT qui ont été complétés assez facilement. Nous pourrions certainement afficher ces chiffres dans notre volet de présentation des opportunités, et cela répondrait à l’exigence.

Mais, pouvons-nous faire mieux que cela ? TU PARIES! ??

Créons deux images construites de manière déclarative sur notre opportunité pour afficher ces informations à la place. En utilisant une image ou une icône pour partager des informations, les utilisateurs peuvent assimiler ces informations plus rapidement et de manière plus mémorable. Nous ne voulons pas devenir trop compliqués ici et ralentir nos temps de chargement, alors utilisons champs de formule qui exploitent les petites images disponible dans chaque organisation Salesforce. Il existe un million de façons de les utiliser et un tas de choix, mais nous allons en utiliser deux : les étoiles et les échantillons de couleur.

Tout d’abord, je voudrais exprimer à quel point le score Opportunity est élevé sur une échelle de cinq étoiles. Notre score total possible est de 400, soit 80 points pour une étoile. Pour créer ces champs de formule, choisissez le type de formule de texte et utilisez la fonction IMAGE().

IMAGE (

      IF ( BANT_Score__c = 0,

            “/img/samples/stars_000.gif”,

      IF ( BANT_Score__c > 0 && BANT_Score__c  80 && BANT_Score__c  160 && BANT_Score__c  240 && BANT_Score__c  320,

            “/img/samples/stars_500.gif”,

“/img/samples/stars_000.gif”)))))), “RatingImage”)

Dans ma formule, j’ai utilisé des fonctions IF () imbriquées pour stipuler les plages et attribuer un certain nombre d’étoiles en choisissant la bonne image.

Ensuite, j’aimerais saisir à quel point je suis parvenu à répondre à tous mes scores BANT. Pour ce faire, j’utiliserai les images d’échantillons de couleurs. L’avantage de la fonction IMAGE() est qu’elle vous permet de définir à la fois la hauteur et la largeur de l’échantillon de couleur. Normalement, nous laissons ces bits de côté car ils sont facultatifs. Au lieu de cela, nous allons tirer parti de ces paramètres pour créer des barres. La fonction IMAGE() complète fonctionne comme ceci :

IMAGE(IMAGE_URL, ALTERNATE_TEXT, HEIGHT, WIDTH)

Donc, je pourrais écrire une formule comme celle-ci :

IMAGE(“/img/samples/color_green.gif”, “green”, 10, 50)

Cela me donnerait une barre cinq fois plus large que haute. Ce qui libère vraiment la puissance de cet échantillon d’image, c’est lorsque vous réalisez que vous pouvez mettre LOGIC dans les champs hauteur/largeur ! Collez deux échantillons ensemble et calculez leurs largeurs en tant que partie d’un montant total, et vous obtenez une barre de progression totalement déclarative.

Pour faire vos calculs, créez deux champs Récapitulatif de cumul. Tout d’abord, créez Total_BANT_Scores__c, qui compte le nombre total d’enregistrements enfants de score BANT sur l’opportunité, et deuxièmement, créez Completed_BANT_Scores__c, qui compte les scores BANT sur l’oppty qui ont une entrée — n’importe quelle entrée — dans le champ Dernière mise à jour. Voici ma formule finale, avec commentaires :

/* this starts the Image function & asks for a green swatch 10 pixels high */

IMAGE("/img/samples/color_green.gif","green", 10 , 

/* this calculates the number of pixels in width to give completed items */

      (Completed_BANT_Scores__c * 10)

/* this closes the image function and appends it to the next bit */

      )& 

/* this starts the Image function & asks for a red swatch 10 pixels high */

IMAGE("/img/samples/color_red.gif","red", 10 , 

/* this calculates the number of pixels in width to give incomplete items */

    ((Total_BANT_Scores__c - Completed_BANT_Scores__c)) * 10

/* this closes the image function and appends it to the next bit */

    ) & 

/* this returns the percentage complete in text */

" "& TEXT (ROUND((( Completed_BANT_Scores__c / Total_BANT_Scores__c ) * 100 

),0)) & "%"

J’aime utiliser des commentaires dans mes formules pour faciliter leur dépannage ou pour que la prochaine personne qui hérite de mon travail puisse les lire plus facilement. Commenter est un jeu d’enfant – utilisez simplement /* au début de la ligne et */ à la fin et Salesforce sautera cette étape.

Le résultat final s’avère être une barre de faits saillants assez cool ! Nous pouvons clairement voir la partition, comment la partition se présente et à quel point nous en sommes dans notre travail.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

POINTS BONUS : Contrôle de version et outil de nettoyage

Donc, en mettant tout cela ensemble, nous avons un très bon modèle BANT en cours d’exécution dans notre organisation. Les utilisateurs peuvent évaluer rapidement et facilement les opportunités, et les administrateurs peuvent facilement mettre à jour le modèle. Pour les points bonus, vous pouvez également suivre les versions. Étant donné que chacun de ces scores BANT individuels n’a de sens que dans le contexte de l’ensemble du modèle, si une organisation modifie la répartition des scores, elle aura probablement besoin d’un moyen d’actualiser l’ensemble des scores BANT sur les opportunités en cours.

Pour ce faire, vous devez d’abord savoir quelle version de votre modèle BANT est actuellement utilisée. Je suis simplement revenu aux métadonnées personnalisées et j’ai créé une nouvelle CMDT appelée « Version BANT ».

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Cela stocke une simple chaîne de texte que j’ai utilisée pour identifier la version. Idéalement, une organisation aurait le modèle entier et son nom de version documentés en dehors de Salesforce. Lorsque le modèle change, il est fort probable que ce changement soit également haché lors de réunions ou de sessions de travail en dehors de Salesforce. Si l’administrateur revient pour apporter des modifications importantes au modèle, il peut créer un nouvel enregistrement de version BANT, le nommer et définir l’ancien sur le statut « Retiré ».

Ensuite, je suis revenu au flux de création des scores BANT sur Oppty create, et j’ai ajouté une étape pour tamponner l’opportunité parente avec la version lors de la création de l’enregistrement.

, Comment j&rsquo;ai résolu ce problème : créer un score d&rsquo;opportunité BANT avec des types de métadonnées personnalisés<span class="wtr-time-wrap after-title"><span class="wtr-time-number">22</span> minutes de lecture</span>

Désormais, il est possible de créer un rapport de toutes les opportunités en fonction de la version du modèle BANT qu’ils utilisent actuellement. Cela facilite leur mise à jour manuelle ou, mieux, vous pouvez créer un flux pour « actualiser » les scores BANT en fonction d’un clic sur un bouton d’action rapide ou d’un autre événement utilisateur. Cela signifie que le choix de mettre à jour ou non le modèle BANT pour les opportunités en vol est simple et que le travail peut être effectué d’un simple clic.

Résultats commerciaux :

Cela demande un peu de travail et il y a beaucoup de pièces mobiles, mais au final, nous avons un modèle de vente BANT totalement personnalisé exécuté dans Salesforce. Nous pouvons facilement mettre à jour notre modèle et même suivre quelles opportunités se trouvent sur quel modèle. Les utilisateurs peuvent clairement voir comment se classe leur opportunité ET combien de travail il leur reste à faire, et le marketing peut cibler leurs campagnes de développement encore plus précisément qu’auparavant.

Essayez ceci à la maison

Essayez les CMDT dès aujourd’hui ! C’est un moyen fantastique de décharger la logique métier et c’est une superpuissance d’administrateur ! Consultez les badges Trailhead ci-dessous pour commencer et améliorer vos compétences en matière de flux et de formule.

Badges de début de sentier pertinents

Vous voulez voir plus de bonnes choses? Abonnez-vous à notre chaîne !

INSCRIVEZ-VOUS AUJOURD’HUI





Source de l’article traduit automatiquement en Français

Besoin d'aide ?
Vous utilisez Pardot depuis un certain temps mais vous n'êtes pas sûr d'en
exploiter tout le potentiel

Notre analyse de votre Pardot offerte dès aujourd'hui
Merci, vous pouvez compléter notre questionnaire
Nous allons revenir vers vous rapidement !

Fermer