Ir al contenido principal

Fin Messenger: Configurar la autenticación JWT para Salesforce Enhanced Chat

Cómo generar un Fin JWT para asegurar Fin Messenger para Salesforce

Este artículo explica cómo generar y configurar el JSON Web Token (JWT) requerido para que Fin Messenger autentique a los users al enrutar conversaciones a Salesforce Enhanced Chat. Completar estos pasos permite que Fin transmita de forma segura la identidad del user tanto a Fin como a Salesforce, para que tus compañeros puedan confiar en la identidad de los clientes con los que hablan.

Nota: Requisitos previos: Fin Messenger debe estar ya instalado en tu app, y debe configurarse un Canal de Mensajería Salesforce Enhanced Chat. La gema Ruby jwt es necesaria si usas los ejemplos de código Rails a continuación. Esta función está disponible en los planes de Fin Messenger que incluyen integración con Salesforce — contacta a tu equipo de cuenta para confirmar el acceso.

Debes agregar el JWT a tus atributos intercomSettings para habilitar la autenticación de Fin Messenger con Salesforce Enhanced Chat:

  • intercom_user_jwt

    • Esto se usa para proporcionar de forma segura a Fin el Contact ID y cualquier atributo del Contact o Account que quieras proporcionar a Fin (o Salesforce).

Omitir intercom_user_jwt significa que Fin no puede transmitir datos de contacto de forma segura a Salesforce.

El JWT debe generarse del lado del servidor en cada carga de página para el user actual, usando una clave privada. Sigue estos pasos para obtener cada clave y habilitar la verificación de users en Fin Messenger y Salesforce:

  1. Recupera tu clave privada de Intercom — ve a Settings > Messenger > Security y copia tu Messenger API Secret. Esta es la clave de firma para intercom_user_jwt.

  2. Consulta Fin Messenger: Enabling user verification in Salesforce para instrucciones paso a paso para habilitar la Verificación de users en Salesforce. Fin se encargará de generar el JWT de Salesforce una vez configurado.

El siguiente ejemplo en Rails muestra cómo generar el JWT para la autenticación de Fin Messenger y Salesforce Enhanced Chat y pasarlos a tu objeto intercomSettings:

Vista Rails — pasando JWTs a intercomSettings para Fin Messenger:

  window.intercomSettings = {
api_base: "https://api-iam.intercom.io",
app_id: "your-app-id-here",
user_id: "<%= current_user&.id %>",
intercom_user_jwt: "<%= intercom_jwt(current_user&.id %>",
};

Helper de Rails — generando el Fin JWT para Fin Messenger:

intercom_jwt usa HS256 (HMAC-SHA256, un algoritmo de firma simétrico) con tu Messenger API Secret de Intercom.

  def intercom_jwt(user_id)
JWT.encode({ user_id: user_id, exp: Time.now.to_i+3600 }, INTERCOM_JWT_SECRET, "HS256")
end

Nota: El JWT está configurado para expirar después de 1 hora (exp: Time.now.to_i + 3600). Debe regenerarse en cada carga de página — no lo caches entre sesiones. Si un JWT expira en medio de una conversación, el cliente puede necesitar refrescar la página para reautenticarse.

¿Ha quedado contestada tu pregunta?