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 um Fin Messenger Settings custom setting que armazena seu App ID, segredo JWT e (novo) a configuração dos dados do usuário.


A) Abra as configurações

  1. Vá para Setup > Custom Settings.

  2. Abra Fin Messenger Settings.

  3. Clique em Manage.

  4. Clique em New (ou Edit) no Default Organization Level Value.

B) App ID — no Fin, Settings > General; insira no campo App Id.
C) JWT Secret Key — no Fin, Settings > Fin Messenger; insira no campo JWT Secret Key.


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

EUA

https://api-iam.intercom.io

UE

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

Austrália

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

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 registro Fin Messenger Settings (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 FinAttributeProvider em uma classe Apex própria (editável, na sua organização), e então coloque seu nome em Classe Provedora:

global class MyFinAttributes implements finmessenger.FinAttributeProvider {
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 em todo o 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 têm prioridade 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).


Perguntas Frequentes

Como encontro meu Fin App ID?

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

Onde encontro o JWT Secret Key?

Em Settings > Fin Messenger, copie seu JWT Secret Key.

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 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?