Ir al contenido principal

Fin Messenger: Integrando el messenger en tu portal de Salesforce

Esta guía te muestra los pasos para instalar Fin Messenger en una página web de Salesforce.

Agrega Fin Messenger a tu sitio de Salesforce Experience Cloud (portal) y controla qué datos de usuario conectados se envían a Fin completamente mediante configuración, sin necesidad de editar Apex.

Nota: Cambios (jun 2026): Antes esta guía pedía editar la clase JwtGenerator Apex para elegir el identificador de usuario y qué atributos enviar. Eso no es posible en una org de producción (Salesforce no permite editar Apex vía Setup en producción, y las clases empaquetadas se sobrescriben al actualizar). Ahora configuras todo esto en Fin Messenger Settings (configuración personalizada), con una interfaz Apex opcional para casos avanzados (ver Paso 6).


Instalar Fin Messenger en una página web de Salesforce

1. Instala el paquete en Salesforce

Para instalar Fin Messenger en una página web de Salesforce, hemos creado un paquete que puedes instalar, el cual simplemente crea una definición de configuración personalizada.

Necesitarás instalar el paquete en tu entorno Salesforce antes de seguir los pasos a continuación.

O

2. Configura los ajustes de Fin Messenger en Salesforce

El paquete añade una configuración personalizada Fin Messenger Settings que almacena tu App ID, JWT secret, y (nuevo) la configuración de datos de usuario.


A) Abre los ajustes

  1. Ve a Setup > Custom Settings.

  2. Abre Fin Messenger Settings.

  3. Haz clic en Manage.

  4. Haz clic en New (o Edit) en el Default Organization Level Value.

B) App ID — en Fin, Settings > General; introdúcelo en el campo App Id.
C) JWT Secret Key — en Fin, Settings > Fin Messenger; introdúcelo en el campo JWT Secret Key.


Estos dos son los únicos valores obligatorios. El resto (Paso 6) son opcionales.

3. Configura la política de seguridad de contenido (CSP)

  1. Setup > Digital Experiences > All Sites > (tu sitio) > Builder > Settings > Security & Privacy.

  2. Configura Security Level a Relaxed CSP.

  3. En Trusted Sites for Scripts, añade https://widget.intercom.io y https://js.intercomcdn.com.

  4. En Setup → Trusted URLs, añade las URLs/directivas CSP de Intercom, con CSP Context = All o Experience Builder Sites.

4. Añade el script de arranque de Fin Messenger a tu portal

<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>

Región

api_base

EE.UU.

https://api-iam.intercom.io

UE

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

Australia

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

5. Añade el componente Fin Messenger a tu página

  1. Setup > Digital Experiences > All Sites > (tu sitio) > Builder.

  2. Arrastra el componente Fin Messenger a la página del portal.

  3. Publica el sitio.

6. Configura los datos de usuario enviados a Fin

Todo listo en el registro Fin Messenger Settings (Paso 2) — sin cambios de código. Deja un campo en blanco para mantener el valor predeterminado.

Campo

Qué controla

Predeterminado si está vacío

Campo de Id de Usuario

El campo Usuario cuyo valor se convierte en el Fin user_id.

ContactId

Campos de Atributos

Atributos extra para enviar (formato abajo).

ninguno

Campo de Id de Compañía

El campo Usuario enviado como company.company_id.

omitido

Clase Proveedora

Avanzado: una clase Apex que devuelve atributos personalizados.

no usado

Formato de Campos de Atributos

Pares separados por comas intercomKey:UserField:

  • A la izquierda de los dos puntos — el nombre del atributo Intercom (clave que Fin recibe).

  • A la derecha de los dos puntos — el nombre API del campo Usuario de Salesforce para leer el valor.

  • Un nombre de campo simple usa el nombre del campo en minúsculas como clave Intercom.

  • Los campos personalizados usan su nombre API (__c). Los campos desconocidos se ignoran.

Ejemplo: phone:Phone, job_title:Title, Department, plan:Account_Tier__c produce:

{ "phone": "(555) 123-4567", "job_title": "Account Executive", "department": "Sales", "plan": "Enterprise" }

Nota: name, email y user_id siempre se envían (no los listes aquí).

Avanzado: atributos personalizados vía Apex

Para valores que no puedes expresar como un solo campo Usuario, implementa FinAttributeProvider en tu propia clase Apex (editable, en tu org), luego pon su nombre en Clase Proveedora:

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;
}
}
  • Debe ser global (llamada a través del espacio de nombres del paquete).

  • currentUser solo contiene los campos configurados en el Paso 6 — consulta cualquier otro.

  • El mapa del proveedor se fusiona último, por lo que sus claves prevalecen sobre Campos de Atributos.

  • Mantenlo ligero — se ejecuta en cada arranque del messenger (los errores se capturan; consultas lentas ralentizan el arranque).


Preguntas frecuentes

¿Cómo encuentro mi Fin App ID?

Ve a Settings > General. Tu App ID está listado en la sección App details.

¿Dónde encuentro la JWT Secret Key?

En Settings > Fin Messenger, copia tu JWT Secret Key.

¿Qué pasa si el messenger no carga?

Revisa tus ajustes CSP. Asegúrate de que tanto las URLs de scripts confiables como las URLs confiables estén configuradas correctamente y que el nivel de seguridad esté en Relaxed CSP.

¿Puedo restringir qué datos de usuario se envían a Fin?

Sí, eso es el Paso 6. Configura Campo de Id de Usuario, Campos de Atributos, Campo de Id de Compañía y Clase Proveedora en Fin Messenger Settings. Solo se envían name, email, user_id y lo que listes en Campos de Atributos. Limpia los campos para enviar menos.

¿Necesito editar Apex?

No, la configuración estándar en el Paso 6 no requiere cambios de código. Apex solo es necesario si optas por el gancho avanzado Clase Proveedora, que usa una clase que escribes en tu propia org (no el Apex empaquetado).

¿Cómo resuelvo fallos de compilación de Apex?

  • El paquete de Salesforce depende de objetos y campos estándar, así que si hay un fallo de compilación podría deberse a clases Apex huérfanas en la organización Salesforce.

  • En tales casos, haz clic en el acordeón Opciones Avanzadas durante la instalación.

  • Selecciona Compilar solo el Apex del paquete y luego haz clic en Instalar.

¿Ha quedado contestada tu pregunta?