Passar para o conteúdo principal

Fin Messenger: Incorporando o messenger no seu portal Salesforce

Este guia orienta você pelos passos para instalar o Fin Messenger em uma página do Salesforce.

Adicione o Fin Messenger ao seu site Salesforce Experience Cloud (portal) e controle quais dados do usuário conectado são enviados para Fin totalmente por configuração, sem necessidade de editar Apex.

Nota: O que mudou (jun 2026): Anteriormente, este guia pedia para editar a classe JwtGenerator Apex para escolher o identificador do usuário e quais atributos enviar. Isso não é possível em uma organização de produção (Salesforce não permite editar Apex via Setup em produção, e classes empacotadas são sobrescritas na atualização). Agora você configura tudo isso nas Configurações do Fin Messenger (custom setting), com uma interface Apex opcional para casos avançados (veja o Passo 6).


Instale o Fin Messenger em uma página do Salesforce

1. Instale o pacote no Salesforce

Para instalar o Fin Messenger em uma página do Salesforce, criamos um pacote que você pode instalar, que simplesmente cria uma definição de custom setting.

Você precisará instalar o pacote no seu ambiente Salesforce antes de seguir os passos abaixo.

Ou

2. Configure as configurações do Fin Messenger no Salesforce

O pacote adiciona uma configuração protegida Fin Messenger Settings que armazena seu App ID, segredo JWT e (novo) a configuração dos dados do usuário.


​A) Abra as configurações Setup

  1. Abra o App Launcher.

  2. Escolha Fin Messenger Setup.

B) App ID — no Fin, Settings > General; insira-o no campo App Id.
​C) JWT Secret Key — no Fin, é a Unified Secret key em Settings > Fin Messenger > Security; insira-a no campo JWT Secret Key. A chave secreta não pode ser lida após salvar; apenas sua impressão digital é mostrada.


Esses dois são os únicos valores obrigatórios. O restante (Passo 6) é opcional.

3. Configure a política de segurança de conteúdo (CSP)

  1. Setup > Digital Experiences > All Sites > (seu site) > Builder > Settings > Security & Privacy.

  2. Defina o Nível de Segurança para Relaxed CSP.

  3. Em Trusted Sites for Scripts, adicione https://widget.intercom.io e https://js.intercomcdn.com.

  4. Em Setup → Trusted URLs, adicione as URLs/diretrizes CSP do Intercom, com CSP Context = All ou Experience Builder Sites.

4. Adicione o script de inicialização do Fin Messenger ao seu 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ão

api_base

US

https://api-iam.intercom.io

EU

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

Austrália

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

Nota: Para sites Experience Cloud, use o snippet do carregador do widget junto com o script listener finMessengerData neste passo. Não adicione um bloco manual separado intercomSettings, pois isso pode impedir o aparecimento do Messenger.

5. Adicione o componente Fin Messenger à sua página

  1. Setup > Digital Experiences > All Sites > (seu site) > Builder.

  2. Arraste o componente Fin Messenger para a página do portal.

  3. Publique o site.

6. Configure os dados do usuário enviados para Fin

Tudo configurado no aplicativo Fin Messenger Setup (Passo 2) — sem alterações de código. Deixe um campo em branco para manter o padrão.

Campo

O que controla

Padrão quando em branco

Campo de Id do Usuário

O campo do Usuário cujo valor se torna o user_id do Fin.

ContactId

Campos de Atributos

Atributos extras para enviar (formato abaixo).

nenhum

Campo de Id da Empresa

O campo do Usuário enviado como company.company_id.

omitido

Classe Provedora

Avançado: uma classe Apex que retorna atributos personalizados.

não usado

Formato dos Campos de Atributos

Pares separados por vírgula intercomKey:UserField:

  • À esquerda dos dois pontos — o nome do atributo Intercom (chave que o Fin recebe).

  • À direita dos dois pontos — o nome da API do campo de Usuário Salesforce para ler o valor.

  • Um nome de campo simples usa o nome do campo em minúsculas como chave Intercom.

  • Campos personalizados usam seu nome de API (__c). Campos desconhecidos são ignorados.

Exemplo: phone:Phone, job_title:Title, Department, plan:Account_Tier__c produz:
​

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

Nota: name, email e user_id são sempre enviados (não os liste aqui).

Avançado: atributos personalizados via Apex

Para valores que você não pode expressar como um único campo de Usuário, implemente finai.MessengerAttributeProvider em uma classe Apex própria (editável, na sua organização), então coloque seu nome em Classe Provedora:
​

global class MyFinAttributes implements finai.MessengerAttributeProvider {
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;
}
}
  • Deve ser global (chamada através do namespace do pacote).

  • currentUser contém apenas os campos configurados no Passo 6 — consulte qualquer outro.

  • O mapa do provedor é mesclado por último, então suas chaves prevalecem sobre os Campos de Atributos.

  • Mantenha leve — ele roda em toda inicialização do messenger (erros são capturados; consultas lentas atrasam a inicialização).

Segurança: Perfis de usuário Community e Experience Cloud não precisam da permissão API Enabled nem acesso ao custom setting finmessenger__Settings__c, e você pode remover ambos (mantenha o custom setting em si). Mantenha o segredo JWT no servidor; apenas o token assinado deve chegar ao navegador. Teste alterações primeiro em sandbox.


Perguntas Frequentes

Como encontro meu Fin App ID?

Vá para Settings > General. Seu App ID está listado na seção App details.

Onde encontro a Chave Secreta JWT?

Copie a Unified Secret key em Settings > Fin Messenger > Security. Esta é a chave secreta JWT.

E se o messenger não carregar?

Verifique suas configurações CSP. Certifique-se de que tanto as URLs de script confiáveis quanto as URLs confiáveis estejam configuradas corretamente e que o nível de segurança esteja definido para Relaxed CSP.

Posso restringir quais dados do usuário são enviados para Fin?

Sim, isso é o Passo 6. Configure Campo de Id do Usuário, Campos de Atributos, Campo de Id da Empresa e Classe Provedora nas Configurações do Fin Messenger. Apenas name, email, user_id e o que você listar em Campos de Atributos são enviados. Limpe os campos para enviar menos.

Preciso editar Apex?

Não, a configuração padrão no Passo 6 não requer alterações de código. Apex só é necessário se você optar pelo gancho avançado Classe Provedora, que usa uma classe que você escreve na sua própria organização (não o Apex empacotado).

Como resolvo falhas de compilação Apex?

  • O pacote Salesforce depende de objetos e campos padrão, então se houver falha de compilação pode ser devido a classes Apex órfãs na organização Salesforce.

  • Nesses casos, clique no acordeão Opções Avançadas durante a instalação.

  • Selecione Compilar apenas o Apex no pacote e então clique em Instalar.

Respondeu à sua pergunta?