Passar para o conteúdo principal

Fin Messenger: Configure a autenticação JWT para Salesforce Enhanced Chat

Como gerar um Fin JWT para proteger o Fin Messenger para Salesforce

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:

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

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

Respondeu à sua pergunta?