Este artigo explica como gerar e configurar o JSON Web Token (JWT) necessário para o Fin Messenger autenticar users ao encaminhar conversas para o Salesforce Enhanced Chat. Completar essas etapas permite que o Fin transmita com segurança a identidade do usuário tanto para o Fin quanto para o Salesforce, para que seus colegas possam confiar na identidade dos clientes com quem estão falando.
Nota: Pré-requisitos: o Fin Messenger já deve estar instalado no seu app, e um Canal de Mensagens Salesforce Enhanced Chat deve estar configurado. A gem Ruby jwt é necessária se usar os exemplos de código Rails abaixo. Este recurso está disponível nos planos Fin Messenger que incluem integração com Salesforce — entre em contato com sua equipe de conta para confirmar o acesso.
Você deve adicionar o JWT aos seus atributos intercomSettings para habilitar a autenticação do Fin Messenger com o Salesforce Enhanced Chat:
intercom_user_jwt
Isso é usado para fornecer com segurança ao Fin o ID do Contato e quaisquer atributos do Contato ou Conta que você deseja fornecer ao Fin (ou Salesforce)
Omitir intercom_user_jwt significa que o Fin não pode transmitir dados do contato com segurança para o Salesforce.
O JWT deve ser gerado no servidor a cada carregamento de página para o usuário atual, usando uma chave privada. Siga estas etapas para obter cada chave e habilitar a verificação do user no Fin Messenger e Salesforce:
Recupere sua chave privada Intercom — vá para Configurações > Messenger > Segurança e copie seu Messenger API Secret. Esta é a chave de assinatura para intercom_user_jwt.
Veja Fin Messenger: Enabling user verification in Salesforce para instruções passo a passo para habilitar a Verificação de user no Salesforce. O Fin cuidará de gerar o Salesforce JWT uma vez configurado.
O exemplo Rails a seguir mostra como gerar o JWT para autenticação do Fin Messenger e Salesforce Enhanced Chat e passá-los para seu objeto intercomSettings:
Visualização Rails — passando JWTs para 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 Rails — gerando o Fin JWT para Fin Messenger:
intercom_jwt usa HS256 (HMAC-SHA256, um algoritmo de assinatura simétrica) com seu Intercom Messenger API Secret.
def intercom_jwt(user_id)
JWT.encode({ user_id: user_id, exp: Time.now.to_i+3600 }, INTERCOM_JWT_SECRET, "HS256")
end
Nota: O JWT está configurado para expirar após 1 hora (exp: Time.now.to_i + 3600). Deve ser regenerado a cada carregamento de página — não o armazene em cache entre sessões. Se um JWT expirar no meio da conversa, o cliente pode precisar atualizar a página para reautenticar.
