Bring Your Own Channel (BYOC) é uma nova forma para clientes Fin habilitarem o Fin Messenger como seu agente de IA para chat ao vivo. Conectar via BYOC em vez do Enhanced Chat traz melhorias na forma como o messenger lida com certos comportamentos dos users, como conversas simultâneas em várias abas, para que você continue aproveitando o serviço de primeira classe da Fin. A migração é simples, utilizando ambientes de teste antes de implantar em produção sem causar downtime. Siga o guia abaixo para implementar em seu workspace.
Use este artigo para atualizar sua conexão Fin para Salesforce existente para usar o novo External Client App (ECA). Este guia é para admins Salesforce migrando uma implantação Fin para Salesforce existente — você precisará de acesso admin Salesforce e uma assinatura ativa Fin para Salesforce. Ao final, você terá instalado os pacotes gerenciados necessários, conectado via o novo ECA, configurado permissões e — se usar Fin Messenger — estabelecido uma conexão de chat ao vivo entre Fin e Salesforce via Bring Your Own Channel (BYOC), o framework padrão de integração de canais Salesforce para conectar provedores de mensagens de terceiros.
São 6 passos envolvidos:
Conecte-se ao Salesforce via o External Client App
Configure as permissões
Alterne para usar as credenciais do External Client App
Execute o script de migração Apex
Desinstale o pacote obsoleto e desconecte o Connected App
Atualize sua implantação Fin Messenger
[opcional]
Nota: Se você está configurando Fin para lidar apenas com casos Salesforce (sem mensagens), pode pular a seção Atualizações para Fin Messenger abaixo.
Passo 1: Conecte-se ao Salesforce via o External Client App
Vá para Connect no seu workspace Fin, depois clique na aba Bring Your Own Channel.
Esta aba serve como a aba de migração para mover para o novo External Client App (ECA) — um método de autenticação baseado em credenciais de cliente OAuth 2.0 que substitui o Connected App legado (uma integração OAuth mais antiga que exigia armazenar credenciais de users).
Você verá suas conexões existentes listadas como Not Connected nesta aba. O status da conexão é em relação ao External Client App.
Siga os passos abaixo para instalar um pacote gerenciado no Salesforce. O pacote gerenciado instala o External Client App, além de todas as permissões e campos que a Fin precisa para funcionar.
Clique no botão Connect, em qualquer conexão existente que deseja conectar (teste ou produção), depois clique em Install Package.
Selecione Install for all users. Isso significa que o conjunto de permissões pode ser atribuído a qualquer user na sua organização Salesforce, se desejar.
Aguarde a instalação terminar. Nenhum erro deve ser exibido.
Quando a instalação estiver completa, volte para a página Connect e clique no botão Connect to Salesforce no Passo 2, então permita que a conexão seja estabelecida.
Passo 2: Configure as permissões
Vá para Connect > Bring Your Own Channel (Tab) > Assign permissions in Salesforce no seu workspace Fin e siga os passos lá para criar um novo conjunto de permissões e atribuir todas as permissões que a Fin precisa para funcionar.
Crie um novo conjunto de permissões
No Salesforce, crie um novo conjunto de permissões. O rótulo e o nome da API podem ser qualquer coisa — este conjunto de permissões será atribuído apenas ao user de integração.
Ao selecionar uma licença, certifique-se de escolher uma que inclua a permissão Set Audit Fields upon Record Creation, por exemplo, a licença Salesforce. Algumas licenças não incluem essa permissão.
Salve o novo conjunto de permissões.
Nota: Nem todos os tipos de licença Salesforce incluem a permissão Set Audit Fields upon Record Creation. Se essa opção não estiver disponível para uma licença que você está considerando, selecione um tipo de licença diferente (como a licença padrão Salesforce) que a inclua.
Atribua conjuntos de permissões ao user de integração
Tanto o conjunto de permissões existente Fin for Salesforce permissions quanto o conjunto de permissões recém-criado devem ser atribuídos ao user de integração.
No Salesforce, navegue até o perfil do user de integração.
Vá para Permission Set Assignments e clique em Edit Assignments.
Adicione tanto o conjunto de permissões Fin for Salesforce permissions quanto o conjunto recém-criado na coluna Enabled Permission Sets, depois clique em Save.
Passo 3: Altere para usar as credenciais do External Client App
Você pode alternar para usar as credenciais do External Client App para uma conexão Salesforce ativando o botão Use External Client App credentials ao gerenciar uma conexão em Connect > Bring Your Own Channel (Tab).
Uma vez ativado, a Fin usa as credenciais do External Client App para todas as suas requisições ao Salesforce, incluindo:
Consultas para obter o status da conexão.
Criação de um caso Salesforce via etapa do workflow.
Criação de um caso Salesforce na resolução Fin ou inatividade do user.
Resposta a caso criado via o canal Salesforce cases.
Importação de artigos Knowledge.
Importação de casos históricos Salesforce.
Uma vez ativado, você pode desativar se achar que algo está errado. Isso permite testar em cada ambiente — sandbox, UAT (user acceptance testing) e produção — e ganhar confiança com as novas credenciais ECA, sem interromper as credenciais legadas do Connected App.
Quando todas as conexões tiverem Use External Client App credentials ativado, a migração estará completa. O status da conexão para cada entrada atualiza para Connected na aba Bring Your Own Channel. Siga os passos abaixo para migrar seus dados e limpar o pacote obsoleto quando estiver satisfeito que todos os sistemas estão funcionando conforme o esperado.
Passo 4: Execute o script de migração Apex
Quando você instala o pacote gerenciado base Fin for Salesforce, ele instala novos campos Fin Case que são nomeados com namespace finai. Namespacing significa que cada nome de campo é prefixado com finai__ (por exemplo, finai__FinConversationId__c) para evitar conflitos de nomes com outros pacotes ou campos personalizados na sua org.
Como parte da migração, use o script de migração Apex para mover seus dados de casos existentes dos campos antigos sem namespace para os novos campos com namespace. O pacote Fin for Salesforce inclui uma classe Apex pré-construída chamada FinCaseFieldMigrator.cls que gerencia a lógica da migração.
O Apex dentro de um pacote gerenciado resolve nomes de campos personalizados não qualificados contra seu próprio namespace. Uma consulta para FinConversationId__c executada dentro do pacote finai retorna finai__FinConversationId__c em vez disso, então o código empacotado não pode ler os campos legados, e nomear ambos em uma consulta falha imediatamente com um erro duplicate field selected. Portanto, a busca da migração deve ser executada fora do pacote — por isso a classe abaixo deve ser criada manualmente na sua org. A classe em si não contém lógica de migração; ela chama a classe de migração instalada pelo pacote gerenciado e a executa em lotes de 200 registros por vez.
public without sharing class FinCaseFieldMigration implements Database.Batchable<SObject>, Database.Stateful {
private final finai.FinCaseFieldMigrator migrator;
public FinCaseFieldMigration() {
this.migrator = new finai.FinCaseFieldMigrator();
}
public static Id run() {
return run(200);
}
public static Id run(Integer scopeSize) {
if (scopeSize == null || scopeSize < 1 || scopeSize > 2000) {
throw new IllegalArgumentException('scopeSize must be between 1 and 2000, got: ' + scopeSize);
}
return Database.executeBatch(new FinCaseFieldMigration(), scopeSize);
}
public Database.QueryLocator start(Database.BatchableContext bc) {
return Database.getQueryLocator(migrator.queryString());
}
public void execute(Database.BatchableContext bc, List<SObject> scope) {
migrator.migrate(scope);
}
public void finish(Database.BatchableContext bc) {
migrator.report(bc.getJobId());
}
}
Configure a classe Apex FinCaseFieldMigration
Vá para Salesforce setup > Apex Classes.
Clique em New, cole a classe declarada acima.
Clique em Save. A classe aparecerá na sua lista de Apex Classes como FinCaseFieldMigration. Se algum erro aparecer, verifique se a classe foi colada por completo e se sua org tem Apex habilitado.
Execute a classe Apex FinCaseFieldMigration
Vá para Salesforce setup > Developer Console
Clique em Debug > Open Execute Anonymous Window
Cole o código abaixo
Id jobId = FinCaseFieldMigration.run();
System.debug('Fin Case field migration job: ' + jobId);Clique em Execute
Quando concluído, o Salesforce User que iniciou o trabalho via Developer Console deve receber um e-mail intitulado Fin for Salesforce — Case field migration finished com detalhes sobre o número de casos Salesforce afetados pela migração.
Passo 5: Desinstale o pacote obsoleto e desconecte o Connected App
Depois que o novo pacote gerenciado estiver instalado, todas as conexões são trocadas para as credenciais ECA, e os dados do campo Fin Case foram migrados para os novos campos com namespace, desinstale o pacote desbloqueado ou não gerenciado anterior e revogue a conexão do Connected App legado.
Desatribua o PermissionSet legado
O PermissionSet legado (um objeto Salesforce que concede aos users acesso a recursos e campos específicos) deve ser desatribuído antes que o pacote possa ser desinstalado.
Vá para Salesforce setup > Installed Packages
Clique no pacote desbloqueado Fin for Salesforce
Clique em View Components
Clique no PermissionSet Fin_for_Salesforce_permissions, isso deve levá-lo para a página do PermissionSet.
Clique em Manage Assignments
Selecione todos os Salesforce users atribuídos
Clique no botão Remover Atribuição
Desinstale o pacote e salve os dados
Vá para Salesforce setup > Installed Packages
Clique em Uninstall ao lado do pacote desbloqueado Fin for Salesforce
Selecione Save a copy of this package's data for 48 hours after uninstall para salvar todos os dados dos campos de caso como um csv com uma coluna para o Salesforce Case ID.
Importante: O Salesforce mantém a exportação de dados salva por apenas 48 horas após a desinstalação. Baixe o CSV antes que esse prazo termine. Se você já executou o script de migração Apex com sucesso, não precisará restaurar a partir deste arquivo — mas é uma rede de segurança útil.
Aguarde a notificação de que a desinstalação do pacote foi concluída com sucesso.
Revisite Salesforce setup > Installed Packages, você deve ver o pacote desinstalado listado em Uninstalled Packages.
Clique em Data, isso fará o download de todos os dados do Case como um csv armazenado dentro de um arquivo zip. Guarde esse arquivo zip com segurança, pois pode ser usado para restaurar dados se necessário. Mas se você executou o script de migração Apex, deve estar tudo certo.
Revogar conexão do Connected App
Vá para Salesforce setup > Connected Apps OAuth Usage
Clique no link numérico listado abaixo da coluna User Count para o Connected App Fin for Salesforce. Isso o redirecionará para Connected App User's Usage.
Clique em Revoke ao lado de cada user listado. Isso remove os tokens de acesso OAuth armazenados como parte da conexão do Connected App legado. Uma vez revogados, esses users não aparecem mais na lista.
Passo 6: Atualize sua implantação do Fin Messenger
Siga estes passos somente se você pretende usar o Fin for Salesforce com Messaging.
Esta seção explica como conectar o Fin como um parceiro Bring Your Own Channel (BYOC) no Salesforce, e como migrar workflows existentes de Enhanced Chat handoff para usar BYOC em vez disso.
Conecte o Fin ao Bring Your Own Channel
Para estabelecer a conexão BYOC entre Fin e Salesforce, siga o Passo 1 do artigo Fin Messenger: Setting up with Salesforce. Esse passo orienta você a criar um Canal de Mensagens, configurar o Event Relay e ativar o canal no Salesforce.
Uma vez concluído, você deve ter um Canal de Mensagens ativo com um Event Relay em execução — um recurso do Salesforce que transmite eventos de plataforma em tempo real, usado aqui para passar mensagens entre Fin e Salesforce — entre Fin e Salesforce.
Transferência para agente Salesforce
O passo Hand-off to Salesforce agent nos workflows do Fin Messenger agora suporta alternar entre BYOC e Enhanced Chat. Isso permite controlar qual canal a transferência usa durante os testes, para que você possa mudar gradualmente sem tempo de inatividade.
Você pode criar múltiplos workflows com diferentes públicos e segmentações de ambiente para controlar qual tráfego passa pelo BYOC
Ou você pode aproveitar a etapa Branches em workflows com a variável Environment para direcioná-la a uma etapa de Hand-off para agente Salesforce com BYOC ativado versus uma com BYOC desativado (ou seja, Enhanced Chat)
Perguntas Frequentes
Quanto tempo leva a migração?
Quanto tempo leva a migração?
As etapas técnicas geralmente levam de 1 a 2 horas. No entanto, se você realizar o ciclo completo de testes — sandbox primeiro, depois UAT (user acceptance testing), e então produção — permita de 1 a 2 dias úteis no total. A principal variável é quantos ambientes Salesforce você valida antes de entrar em produção.
Há algum tempo de inatividade?
Há algum tempo de inatividade?
Não se espera tempo de inatividade. O botão Use External Client App credentials pode ser desativado a qualquer momento se algo parecer errado, e tanto o Enhanced Chat quanto o BYOC podem funcionar simultaneamente durante a transição.
É necessário algum licenciamento ou complemento adicional do Salesforce?
É necessário algum licenciamento ou complemento adicional do Salesforce?
Para o BYOC funcionar, você precisa da licença Digital Engagement SKU with the Partner Messaging add-on. Uma forma de verificar se você possui a licença relevante é,
Vá para Salesforce setup > Company Information
Verifique se você tem Partner Messaging User listado em Permission Set Licenses e o total de licenças disponíveis.
Entre em contato com seu Salesforce Account Executive (AE) se estiver faltando a licença ou complemento para habilitá-los em sua Organização Salesforce.
Existe algum risco de sobrescrever dados existentes do Salesforce?
Existe algum risco de sobrescrever dados existentes do Salesforce?
Há um risco de perda de dados (especificamente os campos personalizados Fin de Case) ao desinstalar o pacote desbloqueado/não gerenciado anterior.
No entanto, isso é mitigado por Executar o script de migração Apex e/ou por baixar os dados do Case como parte da desinstalação.
Não há risco associado a sobrescrever dados existentes do Salesforce com esta migração especificamente.












