Personyze Wiki Personyze Wiki docs
Français
Open Personyze
Docs/ CRM & Marketing/ Intégration Salesforce — données CRM à l’aller, leads, audiences et profils au retour
CRM & Marketing

Intégration Salesforce — données CRM à l’aller, leads, audiences et profils au retour

Personnalisez votre site web avec les données Salesforce des Contacts, Leads, Accounts et opportunités ouvertes — visiteurs anonymes compris, via leur entreprise — et renvoyez vers Salesforce les leads des formulaires, les audiences et…

18 min read Updated 46 minutes ago

Connectez Salesforce à Personyze pour personnaliser votre site web avec les données de votre CRM, et pour renvoyer vers Salesforce les leads, les audiences et le comportement des visiteurs de votre site.

Dans les deux sens Les champs des Contacts, des Leads, des Accounts et des opportunités ouvertes arrivent sur vos visiteurs — même sur les visiteurs anonymes, via l’Account de leur entreprise. Les leads des formulaires, les audiences et les profils des visiteurs repartent vers Salesforce. La configuration prend une dizaine de minutes dans Salesforce.

Ce que cela fait

De Salesforce vers Personyze

  • Visiteurs connus. Quand arrive un visiteur que Personyze connaît par son e-mail — il a rempli un formulaire, s’est connecté, ou vient d’un lien d’e-mail qui porte son adresse —, Personyze le recherche dans Salesforce une fois par visite : d’abord son Contact, puis son Lead s’il n’a pas de Contact. Les champs que vous choisissez — fonction, statut du lead, note, propriétaire, secteur et type de l’Account, étape de l’opportunité ouverte, n’importe quel champ personnalisé — deviennent des attributs du visiteur. Ciblez vos campagnes sur eux avec des règles de ciblage, et affichez-les dans votre contenu sous forme de variables dynamiques.
  • Visiteurs anonymes, par entreprise. Quand une intégration d’enrichissement d’entreprise (ZoomInfo, Clearbit, Leadfeeder, Albacross, 6sense, Snitcher) indique à Personyze pour quelle entreprise travaille un visiteur, Personyze trouve l’Account Salesforce dont le site web correspond au domaine de cette entreprise. Les champs de l’Account et sa dernière Opportunity ouverte atteignent le visiteur alors même que personne ne l’a encore identifié — les visiteurs d’un compte cible peuvent ainsi voir du contenu conçu pour eux dès leur première page vue.
  • Les Campaigns comme audiences. Choisissez une Campaign Salesforce et ses membres deviennent une liste d’audience Personyze, synchronisée avec la Campaign toutes les heures. Utilisez-la dans n’importe quelle campagne.

De Personyze vers Salesforce

  • Leads des formulaires. Un Lead Capture Form (ou une prise de rendez-vous) peut envoyer chaque soumission à Salesforce : le Contact ou le Lead qui porte cet e-mail est mis à jour, ou un nouveau Lead est créé, et il peut être ajouté à une Campaign.
  • Synchronisation des profils visiteurs. Personyze écrit sur leur Contact ou leur Lead, après chaque visite, les attributs de visiteur que vous choisissez — les audiences dont ils font partie, leurs principaux centres d’intérêt, leur nombre de visites, leur dernière visite, les données d’enrichissement. Il peut aussi enregistrer chaque visite comme une Task terminée sur l’enregistrement.
  • Des listes d’utilisateurs vers les Campaigns. Ajoutez les personnes d’une liste d’utilisateurs Personyze à une Campaign Salesforce.

Ce qu’il vous faut

  • Une édition de Salesforce avec accès à l’API : édition Enterprise, Unlimited, Performance ou Developer. La Professional Edition nécessite le module complémentaire API de Salesforce.
  • Un administrateur Salesforce pour créer une External Client App dans votre org — une dizaine de minutes.
  • Un utilisateur Run As pour Personyze. Le mieux est un utilisateur d’intégration dédié, pour que rien ne casse quand quelqu’un part ou change de mot de passe. Il lui faut l’autorisation API Enabled, l’accès en lecture aux Contacts, Leads, Accounts, Opportunities et Campaigns, et l’accès en modification à tout ce que Personyze doit écrire : Leads, Contacts, membres de Campaign, Tasks, et les champs que vous synchronisez.

Étape 1 : créer l’External Client App dans Salesforce

  1. Dans Salesforce, ouvrez Setup → Apps → External Client Apps → External Client App Manager et cliquez sur New External Client App.
  2. Donnez-lui un nom (par exemple « Personyze ») et un e-mail de contact, et réglez Distribution State sur Local.
  3. Sous API (Enable OAuth Settings), cochez Enable OAuth.
    • Callback URL : saisissez celle qu’affiche le panneau Salesforce de Personyze sous Comment le configurer — https://personyze.com/oauth/salesforce.php, ou votre propre adresse Personyze si vous utilisez un domaine en marque blanche. La connexion de Personyze n’y envoie jamais personne, mais Salesforce en exige une.
    • OAuth Scopes : ajoutez Manage user data via APIs (api) et Perform requests at any time (refresh_token, offline_access).
  4. Dans Flow Enablement, cochez Enable Client Credentials Flow et confirmez la boîte de dialogue. Enregistrez l’app.
  5. Ouvrez l’onglet Policies de l’app, cliquez sur Edit, et sous OAuth Policies, cochez de nouveau Enable Client Credentials Flow. C’est là qu’apparaît le champ Run As (Username) : choisissez votre utilisateur d’intégration. Enregistrez.
  6. Ouvrez l’onglet Settings de l’app → OAuth Settings → Consumer Key and Secret. Salesforce vous envoie d’abord un code de vérification par e-mail. La page affiche la Consumer Key et le Consumer Secret — vous saisissez les deux dans Personyze à l’étape 2. Conservez le secret en lieu sûr.
Activez Client Credentials deux fois. Le flux Client Credentials doit être activé aux deux endroits — Settings (Flow Enablement) et Policies (OAuth Policies). Oublier le second est l’erreur de configuration la plus fréquente.

Une nouvelle app peut mettre quelques minutes avant que Salesforce n’accepte ses identifiants.

Étape 2 : connecter Salesforce dans Personyze

  1. Dans Personyze, allez dans Paramètres → Intégrations → Salesforce.
  2. Saisissez :
    • URL My Domain — dans Salesforce, Setup → My Domain → Current My Domain URL, par exemple https://yourcompany.my.salesforce.com. L’adresse affichée dans la barre d’adresse de votre navigateur quand vous travaillez dans Salesforce (https://yourcompany.lightning.force.com/...) fonctionne aussi.
    • Consumer Key et Consumer Secret, obtenus à l’étape 1.
  3. Cliquez sur Connecter. Personyze vérifie les informations auprès de Salesforce avant de les enregistrer. Le panneau affiche ensuite « Connecté à <votre org> » et « En tant que <utilisateur>, via votre External Client App ».
Le panneau Salesforce dans Personyze, avant la connexion
Paramètres → Intégrations → Salesforce, avant la connexion : Comment le configurer ouvert, la Callback URL à saisir dans votre External Client App, et les trois champs demandés à l’étape 2. Cliquez pour agrandir.

Le Consumer Secret n’est plus jamais affiché. Pour changer d’app ou d’utilisateur plus tard, modifiez les champs et cliquez sur Vérifier et enregistrer ; laissez le secret vide pour conserver celui déjà enregistré.

Sandboxes. Une sandbox a son propre My Domain, qui se termine par sandbox.my.salesforce.com (par exemple https://yourcompany--uat.sandbox.my.salesforce.com). Créez l’External Client App dans la sandbox et connectez-vous avec le My Domain de la sandbox. Un compte Personyze se connecte à une seule org Salesforce à la fois.

Étape 3 : choisir ce qui arrive sur le visiteur

Dans le panneau, Correspondance de propriétés liste les champs Salesforce que Personyze place sur le visiteur. Configuration recommandée ajoute un bon ensemble de départ en un clic :

Champ Salesforce Attribut de visiteur Personyze
Person.Type (Contact ou Lead) Enregistrement Salesforce
Person.Title Fonction
Account.Name Société
Account.Industry Secteur
Account.Type Type de compte
Account.NumberOfEmployees Taille de l’entreprise
Opportunity.StageName Étape de l’opportunité

Ajouter une propriété propose tous les champs de votre org, champs personnalisés compris, lus dans Salesforce. Chacun s’écrit sous la forme de l’enregistrement dont il provient, d’un point, et du nom d’API du champ :

  • Contact.<field> — le Contact du visiteur.
  • Lead.<field> — son Lead, quand aucun Contact ne porte l’adresse. Un Lead converti n’est jamais utilisé.
  • Person.<field> — celui des deux qui a été trouvé, pour les champs que les deux possèdent : Person.Title, Person.LeadSource, Person.Owner.Name. Person.Type indique « Contact » ou « Lead ».
  • Account.<field> — l’Account du Contact ou, pour un Lead ou un visiteur anonyme, l’Account trouvé par le domaine de l’entreprise : Account.Industry, Account.Type, Account.Owner.Name, Account.Tier__c.
  • Opportunity.<field> — l’Opportunity ouverte de cet Account mise à jour le plus récemment : Opportunity.StageName, Opportunity.Amount, Opportunity.CloseDate.

Les champs de relation fonctionnent aussi, comme Account.Owner.Name ou Contact.Account.Parent.Name.

Comment les visiteurs anonymes sont rattachés aux Accounts

  • Le domaine de l’entreprise provient d’une intégration d’enrichissement d’entreprise. Associez son domaine à l’attribut Domaine de l’entreprise (sa Configuration recommandée le fait) — ou, pour Snitcher, son attribut de site web.
  • Personyze cherche ensuite les Accounts dont le Champ de domaine du compte contient ce domaine. Par défaut, il s’agit de Website ; si votre org conserve les domaines dans un champ à part, choisissez-le dans le panneau sous Visiteurs anonymes.
  • Les valeurs de Website sont comparées telles que les gens les saisissent : http://www.acme.com/en-us/, www.acme.com et acme.com correspondent toutes à acme.com, tout comme un sous-domaine tel que shop.acme.com. Des domaines ressemblants comme notacme.com ou acme.com.au ne correspondent jamais.
  • Un visiteur que Salesforce ne connaît pas par son e-mail, mais qui a utilisé une adresse professionnelle (pas Gmail, Outlook, Yahoo ni une autre messagerie gratuite), est rattaché de la même façon par le domaine de son adresse.

Pour construire des campagnes sur cette base, voir cibler les visiteurs d’entreprises précises.

Quand Salesforce est interrogé

  • Une fois par visite et par visiteur, à la première page vue, puis de nouveau quand l’e-mail du visiteur devient connu pendant la visite — jamais à chaque page vue.
  • Les réponses sont mémorisées pendant dix minutes : les visiteurs d’une même entreprise qui arrivent ensemble ne coûtent qu’une seule recherche.
  • Personyze suspend ses recherches quand votre org a utilisé 90 % de son quota d’API quotidien, pour que vos autres intégrations ne soient jamais à court à cause du site web.

Leads des formulaires

  1. Ouvrez un Lead Capture Form et allez dans Où vont les données (où vont les données).
  2. Ajoutez Salesforce.
  3. Facultativement :
    • Ajouter aussi à la campagne (ID, facultatif) — l’ID de la Campaign, à 15 ou 18 caractères, tiré de son adresse dans Salesforce (par exemple 701...).
    • Mise en correspondance des champs — les champs de formulaire que Personyze ne peut pas associer par leur nom, sous la forme form_field=SalesforceField séparés par des virgules, par exemple budget=Budget__c, how_heard=LeadSource.

Ce qui se passe à chaque soumission :

  • Le Contact qui porte l’e-mail soumis est mis à jour. S’il n’y en a pas, le Lead qui porte cet e-mail est mis à jour. S’il n’y a ni l’un ni l’autre, un nouveau Lead est créé.
  • Le prénom et le nom, la société, la fonction, le téléphone, le mobile, l’adresse, le pays, le site web, le secteur et le message sont associés d’eux-mêmes. Un champ de formulaire nommé exactement comme un champ Salesforce (par exemple Industry ou Budget__c) remplit ce champ.
  • Les champs de formulaire vides n’effacent jamais ce que Salesforce contient déjà.
  • Salesforce exige un Last Name et une Company sur chaque Lead. Quand le formulaire n’a pas de nom, la partie de l’e-mail avant le @ est utilisée. Quand il n’a pas de société, c’est la société trouvée pour le visiteur par l’enrichissement qui est utilisée, et sinon la Société d’une nouvelle piste que vous définissez dans le panneau (« [not provided] » par défaut).
  • Si une duplicate rule Salesforce bloque le nouveau Lead, c’est l’enregistrement avec lequel il correspond qui est mis à jour à la place.
  • Envoyer un test à toutes les destinations, dans l’éditeur du formulaire, vérifie la connexion et la Campaign, mais ne crée rien : aucun Lead de test n’atterrit chez votre équipe commerciale.

Plus d’informations sur les formulaires et la destination de leurs données : l’action formulaire de lead et capturer des leads et les envoyer vers votre CRM.

Synchronisation des profils visiteurs

Envoyez automatiquement ce que Personyze sait des visiteurs identifiés vers leurs enregistrements Salesforce.

  1. Dans Salesforce, créez un champ pour chaque valeur souhaitée, à la fois sur Contact et sur Lead — par exemple un champ Text Area Personyze_Audiences__c —, et donnez à l’utilisateur Run As l’accès en modification à ces champs.
  2. Dans le panneau, sous Synchronisation des profils vers Salesforce, activez Tenir les enregistrements Salesforce à jour.
  3. Associez chaque attribut de visiteur à un champ Salesforce. En plus de tous les attributs de visiteur de votre compte, vous pouvez associer :
    • Audiences dont fait partie le visiteur
    • Principaux centres d’intérêt
    • Nombre de visites
    • Heure de la dernière visite
    • Pages vues lors de la dernière visite
    • Objectifs atteints lors de la dernière visite
    • ID visiteur Personyze
  4. Facultativement, activez :
    • Enregistrer chaque visite comme tâche — une Task terminée sur le Contact ou le Lead pour chaque visite, avec les pages vues, le temps passé, les objectifs atteints, les audiences et les centres d’intérêt.
    • Créer des pistes pour les nouveaux visiteurs — désactivé par défaut : seules les personnes déjà présentes dans Salesforce sont mises à jour. Une fois activé, un visiteur identifié que Salesforce n’a pas devient un nouveau Lead.
  5. Cliquez sur Enregistrer.

Fonctionnement :

  • L’enregistrement d’un visiteur est écrit après la fin de sa visite, au plus une fois par visite, et seulement quand une valeur associée a changé.
  • Les valeurs sont adaptées à chaque champ : dates et dates-heures, nombres, cases à cocher, et plusieurs valeurs (comme les audiences) jointes par ; pour une liste de sélection multiple, ou par des virgules pour du texte.
  • Les enregistrements sont mis à jour par lots de 200 au maximum, toutes les 15 minutes : la synchronisation utilise donc peu de votre quota d’API.
  • Un champ qui n’existe que sur Lead (ou que sur Contact) n’est écrit que là.
  • Quand vous activez la synchronisation, elle commence par les visiteurs de la dernière journée.
  • Le panneau indique quand la synchronisation a eu lieu pour la dernière fois et ce qu’elle a fait.

Les Campaigns Salesforce comme audiences

  1. Dans le panneau, sous Campagnes Salesforce comme audiences, cliquez sur Ajouter une campagne et choisissez-en une.
  2. Cliquez sur Synchroniser. Une liste d’audience nommée « Salesforce: <nom de la Campaign> » apparaît sous Listes d’audience, avec le tag Salesforce.
  • Les personnes sont rattachées par leur e-mail. Les membres de la Campaign que Personyze n’a jamais vus sont aussi ajoutés, pour être reconnus dès leur première arrivée.
  • La liste suit la Campaign toutes les heures : les nouveaux membres la rejoignent, les membres retirés la quittent. Synchroniser maintenant la met à jour immédiatement.
  • Arrêter la synchronisation conserve la liste d’audience avec les personnes qu’elle contient.

Utilisez la liste comme n’importe quelle autre audience — voir Audiences et ciblage.

Envoyer une liste d’utilisateurs vers une Campaign

Sous Envoyer une liste d’utilisateurs vers une campagne, choisissez une liste d’utilisateurs Personyze et une Campaign Salesforce, puis cliquez sur Envoyer vers Salesforce.

  • Les personnes sont rattachées aux Contacts et aux Leads par leur e-mail et ajoutées comme membres de la Campaign. Personne n’est retiré de la Campaign.
  • Les personnes que Salesforce n’a pas sont ignorées, sauf si vous activez Créer aussi des pistes pour les personnes absentes de Salesforce.
  • Les personnes sans adresse e-mail sont écartées. Jusqu’à 10 000 personnes sont envoyées à la fois.

Déconnexion

Dans le panneau, cliquez sur l’icône de suppression à côté de « Connecté à <votre org> ». Personyze cesse de lire les données Salesforce pour les visiteurs et cesse de tout envoyer vers Salesforce. L’External Client App reste dans votre org ; pour la supprimer, supprimez-la dans l’External Client App Manager. Vos listes d’audience synchronisées restent dans Personyze.

Dépannage

Quand Personyze ne parvient pas à se connecter, le panneau affiche la raison donnée par Salesforce en termes simples. Chacune ci-dessous indique sa solution.

La Consumer Key ou le Consumer Secret n’est pas accepté

Personyze indique : “Salesforce did not accept the Consumer Key and Consumer Secret. Enter both again from the app’s “Consumer Key and Secret” page. A new app can take a few minutes before Salesforce accepts it.”

La clé ou le secret est erroné, ou l’app n’a que quelques minutes. Saisissez de nouveau les deux depuis la page Consumer Key and Secret de l’app (étape 1.6), ou attendez quelques minutes et réessayez.

Pas d’utilisateur Run As

Personyze indique : “Salesforce says the app has no Run As user. In the External Client App, open Policies → Edit → OAuth Policies, tick Enable Client Credentials Flow and choose the Run As (Username).”

Le flux Client Credentials est activé dans Settings, mais pas dans Policies, ou aucun utilisateur Run As n’est choisi. Voir l’étape 1.5.

Le flux Client Credentials n’est pas activé

Personyze indique : “Salesforce says the Client Credentials flow is not enabled for this app. In the External Client App, open Settings → OAuth Settings → Flow Enablement and tick Enable Client Credentials Flow – and then also in Policies → OAuth Policies.”

Activez-le aux deux endroits — étapes 1.4 et 1.5.

login.salesforce.com au lieu de votre My Domain

Personyze indique : “Salesforce answers this only at your My Domain URL (like https://yourcompany.my.salesforce.com), not at login.salesforce.com.”

Saisissez votre URL My Domain, et non login.salesforce.com ou test.salesforce.com.

L’adresse n’est pas un My Domain

Personyze indique : “Enter your My Domain URL, like https://yourcompany.my.salesforce.com – Salesforce shows it in Setup → My Domain.”

L’adresse que vous avez saisie n’est pas une URL My Domain. Salesforce affiche la vôtre dans Setup → My Domain → Current My Domain URL.

L’utilisateur Run As n’a pas le droit d’utiliser l’app

Personyze indique : “Salesforce says the Run As user may not use this app. In the app’s policies, allow the user’s profile or permission set.”

Les policies de l’app limitent les utilisateurs autorisés à l’utiliser. Autorisez le profil ou le permission set de l’utilisateur Run As.

L’utilisateur Run As est inactif

Personyze indique : “Salesforce says the Run As user is inactive.”

Choisissez un utilisateur actif comme Run As, ou réactivez l’utilisateur.

Votre édition n’a pas d’accès à l’API

Personyze indique : “Your Salesforce edition does not include API access. Salesforce offers it in Enterprise, Unlimited, Performance and Developer editions, and in Professional Edition with the API add-on.”

Renseignez-vous auprès de Salesforce sur le module complémentaire API pour la Professional Edition.

L’accès à l’API est désactivé pour l’utilisateur Run As

Personyze indique : “Salesforce says API access is turned off for the Run As user. Give its profile or permission set the “API Enabled” permission.”

Ajoutez l’autorisation API Enabled au profil de l’utilisateur Run As, ou à un permission set qui lui est attribué. La même solution s’applique à “Salesforce issued a session and then refused it. Check that the Run As user has the “API Enabled” permission.”

L’utilisateur Run As ne peut lire ni les Contacts ni les Leads

Personyze indique : “Salesforce lets the Run As user read neither Contacts nor Leads. Give its profile or permission set read access to both.”

L’utilisateur Run As a besoin d’un accès en lecture aux Contacts et aux Leads pour les listes de champs et les recherches.

Le quota d’API quotidien est épuisé

Personyze indique : “Your Salesforce org has used its API allowance for the last 24 hours. Personyze pauses its Salesforce requests and tries again later.”

La limite d’API quotidienne de votre org est atteinte (Setup → Company Information l’affiche). Personyze suspend ses recherches de visiteurs pendant une heure et reprend de lui-même ; la synchronisation des profils réessaie à sa prochaine exécution.

Une Campaign est introuvable

Personyze indique : “There is no Campaign <ID> in Salesforce, or the Run As user cannot see it.”

Vérifiez l’ID de la Campaign, et que l’utilisateur Run As peut lire les Campaigns — et cette Campaign en particulier, si votre org restreint l’accès aux Campaigns.

Le panneau indique que Personyze a cessé d’utiliser la connexion

Quand Salesforce refuse les identifiants de l’app — par exemple après la désactivation du flux Client Credentials ou de l’utilisateur Run As —, Personyze cesse immédiatement de les utiliser, pour que le refus ne se répète pas pour chaque visiteur, et le panneau affiche la raison donnée par Salesforce. Corrigez l’app dans Salesforce, puis cliquez sur Vérifier et enregistrer dans le panneau.

Un champ associé reste vide

Ouvrez votre site avec la console de débogage (mode test — voir Tests et QA). Chaque visite qui interroge Salesforce consigne une ligne :

  • Salesforce sync (<email>) ok — trouvé, valeurs définies.
  • Salesforce sync (<email>) no data — aucun Contact, Lead ni Account correspondant, ou les champs sont vides dans Salesforce.
  • Salesforce sync (company <domain>) ... — un visiteur anonyme rattaché par le domaine de son entreprise.
  • Salesforce sync (...) failed: <reason> — la raison donnée par Salesforce.

Un nom de champ que l’org ne possède pas (par exemple un champ personnalisé supprimé) est ignoré, et les autres champs arrivent quand même. N’oubliez pas que Salesforce est interrogé une fois par visite : commencez une nouvelle visite (une nouvelle session de navigateur) après avoir modifié une correspondance.

Une soumission de formulaire n’a pas atteint Salesforce

Envoyer un test à toutes les destinations, dans l’éditeur du formulaire, affiche le résultat de chaque destination. « no email field in the submission » signifie que le formulaire n’a pas de champ e-mail — les Contacts et les Leads Salesforce sont retrouvés par leur e-mail. Les refus propres à Salesforce (une validation rule, un champ obligatoire) sont affichés dans ses propres termes.

La synchronisation des profils ne met pas à jour un champ

Vérifiez que le champ existe sur Contact et/ou Lead, qu’il n’est pas en lecture seule, et que l’utilisateur Run As y a accès en modification. La ligne « Dernière exécution » du panneau compte les enregistrements refusés par Salesforce et affiche la première raison.

Did this page answer your question?
Thank you — that goes to whoever maintains this page.