Dieser Leitfaden behandelt die Konfigurationsschritte, die erforderlich sind, um Discourse mit Salesforce über das Plugin Discourse Salesforce zu verbinden.
Discourse Salesforce ist im Enterprise-Plan verfügbar.
Erforderliche Benutzerstufe: Administrator
Schritt 0: Die richtigen Personen in Ihrer Organisation finden
Bevor Sie etwas in Discourse tun, stellen Sie zunächst sicher, dass Sie wissen, welche Personen aus Ihrer Organisation eingebunden werden müssen, um die Anforderungen auf der Salesforce-Seite zu erfüllen.
Salesforce-Administrator
Wer ist das: In den meisten Organisationen ist dies typischerweise die Person, die Ihr Team als „den Salesforce-Admin“ bezeichnet — die Person, die die Konfiguration Ihrer Salesforce-Organisation verwaltet, nicht unbedingt Ihr IT-Systemadministrator.
Was sie tun: Übernimmt die initiale Einrichtung auf der Salesforce-Seite, indem die External Client App (oder Connected App) in den Salesforce-Setup-Einstellungen erstellt, die OAuth-Einstellungen konfiguriert und der Consumer Key sowie das Consumer Secret abgerufen werden.
Was sie brauchen: Zugriff auf den Salesforce-Setup-Bereich und insbesondere den External Client App Manager. In Salesforce erfordert dies die Systemberechtigung Customize Application. Diese ist im Standard-Profil System Administrator enthalten. Wenn die Person, die die Einrichtung durchführt, kein System Administrator-Profil hat, muss ein Salesforce-Administrator ihr ein Berechtigungsset zuweisen, das „Customize Application“ enthält.
Salesforce-Integrationsbenutzer
Wer ist das: Ein Salesforce-Benutzer, dessen Kontozugangsdaten vom Discourse-Plugin verwendet werden, um API-Aufrufe an Salesforce durchzuführen.
Was sie tun: Stellt den Benutzernamen bereit, der in die Einstellung salesforce username in den Discourse-Salesforce-Einstellungen eingetragen wird, um alle API-Aufrufe von Discourse an Salesforce zu ermöglichen.
Was sie brauchen: Dieser Benutzer muss folgende Berechtigungen haben:
| Berechtigung | Warum sie erforderlich ist |
|---|---|
| API Enabled | Erforderlich für jeglichen Salesforce-API-Zugriff |
| Erstellen, Lesen, Bearbeiten von Leads | Erstellt und verknüpft Leads von Discourse-Benutzern |
| Erstellen, Lesen, Bearbeiten von Kontakten | Erstellt und verknüpft Kontakte von Discourse-Benutzern |
| Erstellen, Lesen, Bearbeiten von Fällen (Cases) | Erstellt Fälle aus Discourse-Themen |
| Erstellen von Fallkommentaren (Case Comments) | Synchronisiert Themenantworten als Fallkommentare |
| Erstellen von FeedItem (Chatter) | Veröffentlicht Themenaktivitäten in Chatter |
Hinweis: Der Salesforce-Integrationsbenutzer kann dieselbe Person wie der Salesforce-Administrator sein. Als Sicherheitsbest-Praxis empfehlen wir jedoch die Verwendung eines separaten, mit engeren Berechtigungen ausgestatteten Kontos für den Integrationsbenutzer.
Schritt 1: Zertifikat und privaten Schlüssel generieren
Rolle: Discourse-Administrator
Discourse Salesforce verwendet den JWT Bearer Flow zur Authentifizierung bei Salesforce. Dafür wird ein RSA-Schlüsselpaar benötigt: ein öffentliches Zertifikat, das Salesforce zur Überprüfung der Plugin-Identität verwendet, und ein privater Schlüssel, den Discourse zur Signierung seiner Anfragen verwendet.
- Folgen Sie diesen Anweisungen, um das Schlüsselpaar zu generieren:
server.crt- ein öffentliches Zertifikat, das belegt, dass Discourse die autorisierte App istserver.key- ein privater Schlüssel, der die Discourse-API-Anfragen an Salesforce signiert
- Senden Sie die Datei
server.crtan Ihren Salesforce-Administrator, damit er sie in Schritt 3 hochladen kann. - Bewahren Sie die Datei
server.keyauf, um sie in Schritt 5 in die Discourse-Salesforce-Einstellungen einzufügen.
Schritt 2: Die External Client App in Salesforce erstellen
Rolle: Salesforce-Administrator
-
Melden Sie sich bei Salesforce an.
-
Klicken Sie oben rechts auf das Zahnrad-Symbol (
) und wählen Sie Setup. -
Suchen Sie im Quick-Find-Feld nach External Client App Manager und wählen Sie es aus.
-
Klicken Sie auf New External Client App.
Hinweis: Diese Schritte verwenden den External Client App Manager, der in Salesforce Spring '25 eingeführt wurde. Wenn Ihre Organisation eine ältere Version nutzt, wird in der Oberfläche möglicherweise stattdessen App Manager oder Connected Apps angezeigt — die zugrunde liegenden Einstellungen sind identisch.
Schritt 3: Grundlegende Informationen und OAuth-Einstellungen ausfüllen
Rolle: Salesforce-Administrator
-
Füllen Sie den Abschnitt Basic Information aus (App Name und Contact Email sind erforderlich).
-
Erweitern Sie den Abschnitt API (Enable OAuth Settings) und aktivieren Sie das Kontrollkästchen Enable OAuth.
-
Konfigurieren Sie die folgenden Einstellungen in diesem Abschnitt:
- Callback URL: Fügen Sie beide dieser Links hinzu und ersetzen Sie
<your-discourse-site>durch die vollständige URL Ihrer Discourse-Website (z. B.meta.discourse.org):
https://<your-discourse-site>
https://<your-discourse-site>/auth/salesforce/callback
Stellen Sie sicher, dass am Ende keiner der beiden URLs ein Schrägstrich /steht! - Available OAuth Scopes: Fügen Sie alle drei hinzu:
- Access the identify URL service (id, profile, email, address, phone)
- Manage user data via APIs (api)
- Perform requests at any time (refresh_token, offline_access)
- Flow Enablement: Aktivieren Sie beide:
- Enable Client Credentials Flow
- Enable JWT Bearer Flow — dies ist erforderlich, damit das Plugin Leads, Kontakte und Fälle erstellen kann
- Callback URL: Fügen Sie beide dieser Links hinzu und ersetzen Sie
-
Klicken Sie unter Certificate Upload auf Upload files und laden Sie die Datei
server.crtaus Schritt 1 hoch. -
Klicken Sie auf Create.
Schritt 4: Consumer Key und Consumer Secret abrufen
Rolle: Salesforce-Administrator
-
Klicken Sie auf der neu erstellten External Client App auf die Registerkarte Settings.
-
Scrollen Sie nach unten und erweitern Sie die OAuth Settings.
-
Klicken Sie auf Consumer Key and Secret.
-
Geben Sie bei Aufforderung erneut Ihre Salesforce-Anmeldedaten ein.
-
Kopieren Sie den Consumer Key und das Consumer Secret und senden Sie sie an Ihren Discourse-Administrator für Schritt 5.
Schritt 5: Konfigurieren der Discourse-Plugin-Einstellungen
Rolle: Discourse-Administrator
-
Gehen Sie in Discourse zu Admin → Plugins → Salesforce → Settings.
-
Füllen Sie die folgenden Einstellungen aus:
Einstellung Wert salesforce enabledAktivieren Sie das Kontrollkästchen, um die Integration zu aktivieren salesforce client idDer Consumer Key aus Schritt 4 salesforce client secretDas Consumer Secret aus Schritt 4 salesforce rsa private keyFügen Sie den gesamten Inhalt der Datei server.keyaus Schritt 1 einsalesforce usernameDer Benutzername des Salesforce-Integrationsbenutzers salesforce authorization server urlNur erforderlich, wenn Sie eine benutzerdefinierte Salesforce-Domain verwenden (z. B. https://mycompany.my.salesforce.com) -
Klicken Sie auf Save changes.
Schritt 6: Die Discourse-App in Salesforce autorisieren
Rolle: Salesforce-Integrationsbenutzer
- Gehen Sie zu
https://<your-discourse-site>/salesforce/admin/authorizeund ersetzen Sie<your-discourse-site>durch die vollständige URL Ihrer Discourse-Website (z. B.meta.discourse.org). - Sie werden zu Salesforce weitergeleitet und aufgefordert, die App zu autorisieren.
- Melden Sie sich bei Salesforce an und erteilen Sie der App Zugriff.
Nach Abschluss dieses Schritts sollte alles einsatzbereit sein. Sie können überprüfen, ob es funktioniert, indem Sie zu einem beliebigen Benutzerprofil in Discourse gehen — eine Option Sync with Salesforce sollte im Admin-Menü angezeigt werden.
Fehlerbehebung
Wenn das Plugin nach der Einrichtung nicht funktioniert, prüfen Sie zunächst Folgendes:
-
Gesundheitsprüfungen im Admin-Dashboard: Das Plugin zeigt zwei Warnungen unter
/adminan, wenn die Konfiguration fehlerhaft ist:SalesforceInvalidCredentials: Der Consumer Key, Consumer Secret, RSA-private Schlüssel oder Benutzername ist falschSalesforceAppNotApproved: Der Autorisierungsschritt (Schritt 6) wurde nicht abgeschlossen oder die verbundene App wurde abgelehnt
-
Ausführliche Protokollierung aktivieren: Aktivieren Sie die Website-Einstellung
salesforce_auth_verbose_logging, um detaillierte Authentifizierungsausgaben in den Discourse-Protokollen (/logs) zu schreiben. Häufige Fehler und Ursachen:
| Symptom | Wahrscheinliche Ursache |
|---|---|
| „Insufficient privileges“ beim Erstellen eines Leads oder Kontakts | Der Integrationsbenutzer hat keine Berechtigungen zum Erstellen/Bearbeiten von Lead- oder Kontakt-Objekten |
| „Insufficient privileges“ beim Erstellen eines Falls | Dem Integrationsbenutzer fehlen Berechtigungen für Fälle oder Fallkommentare |
| „Invalid grant“ beim Autorisierungsschritt | Der RSA-Schlüssel passt nicht zum in Schritt 3 hochgeladenen Zertifikat, oder der JWT Bearer Flow wurde nicht aktiviert |
| „DUPLICATE_VALUE“-Fehler beim Erstellen eines Leads oder Kontakts | Erwartetes Verhalten, wenn der Benutzer bereits in Salesforce existiert — das Plugin behandelt dies, siehe jedoch die Hauptdokumentation des Plugins für Details |
| Chatter-Beiträge erscheinen nicht | Der Integrationsbenutzer hat möglicherweise keine Berechtigung zum Erstellen von FeedItems |






