Ajoutez Fin Messenger à votre site Salesforce Experience Cloud (portail) et contrôlez les données utilisateur connectées envoyées à Fin entièrement via la configuration, sans modification Apex requise.
Note : Ce qui a changé (juin 2026) : Ce guide demandait auparavant de modifier la classe Apex JwtGenerator pour choisir l'identifiant utilisateur et les attributs à envoyer. Ce n’est pas possible dans une organisation de production (Salesforce n’autorise pas la modification d’Apex via Setup en production, et les classes packagées sont écrasées lors des mises à jour). Vous configurez désormais tout cela dans Fin Messenger Settings (paramètre personnalisé), avec une interface Apex optionnelle pour les cas avancés (voir Étape 6).
Installer Fin Messenger sur une page Salesforce
1. Installer le package dans Salesforce
Pour installer Fin Messenger sur une page Salesforce, nous avons créé un package que vous pouvez installer, qui crée simplement une définition de paramètre personnalisé.
Vous devrez installer le package dans votre environnement Salesforce avant de suivre les étapes ci-dessous.
Ou
2. Configurer les paramètres Fin Messenger dans Salesforce
Le package ajoute un paramètre protégé Fin Messenger Settings qui stocke votre App ID, le secret JWT, et (nouveau) la configuration des données utilisateur.
A) Ouvrez la configuration
Ouvrez le Lanceur d’applications.
Choisissez Fin Messenger Setup.
B) App ID — dans Fin, Settings > General ; saisissez-le dans le champ App Id.
C) Clé secrète JWT — dans Fin, c’est la Unified Secret key dans Settings > Fin Messenger > Security ; saisissez-la dans le champ JWT Secret Key. La clé secrète ne peut pas être relue après sauvegarde ; seul son empreinte est affichée.
Ces deux valeurs sont les seules obligatoires. Le reste (Étape 6) est optionnel.
3. Configurer la politique de sécurité du contenu (CSP)
Setup > Digital Experiences > All Sites > (votre site) > Builder > Settings > Security & Privacy.
Réglez le Niveau de sécurité sur Relaxed CSP.
Sous Sites de confiance pour les scripts, ajoutez
https://widget.intercom.ioethttps://js.intercomcdn.com.Sous Setup → Trusted URLs, ajoutez les URL/directives CSP d’Intercom, avec Contexte CSP = All ou Experience Builder Sites.
4. Ajoutez le script de démarrage Fin Messenger à votre portail
<script>
window.addEventListener('finMessengerData', function (e) {
var data = e.detail || {};
window.intercomSettings = {
api_base: 'https://api-iam.intercom.io', // regional base — see table
app_id: data.appId,
intercom_user_jwt: data.jwt // omitted/null → boots logged-out
};
window.Intercom && window.Intercom('boot', window.intercomSettings);
});
</script>
Région |
|
US |
|
EU |
|
Australie |
|
Note : Pour les sites Experience Cloud, utilisez le snippet du chargeur de widget avec le script écouteur finMessengerData à cette étape. N’ajoutez pas de bloc intercomSettings manuel séparé, cela peut empêcher l’apparition du Messenger.
5. Ajoutez le composant Fin Messenger à votre page
Setup > Digital Experiences > All Sites > (votre site) > Builder.
Faites glisser le composant Fin Messenger sur la page du portail.
Publiez le site.
6. Configurez les données utilisateur envoyées à Fin
Tout est configuré dans l’application Fin Messenger Setup (Étape 2) — aucun changement de code. Laissez un champ vide pour conserver la valeur par défaut.
Champ | Ce qu’il contrôle | Valeur par défaut si vide |
Champ Id Utilisateur | Le champ Utilisateur dont la valeur devient le |
|
Champs d’attributs | Attributs supplémentaires à envoyer (format ci-dessous). | aucun |
Champ Id Société | Le champ Utilisateur envoyé comme | omitted |
Classe Fournisseur | Avancé : une classe Apex retournant des attributs personnalisés. | non utilisé |
Format des champs d’attributs
Paires intercomKey:UserField séparées par des virgules :
À gauche des deux-points — le nom de l’attribut Intercom (clé reçue par Fin).
À droite des deux-points — le nom API du champ Utilisateur Salesforce pour lire la valeur.
Un nom de champ simple utilise le nom de champ en minuscules comme clé Intercom.
Les champs personnalisés utilisent leur nom API (
__c). Les champs inconnus sont ignorés.
Exemple : phone:Phone, job_title:Title, Department, plan:Account_Tier__c produit :
{ "phone": "(555) 123-4567", "job_title": "Account Executive", "department": "Sales", "plan": "Enterprise" }Note : name, email et user_id sont toujours envoyés (ne les listez pas ici).
Avancé : attributs personnalisés via Apex
Pour des valeurs que vous ne pouvez pas exprimer par un seul champ Utilisateur, implémentez finai.MessengerAttributeProvider dans votre propre classe Apex (modifiable, dans votre org), puis indiquez son nom dans Classe Fournisseur :
global class MyFinAttributes implements finai.MessengerAttributeProvider {
global Map<String, Object> injectFinCustomAttributes(User currentUser) {
Map<String, Object> attrs = new Map<String, Object>();
attrs.put('locale', currentUser.LanguageLocaleKey);
attrs.put('is_internal',
currentUser.Email != null && currentUser.Email.endsWith('@acme.com'));
// currentUser only has the configured fields — query anything else yourself
Contact c = [
SELECT AccountId, Account.Name, Account.Subscription_Tier__c
FROM Contact WHERE Id = :currentUser.ContactId LIMIT 1
];
attrs.put('plan', c.Account.Subscription_Tier__c);
attrs.put('company', new Map<String, Object>{
'company_id' => c.AccountId, 'name' => c.Account.Name
});
return attrs;
}
}Doit être
global(appelé à travers l’espace de noms du package).currentUserne contient que les champs configurés à l’Étape 6 — interrogez tout autre.La map du fournisseur est fusionnée en dernier, ses clés priment sur les Champs d’attributs.
Gardez-le léger — il s’exécute à chaque démarrage du messenger (les erreurs sont capturées ; les requêtes lentes ralentissent le démarrage).
Sécurité : Les profils utilisateur Community et Experience Cloud n’ont pas besoin de la permission API Enabled ni d’accès au paramètre personnalisé finmessenger__Settings__c, et vous pouvez retirer les deux (conservez le paramètre personnalisé lui-même). Gardez le secret JWT sur le serveur ; seul le jeton signé doit atteindre le navigateur. Testez les modifications d’abord en sandbox.
FAQ
Comment trouver mon Fin App ID ?
Allez dans Settings > General. Votre App ID est listé dans la section Détails de l’application.
Où trouver la clé secrète JWT ?
Copiez la Unified Secret key dans Settings > Fin Messenger > Security. C’est la clé secrète JWT.
Que faire si le messenger ne se charge pas ?
Vérifiez vos paramètres CSP. Assurez-vous que les URL de scripts de confiance et les URL de confiance sont correctement configurées et que le niveau de sécurité est réglé sur Relaxed CSP.
Puis-je restreindre les données utilisateur envoyées à Fin ?
Oui, c’est l’Étape 6. Configurez Champ Id Utilisateur, Champs d’attributs, Champ Id Société et Classe Fournisseur dans Fin Messenger Settings. Seuls name, email, user_id et ce que vous listez dans Champs d’attributs sont envoyés. Laissez les champs vides pour en envoyer moins.
Dois-je modifier Apex ?
Non, la configuration standard à l’Étape 6 ne nécessite aucun changement de code. Apex est nécessaire uniquement si vous optez pour le hook avancé Classe Fournisseur, qui utilise une classe que vous écrivez dans votre propre org (pas l’Apex packagé).
Comment résoudre les erreurs de compilation Apex ?
Le package Salesforce repose sur des objets et champs standards, donc une erreur de compilation peut être due à des classes Apex orphelines dans l’organisation Salesforce.
Dans ce cas, cliquez sur l’accordéon Options avancées lors de l’installation.
Sélectionnez Compiler uniquement l’Apex du package puis cliquez sur Installer.



