Comment configurer l'intégration Salesforce

:bookmark: Ce guide couvre les étapes de configuration nécessaires pour connecter Discourse à Salesforce à l’aide du plugin Discourse Salesforce.

:discourse: Le plugin Discourse Salesforce est disponible dans le plan Enterprise.

:person_raising_hand: Niveau d’utilisateur requis : Administrateur

Étape 0 : Identifier les bonnes personnes dans votre organisation

Avant toute action dans Discourse, assurez-vous de bien connaître les personnes responsables dans votre organisation pour traiter les éléments requis côté Salesforce.

Administrateur Salesforce

Qui est-ce : Dans la plupart des organisations, il s’agit généralement de la personne que votre équipe appelle « l’admin Salesforce » — celle qui gère la configuration de votre organisation Salesforce, et non nécessairement l’administrateur système informatique.

Son rôle : Gère l’installation initiale côté Salesforce en créant l’Application cliente externe (ou Application connectée) dans la configuration Salesforce, en configurant les paramètres OAuth et en récupérant la clé client (Consumer Key) et le secret client (Consumer Secret).

Ce dont il a besoin : Un accès à la Configuration de Salesforce et spécifiquement au Gestionnaire d’applications clientes externes. Dans Salesforce, cela requiert la permission système Personnaliser les applications. Cette permission est incluse dans le profil standard Administrateur système. Si la personne effectuant l’installation ne possède pas le profil Administrateur système, un administrateur Salesforce devra lui attribuer un ensemble de permissions incluant « Personnaliser les applications ».

Utilisateur d’intégration Salesforce

Qui est-ce : Un utilisateur Salesforce dont les identifiants de compte sont utilisés par le plugin Discourse pour effectuer des appels API vers Salesforce.

Son rôle : Fournit le nom d’utilisateur à saisir dans le paramètre nom d’utilisateur salesforce des paramètres Discourse Salesforce, afin de faciliter tous les appels API depuis Discourse vers Salesforce.

Ce dont il a besoin : Cet utilisateur doit disposer des permissions suivantes :

Permission Pourquoi c’est nécessaire
API activée Requis pour tout accès API à Salesforce
Créer, Lire, Modifier sur Prospect Créer et lier des Prospects à partir des utilisateurs Discourse
Créer, Lire, Modifier sur Contact Créer et lier des Contacts à partir des utilisateurs Discourse
Créer, Lire, Modifier sur Incident Créer des Incidents à partir des sujets Discourse
Créer sur Commentaire d’Incident Synchroniser les réponses aux sujets en tant que Commentaires d’Incident
Créer sur Élément de flux (Chatter) Publier les activités des sujets sur Chatter

Note : L’utilisateur d’intégration Salesforce peut être la même personne que l’administrateur Salesforce. Cependant, par bonne pratique de sécurité, nous recommandons d’utiliser un compte distinct avec des permissions plus restreintes pour l’utilisateur d’intégration.

Étape 1 : Générer un certificat et une clé privée

Rôle : Administrateur Discourse

Discourse Salesforce utilise le flux JWT Bearer pour s’authentifier auprès de Salesforce. Cela nécessite une paire de clés RSA : un certificat public que Salesforce utilise pour vérifier l’identité du plugin et une clé privée que Discourse utilise pour signer ses requêtes.

  1. Suivez ces instructions pour générer la paire de clés :
    • server.crt - un certificat public qui prouve que Discourse est l’application autorisée
    • server.key - une clé privée qui signe les requêtes API de Discourse vers Salesforce
  2. Envoyez le fichier server.crt à votre administrateur Salesforce afin qu’il puisse le téléverser à l’Étape 3.
  3. Conservez la server.key pour la coller dans les paramètres Discourse Salesforce à l’Étape 5.

Étape 2 : Créer l’Application cliente externe dans Salesforce

Rôle : Administrateur Salesforce

  1. Connectez-vous à Salesforce.

  2. Cliquez sur l’icône d’engrenage (:gear:) en haut à droite et sélectionnez Configuration.

  3. Dans la zone de recherche rapide, recherchez Gestionnaire d’applications clientes externes et sélectionnez-le.

  4. Cliquez sur Nouvelle application cliente externe.

Note : Ces étapes utilisent le Gestionnaire d’applications clientes externes, introduit dans Salesforce Spring '25. Si votre organisation utilise une version plus ancienne, l’interface peut indiquer Gestionnaire d’applications ou Applications connectées à la place — les paramètres sous-jacents sont les mêmes.

Étape 3 : Renseigner les Informations de base et les Paramètres OAuth

Rôle : Administrateur Salesforce

  1. Renseignez la section Informations de base (Nom de l’application et E-mail de contact sont obligatoires).

  2. Développez la section API (Activer les paramètres OAuth) et cochez le paramètre Activer OAuth.

  3. Configurez les paramètres suivants dans cette section :

    • URL de rappel : Ajoutez ces deux liens, en remplaçant <your-discourse-site> par l’URL complète de votre site Discourse (par exemple, meta.discourse.org) :
      https://<your-discourse-site>
      https://<your-discourse-site>/auth/salesforce/callback
      :star: Assurez-vous qu’il n’y a pas de barre oblique / finale à la fin de l’une ou l’autre URL !
    • Portées OAuth disponibles : Ajoutez les trois :
      • Accéder au service d’identification URL (id, profil, e-mail, adresse, téléphone)
      • Gérer les données utilisateur via les API (api)
      • Effectuer des requêtes à tout moment (refresh_token, offline_access)
    • Activation des flux : Activez les deux :
      • Activer le flux d’identifiants client
      • Activer le flux JWT Bearer — requis pour que le plugin crée des Prospects, des Contacts et des Incidents
  4. Sous Téléversement de certificat, cliquez sur Téléverser des fichiers et téléversez le fichier server.crt de l’Étape 1.

  5. Cliquez sur Créer.

Étape 4 : Récupérer la Clé client et le Secret client

Rôle : Administrateur Salesforce

  1. Sur l’application cliente externe nouvellement créée, cliquez sur l’onglet Paramètres.

  2. Faites défiler vers le bas et développez les Paramètres OAuth.

  3. Cliquez sur Clé client et Secret.

  4. Saisissez à nouveau vos identifiants de connexion Salesforce lorsque cela vous est demandé.

  5. Copiez la Clé client et le Secret client et envoyez-les à votre administrateur Discourse pour l’Étape 5.

Étape 5 : Configurer les paramètres du plugin Discourse

Rôle : Administrateur Discourse

  1. Dans Discourse, allez dans Admin → Extensions → Salesforce → Paramètres.

  2. Renseignez les paramètres suivants :

    Paramètre Valeur
    salesforce enabled Cochez la case pour activer l’intégration
    salesforce client id La Clé client de l’Étape 4
    salesforce client secret Le Secret client de l’Étape 4
    salesforce rsa private key Collez le contenu complet du fichier server.key de l’Étape 1
    salesforce username Le nom d’utilisateur de l’utilisateur d’intégration Salesforce
    salesforce authorization server url Requis uniquement si vous utilisez un domaine Salesforce personnalisé (par exemple, https://mycompany.my.salesforce.com)

  3. Cliquez sur Enregistrer les modifications.

Étape 6 : Autoriser l’application Discourse dans Salesforce

Rôle : Utilisateur d’intégration Salesforce

  1. Rendez-vous sur https://<your-discourse-site>/salesforce/admin/authorize, en remplaçant <your-discourse-site> par l’URL complète de votre site Discourse (par exemple, meta.discourse.org).
  2. Vous serez redirigé vers Salesforce et invité à autoriser l’application.
  3. Connectez-vous à Salesforce et accordez l’accès à l’application.

Une fois cette étape terminée, tout devrait être opérationnel. Vous pouvez confirmer le bon fonctionnement en allant sur n’importe quel profil d’utilisateur dans Discourse — une option Synchroniser avec Salesforce devrait apparaître dans le menu d’administration.

Résolution des problèmes

Si le plugin ne fonctionne pas après la configuration, vérifiez d’abord les points suivants :

  • Vérifications de santé du tableau de bord admin : le plugin affiche deux alertes dans /admin lorsque des paramètres sont mal configurés :

    • SalesforceInvalidCredentials : la Clé client, le Secret client, la clé privée RSA ou le nom d’utilisateur est incorrect
    • SalesforceAppNotApproved : l’étape d’autorisation (Étape 6) n’a pas été complétée, ou l’application connectée a été rejetée
  • Activer la journalisation détaillée : Activez le paramètre de site salesforce_auth_verbose_logging pour écrire des sorties d’authentification détaillées dans les /logs de Discourse. Erreurs courantes et causes :

Symptôme Cause probable
« Privilèges insuffisants » lors de la création d’un Prospect ou d’un Contact L’utilisateur d’intégration ne dispose pas des permissions Créer/Modifier sur les objets Prospect ou Contact
« Privilèges insuffisants » lors de la création d’un Incident L’utilisateur d’intégration ne dispose pas des permissions Incident ou Commentaire d’Incident
« Autorisation non valide » lors de l’étape d’autorisation La clé RSA ne correspond pas au certificat téléversé à l’Étape 3, ou le flux JWT Bearer n’a pas été activé
Erreur « DUPLICATE_VALUE » lors de la création d’un Prospect ou d’un Contact Comportement attendu si l’utilisateur existe déjà dans Salesforce — le plugin gère cela, mais consultez la documentation principale du plugin pour plus de détails
Publications Chatter non visibles L’utilisateur d’intégration ne dispose peut-être pas des permissions Créer sur Élément de flux