Esta guía cubre los pasos de configuración necesarios para conectar Discourse con Salesforce utilizando el complemento Discourse Salesforce.
Discourse Salesforce está disponible en el plan Enterprise.
Nivel de usuario requerido: Administrador
Paso 0: Encontrar a las personas adecuadas en tu organización
Antes de hacer cualquier cosa en Discourse, asegúrate primero de conocer a las personas adecuadas de tu organización que deben participar para gestionar lo requerido en el lado de Salesforce.
Administrador de Salesforce
Quiénes son: En la mayoría de las organizaciones, esta es generalmente la persona a quien tu equipo llama “el admin de Salesforce”, la persona que gestiona la configuración de la organización de Salesforce, no necesariamente el administrador de sistemas de TI.
Qué hacen: Se encargan de la configuración inicial en el lado de Salesforce creando la Aplicación de cliente externo (o Aplicación conectada) en Setup de Salesforce, configurando los ajustes de OAuth y obteniendo la clave de consumidor (Consumer Key) y el secreto de consumidor (Consumer Secret).
Qué necesitan: Acceso a Setup de Salesforce y específicamente al External Client App Manager. En Salesforce, esto requiere el permiso de sistema Customize Application. Esto está incluido en el perfil estándar System Administrator. Si la persona que realiza la configuración no tiene un perfil de System Administrator, un administrador de Salesforce deberá otorgarle un conjunto de permisos que incluya “Customize Application”.
Usuario de integración de Salesforce
Quiénes son: Un usuario de Salesforce cuyas credenciales de cuenta son utilizadas por el complemento de Discourse para realizar llamadas API a Salesforce.
Qué hacen: Proporcionan el nombre de usuario para ingresar en la configuración salesforce username de los ajustes de Discourse Salesforce para facilitar todas las llamadas API desde Discourse a Salesforce.
Qué necesitan: Este usuario debe tener:
| Permiso | Por qué es necesario |
|---|---|
| API Enabled | Requerido para cualquier acceso API de Salesforce |
| Create, Read, Edit en Lead | Crear y vincular Leads desde los usuarios de Discourse |
| Create, Read, Edit en Contact | Crear y vincular Contactos desde los usuarios de Discourse |
| Create, Read, Edit en Case | Crear Casos desde los temas de Discourse |
| Create en Case Comment | Sincronizar las respuestas del tema como Comentarios de caso |
| Create en FeedItem (Chatter) | Publicar la actividad del tema en Chatter |
Nota: El usuario de integración de Salesforce puede ser la misma persona que el administrador de Salesforce. Sin embargo, como buena práctica de seguridad, recomendamos usar una cuenta separada y con permisos más limitados para el usuario de integración.
Paso 1: Generar un certificado y una clave privada
Rol: Admin de Discourse
Discourse Salesforce utiliza el flujo JWT Bearer Flow para autenticarse con Salesforce. Esto requiere un par de claves RSA: un certificado público que Salesforce utiliza para verificar la identidad del complemento y una clave privada que Discourse utiliza para firmar sus solicitudes.
- Sigue estas instrucciones para generar el par de claves:
server.crt- un certificado público que demuestra que Discourse es la aplicación autorizadaserver.key- una clave privada que firma las solicitudes API de Discourse a Salesforce
- Envía el archivo
server.crta tu administrador de Salesforce para que pueda cargarlo en el Paso 3. - Guarda la
server.keypara pegarla en los ajustes de Discourse Salesforce en el Paso 5.
Paso 2: Crear la Aplicación de cliente externo en Salesforce
Rol: Administrador de Salesforce
-
Inicia sesión en Salesforce.
-
Haz clic en el icono de engranaje (
) en la esquina superior derecha y selecciona Setup. -
En el cuadro de búsqueda rápida, busca External Client App Manager y selecciónalo.
-
Haz clic en New External Client App.
Nota: Estos pasos utilizan el External Client App Manager, introducido en Salesforce Spring '25. Si tu organización está en una versión anterior, la interfaz de usuario puede mostrar App Manager o Connected Apps en su lugar; la configuración subyacente es la misma.
Paso 3: Completar la información básica y los ajustes de OAuth
Rol: Administrador de Salesforce
-
Completa la sección Basic Information (el Nombre de la aplicación y el Correo electrónico de contacto son obligatorios).
-
Expande la sección API (Enable OAuth Settings) y marca la casilla de la opción Enable OAuth.
-
Configura los siguientes ajustes en esta sección:
- Callback URL: Añade ambos de estos enlaces, reemplazando
<your-discourse-site>con la URL completa de tu sitio de Discourse (por ejemplo,meta.discourse.org):
https://<your-discourse-site>
https://<your-discourse-site>/auth/salesforce/callback
¡Asegúrate de que no haya una barra inclinada /final al final de ninguna de las URL! - Available OAuth Scopes: Añade los tres:
- Acceder al servicio de identificación de URL (id, profile, email, address, phone)
- Gestionar datos de usuario a través de APIs (api)
- Realizar solicitudes en cualquier momento (refresh_token, offline_access)
- Flow Enablement: Habilita ambos:
- Enable Client Credentials Flow
- Enable JWT Bearer Flow — esto es requerido para que el complemento cree Leads, Contactos y Casos
- Callback URL: Añade ambos de estos enlaces, reemplazando
-
En Certificate Upload, haz clic en Upload files y sube el archivo
server.crtdel Paso 1. -
Haz clic en Create.
Paso 4: Obtener la clave de consumidor (Consumer Key) y el secreto de consumidor (Consumer Secret)
Rol: Administrador de Salesforce
-
En la Aplicación de cliente externo recién creada, haz clic en la pestaña Settings.
-
Desplázate hacia abajo y expande OAuth Settings.
-
Haz clic en Consumer Key and Secret.
-
Vuelve a introducir tus credenciales de acceso de Salesforce cuando se te solicite.
-
Copia la Consumer Key y el Consumer Secret y envíaselos a tu admin de Discourse para el Paso 5.
Paso 5: Configurar los ajustes del complemento de Discourse
Rol: Admin de Discourse
-
En Discourse, ve a Admin → Plugins → Salesforce → Settings.
-
Completa los siguientes ajustes:
Ajuste Valor salesforce enabledMarca la casilla para habilitar la integración salesforce client idLa Consumer Key del Paso 4 salesforce client secretEl Consumer Secret del Paso 4 salesforce rsa private keyPega el contenido completo del archivo server.keydel Paso 1salesforce usernameEl nombre de usuario del usuario de integración de Salesforce salesforce authorization server urlSolo es necesario si usas un dominio personalizado de Salesforce (por ejemplo, https://mycompany.my.salesforce.com) -
Haz clic en Save changes.
Paso 6: Autorizar la aplicación de Discourse en Salesforce
Rol: Usuario de integración de Salesforce
- Ve a
https://<your-discourse-site>/salesforce/admin/authorize, reemplazando<your-discourse-site>con la URL completa de tu sitio de Discourse (por ejemplo,meta.discourse.org). - Serás redirigido a Salesforce y se te pedirá que autorices la aplicación.
- Inicia sesión en Salesforce y concede acceso a la aplicación.
Después de completar este paso, deberías estar listo. Puedes confirmar que está funcionando yendo a cualquier perfil de usuario en Discourse; debería aparecer una opción Sync with Salesforce en el menú de administración.
Solución de problemas
Si el complemento no funciona después de la configuración, revisa lo siguiente primero:
-
Comprobaciones de salud del panel de administración: el complemento muestra dos alertas en
/admincuando hay errores de configuración:SalesforceInvalidCredentials: la Consumer Key, Consumer Secret, la clave privada RSA o el nombre de usuario son incorrectosSalesforceAppNotApproved: el paso de autorización (Paso 6) no se ha completado, o la aplicación conectada fue rechazada
-
Habilitar registro detallado: Activa el ajuste del sitio
salesforce_auth_verbose_loggingpara escribir una salida de autenticación detallada en los/logsde Discourse. Errores comunes y causas:
| Síntoma | Causa probable |
|---|---|
| “Insufficient privileges” al crear un Lead o Contacto | El usuario de integración no tiene permisos de Crear/Editar en los objetos Lead o Contact |
| “Insufficient privileges” al crear un Caso | Al usuario de integración le faltan permisos para Caso o Comentario de caso |
| “Invalid grant” en el paso de autorización | La clave RSA no coincide con el certificado cargado en el Paso 3, o no se habilitó el flujo JWT Bearer |
| Error “DUPLICATE_VALUE” al crear un Lead o Contacto | Comportamiento esperado si el usuario ya existe en Salesforce; el complemento lo maneja, pero consulta la documentación principal del complemento para más detalles |
| Las publicaciones en Chatter no aparecen | Es posible que el usuario de integración no tenga permisos para crear FeedItem |






