Passer au contenu principal

Fin Messenger : Intégration du messenger dans votre portail Salesforce

Ce guide vous accompagne dans les étapes d'installation du Fin Messenger sur une page Salesforce.

Ajoutez le Fin Messenger à votre site Salesforce Experience Cloud (portail) et contrôlez les données utilisateur connectées envoyées à Fin uniquement 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. Cela 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 d'une mise à jour). Vous configurez désormais tout cela dans les 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 personnalisé Fin Messenger Settings qui stocke votre App ID, le secret JWT, et (nouveau) la configuration des données utilisateur.


A) Ouvrir les paramètres

  1. Allez dans Setup > Custom Settings.

  2. Ouvrez Fin Messenger Settings.

  3. Cliquez sur Manage.

  4. Cliquez sur New (ou Edit) sur la Default Organization Level Value.

B) App ID — dans Fin, Settings > General ; saisissez-le dans le champ App Id.
C) JWT Secret Key — dans Fin, Settings > Fin Messenger ; saisissez-le dans le champ JWT Secret Key.


Ces deux valeurs sont les seules obligatoires. Le reste (Étape 6) est optionnel.

3. Configurer la politique de sécurité du contenu (CSP)

  1. Setup > Digital Experiences > All Sites > (votre site) > Builder > Settings > Security & Privacy.

  2. Réglez le Security Level sur Relaxed CSP.

  3. Sous Trusted Sites for Scripts, ajoutez https://widget.intercom.io et https://js.intercomcdn.com.

  4. Sous Setup → Trusted URLs, ajoutez les URL/directives CSP d'Intercom, avec CSP Context = 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

api_base

US

https://api-iam.intercom.io

EU

https://api-iam.eu.intercom.io

Australie

https://api-iam.au.intercom.io

5. Ajoutez le composant Fin Messenger à votre page

  1. Setup > Digital Experiences > All Sites > (votre site) > Builder.

  2. Faites glisser le composant Fin Messenger sur la page du portail.

  3. Publiez le site.

6. Configurez les données utilisateur envoyées à Fin

Tout est prêt dans l'enregistrement Fin Messenger Settings (É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 user_id de Fin.

ContactId

Champs d'attribut

Attributs supplémentaires à envoyer (format ci-dessous).

aucun

Champ Id Société

Le champ Utilisateur envoyé comme company.company_id.

omis

Classe Fournisseur

Avancé : une classe Apex retournant des attributs personnalisés.

non utilisé

Format des Champs d'attribut

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 du 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 FinAttributeProvider dans votre propre classe Apex (modifiable, dans votre org), puis indiquez son nom dans Classe Fournisseur :

global class MyFinAttributes implements finmessenger.FinAttributeProvider {
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).

  • currentUser ne contient que les champs configurés à l'Étape 6 — interrogez tout autre.

  • La map du fournisseur est fusionnée en dernier, donc ses clés prévalent sur les Champs d'attribut.

  • 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).


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 ?

Dans Settings > Fin Messenger, copiez votre JWT Secret Key.

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 Étape 6. Configurez Champ Id Utilisateur, Champs d'attribut, Champ Id Société et Classe Fournisseur dans Fin Messenger Settings. Seuls name, email, user_id et ce que vous listez dans Champs d'attribut sont envoyés. Laissez les champs vides pour envoyer moins.

Dois-je modifier Apex ?

Non, la configuration standard à l'Étape 6 ne nécessite aucun changement de code. Apex n'est nécessaire que 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 standard, 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.

Avez-vous trouvé la réponse à votre question ?