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
Abra o App Launcher.
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)
Setup > Digital Experiences > All Sites > (seu site) > Builder > Settings > Security & Privacy.
Defina o Nível de Segurança para Relaxed CSP.
Em Trusted Sites for Scripts, adicione
https://widget.intercom.ioehttps://js.intercomcdn.com.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 |
|
US |
|
EU |
|
Austrália |
|
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
Setup > Digital Experiences > All Sites > (seu site) > Builder.
Arraste o componente Fin Messenger para a página do portal.
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 |
|
Campos de Atributos | Atributos extras para enviar (formato abaixo). | nenhum |
Campo de Id da Empresa | O campo do Usuário enviado como | 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).currentUserconté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.



