Comment scaler le data model de votre CRM Salesforce tout en évitant un Data Skew?

Lun 3 janvier 2022

Qu’est ce que le data skew d’une instance CRM Salesforce?

L’intégration d’une solution CRM Salesforce implique le fait de prendre les bonnes décisions de design et d’architecture du modèle de données (Data model) qui peuvent influer sur la performance d’une instance CRM Salesforce.

Dans le but de ne pas impacter la performance de votre instance Salesforce par un Data skew, Il est recommandé de respecter trois règles d’or dans le design d’une solution CRM Salesforce afin de ne pas avoir plus de 10 000 enregistrements  :
par objet appartenant à un utilisateur Salesforce
ayant une relation lookup avec un enregistrement
associés au même enregistrement de compte

Sans une approche réfléchie dans la conception de l’architecture de votre solution CRM Salesforce, vous risquez de vous retrouver avec un grand nombre d’enregistrements qui vont ralentir la vitesse de réponse votre instance Salesforce ce qui par contrecoup en dégradera l’usage et la confiance de vos utilisateurs.

Dans cet article, nous allons nous pencher sur les trois types de data skew, en passant en revue les bonnes pratiques à considérer lors de la conception afin que vous puissiez éviter le data skew et profiter pleinement des performances de votre instance CRM Salesforce.

Quels sont les différents types de Data Skew Salesforce?

Account skew

Les objets Compte et Opportunité ont une relation de type lookup, ils utilisent le même accès de partage.
Donc, si un utilisateur a accès à un compte, elle aura un accès similaire à tous ses enregistrements enfants comme les opportunités.
Lorsqu’un enregistrement d’opportunité est mis à jour (verrouillé pour maintenir l’intégrité des données car Salesforce doit exécuter en arrière plan les règles de validations et autres automatisations), alors son compte parent est également verrouillé, et vice versa, de ce fait ce verrouillage vous bloquera de nombreux enregistrements.

Pour rappel lorsqu’un utilisateur sauvegarde un enregistrement Salesforce, voici l’ordre d’exécution des règles et processus :
-Règles de validation
-Règles d’attribution
-Règles de réponses automatiques
-Règles de workflow
-Processus
-Règles de hiérarchisation

Lorsque plus de 10 000 enregistrements d’opportunités sont associés à un seul enregistrement de compte, cela s’appelle Account skew, il impacte la performance de votre instance. 

Alors pour empêcher l’Account skew, Easyfront Consulting vous recommande : 

  • d’éviter d’associer plus de 10 000 enregistrements enfants à un seul enregistrement de compte
  • de créer des type d’enregistrements de compte pour gérer ces opportunités (objet enfant)

Ownership skew

Lorsqu’un  seul utilisateur possède plus de 10 000 enregistrements d’un même objet, cela s’appelle “Ownership skew”.

Quelques exemples pour mieux comprendre ce concept :

  • lorsque toutes les opportunités non attribuées sont attribuées au directeur des ventes
  • lorsque les données sont importées dans Salesforce, elles sont attribuées à un administrateur par défaut

Dans les deux cas, il est probable qu’un utilisateur possède de nombreux enregistrements du même objet : vous pouvez concevoir un rapport par objet Salesforce pour détecter un Ownership skew.

Le Ownership skew peut avoir un impact négatif significatif sur la performance de votre instance Salesforce.

Afin de retrouver une bonne performance de votre instance CRM Salesforce, nous vous recommandons en actions curatives de :
-supprimer certains enregistrements obsolètes appartenant à l’utilisateur
-ré-attribuer des enregistrements à d’autres utilisateurs

Dans le cas d’usage où il n’est pas possible d’empêcher « Ownership skew”, Easyfront Consulting vous recommande trois options :

  • Assurez-vous que l’utilisateur qui possède un grand nombre d’enregistrements du même objet (Ex : Pistes, Comptes, contacts) n’a pas de rôle, ou que l’utilisateur est placé dans un rôle sans aucune hiérarchie.
  • Si le partage d’un objet et la visibilité à l’échelle de l’organisation doivent être accordés à des utilisateurs supplémentaires, il est préférable d’accorder l’accès au niveau du profil.
  • Si l’accès au niveau du profil n’est pas possible, une règle de partage fondée sur des critères peut être donnée pour accorder un accès supplémentaire dans de tels cas.
Lookup skew

Lookup skew est une erreur qui se produit dans la relation objet lorsqu’un grand nombre d’enregistrements enfants sont associés à un enregistrement parent. 

Afin d’empêcher le lookup skew, Salesforce vous recommande de: 

  • Distribution du skew : l’origine du problème technique “lookup skew” est qu’un grand nombre d’enregistrements cherchent un seul enregistrement.
    Alors pour remédier à ce problème on pourrait le distribuer, on commence par identifier la lookup skew, et on ajoute des lookups supplémentaires pour distribuer le skew, ceci permet de réduire ou même éliminer vos exceptions de verrouillage. 
  • Réduction du temps d’enregistrement: en supprimant les processus inutiles (process builder, workflow), ainsi qu’en suivant les meilleurs pratiques d’apex, cela vous permettra d’augmenter les performances de votre instance. 
  • Utilisation de picklist: lorsque vous avez un nombre relativement faible de lookup, il est préférable d’utiliser un champ picklist plutôt qu’un champ lookup pour définir ces valeurs.

Pour récapituler, et afin d’éviter le data skew…

  • évitez d’avoir un grand nombre (> 10000) d’enregistrements d’enfants  dans une relation lookup ou Master/ detail pour cela vous pouvez utiliser l’algorithme “ Round robin” qui s’occupe d’assigner l’enregistrement enfant au parent
  • éviter un grand nombre d’enregistrements appartenant à un seul utilisateur Salesforce

Fatima ARROU

En savoir +