Le modèle B2B2C sur Salesforce

6 minutes de lecture

Vous connaissez le modèle B2B2C sur Salesforce ? Nombre d’entreprises ont bâti leur stratégie commerciale et marketing sur un modèle B2B. Normalement, en s’appuyant sur des partenaires ou des intermédiaires pour interagir avec leurs utilisateurs finaux.

Les entreprises, qui ont, quant à elles, pris le parti d’adresser le B2B2C, sont généralement organisées de façon sillotée. Nous retrouvons très souvent une équipe en charge des clients. Et également une équipe en charge des partenaires ayant très peu d’interactions entre elles, avec des roadmap produit distinctes. Résultat : le client final est perdu.

Dernièrement, les évolutions du marché ainsi que les nouvelles technologies amènent les entreprises à repenser leur stratégie en adressant un modèle B2B2C « client centric ».

Le modèle B2B2C sur Salesforce

Salesforce offre une plateforme omnicanale — via ses clouds « Sales », « Services » et « Marketing » — qui permet de répondre à l’ensemble de ces enjeux pour peu qu’elle soit bien conceptualisée et paramétrée. L’objectif de cet article n’est bien évidemment pas de vous présenter comment traiter cette problématique avec Salesforce (on pourrait y passer quelques nuits) — mais plus simplement de vous présenter nos choix de modélisation de données.

Voici le modèle de données que nous avons implémenté pour un de nos clients.

Gestion des clients

Nous utilisons l’objet « Person Account » pour les particuliers (B2C) et l’objet « Account » pour les partenaires. Pour ceux qui ne connaitraient pas l’objet PersonAccount, voici la documentation officielle (https://help.salesforce.com/articleView?id=account_person.htm&type=5).

Vous devez savoir plusieurs choses sur l’objet « PersonAccount »

  • Il a été créé pour « bypasser » le couplage fort entre « Contact » et « Account ». En effet, il n’était pas possible de créer un contact sans compte associé. Or, lorsque vous saisissez un particulier, vous n’avez généralement pas cette information.
  • Chaque fois que vous créez un « PersonAccount », un « Contact » associé est automatiquement créé
  • en base de données SF, les enregistrements sont stockés sur la même table.

Ce dernier point est très important car votre base de comptes « B2B » et votre base de comptes « B2C » sont stockées sur la même table. Cela peut donc entraîner des problématiques de performances.

Un exemple étant plus parlant que la théorie, voici le problème que nous avons rencontré. Nous avons mis en production l’application service client « B2B », avec environ 15000 comptes. Un web service a été mis en place au sein de Salesforce pour permettre à une application externe de récupérer un compte « B2B » en fonction d’un numéro de téléphone.

Ce web service fonctionnait correctement jusqu’au jour où nous avons mis en production la base de compte « B2C » contenant plus de 1 million de comptes particuliers. La même requête partait alors souvent en « timeout ». La correction a été assez simple en demandant à Salesforce d’indexer la colonne « numéro de téléphone ».

Cas particulier d’un contact qui est partenaire et client

Nous n’avons pas fait le choix d’implémenter ce cas d’usage car le métier n’en avait pas le besoin. Ainsi, dans notre org, si une personne est à la fois partenaire et cliente, elle existe deux fois en base de données.

Si, par contre, le métier souhaite avoir l’information qu’une personne est à la fois client et partenaire, il vous faudra activer la fonctionnalité « Multiple Account » (https://help.salesforce.com/articleView?id=shared_contacts_set_up.htm&type=5)


Contacts avec plusieurs comptes

En deux mots, cette fonctionnalité vous permet d’associer plusieurs comptes à un contact avec obligatoirement un compte en relation principale.

Je n’ai pas essayé personnellement de mettre en place cette configuration, mais la documentation Salesforce (https://help.salesforce.com/articleView?id=account_person_behavior.htm&type=5) indique qu’il est possible d’associer à un contact un « Account » et un « PersonAccount » — la seule contrainte étant que le compte principal (dans notre cas l’entreprise partenaire du contact) soit du type “BusinessAccount” et donc par conséquence, que le « PersonAccount » soit une relation dite indirecte.

Distinction B2B vs B2C

Dans l’utilisation des différents objets standards (« Lead », « Opportunity », « Quote », « Contract »…. La liste n’étant pas exhaustive). Nous avons pris le parti de créer un record type « B2B » et un record type « B2C ». Bien évidemment, ce choix s’applique aussi aux objets custom qui seraient communs au « B2B » et « B2C ».

Au delà des problématiques de performances évoquées plus haut, il est important de comprendre que vos applications B2B et B2C partagent le même modèle de données. Il est impératif de travailler en amont sur une stratégie de TNR (tests de non régressions) car chaque modification du modèle peut impacter l’ensemble de vos applications.

La conduite du changement est aussi primordiale sur cet aspect .  N’oubliez pas de préparer vos métiers en phase de cadrage en leur expliquant clairement les avantages et inconvénients d’un modèle B2B2C.

Conclusion

De mon point de vue, vous l’aurez compris, Salesforce est une plateforme qui se prête parfaitement au modèle B2B2C. La modélisation de la base n’est pas si complexe à appréhender . Néanmoins, il est très important d’anticiper les problématiques de performances / régressions que cela peut entraîner.

Par la suite, je pense aborder les impacts et complexités sur Marketing Cloud que nous sommes en train d’intégrer et de connecter à notre org Service Cloud.

Voilà pour cette introduction au modèle B2B2C sur Service Cloud. Je suis vraiment preneur de vos retours ! Pour notre part, nous n’avions trouvé aucun article qui abordait cette problématique sur Salesforce.

Pour aller plus loin, lisez notre article Einstein Article Recommendations et [MCT #6] 5 raisons d’aimer Pardot / Marketing Cloud Account Engagement.

A lire également sur le blog