Bring Your Own Channel (BYOC) es una nueva forma para que los clientes de Fin habiliten Fin Messenger como su agente de IA para chat en vivo. Conectarse vía BYOC en lugar de Enhanced Chat mejora la forma en que el messenger maneja ciertos comportamientos de los users, como conversaciones concurrentes en múltiples pestañas, para que pueda seguir disfrutando del servicio de primera clase de Fin. La migración es sencilla, utilizando entornos de prueba antes de implementarlo en producción sin causar tiempo de inactividad. Siga la guía a continuación para implementarlo en su espacio de trabajo.
Use este artículo para actualizar su conexión existente de Fin para Salesforce y usar la nueva External Client App (ECA). Esta guía es para administradores de Salesforce que migran una implementación existente de Fin para Salesforce: necesitará acceso de administrador de Salesforce y una suscripción activa de Fin para Salesforce. Al final, habrá instalado los paquetes gestionados requeridos, conectado vía la nueva ECA, configurado permisos y, si usa Fin Messenger, establecido una conexión de chat en vivo entre Fin y Salesforce mediante Bring Your Own Channel (BYOC), el marco estándar de integración de canales de Salesforce para conectar proveedores de mensajería de terceros.
Hay 6 pasos involucrados:
Conéctese a Salesforce vía la External Client App
Configure los permisos
Cambie a usar las credenciales de la External Client App
Ejecute el script de migración Apex
Desinstale el paquete obsoleto y desconecte la Connected App
Actualice su implementación de Fin Messenger
[opcional]
Nota: Si está configurando Fin para manejar solo casos de Salesforce (sin mensajería), puede omitir la sección Actualizaciones a Fin Messenger a continuación.
Paso 1: Conéctese a Salesforce vía la External Client App
Vaya a Connect en su espacio de trabajo Fin, luego haga clic en la pestaña Bring Your Own Channel.
Esta sirve como la pestaña de migración para pasar a la nueva External Client App (ECA), un método de autenticación basado en credenciales de cliente OAuth 2.0 que reemplaza la Connected App heredada (una integración OAuth más antigua que requería almacenar credenciales de users).
Verá sus conexiones existentes listadas como Not Connected en esta pestaña. El estado de la conexión es respecto a la External Client App.
Siga los pasos a continuación para instalar un paquete gestionado en Salesforce. El paquete gestionado instala la External Client App, además de todos los permisos y campos que Fin necesita para funcionar.
Haga clic en el botón Connect en cualquier conexión existente que desee conectar (de prueba o en vivo), luego haga clic en Install Package.
Seleccione Install for all users. Esto significa que el conjunto de permisos puede asignarse a cualquier user en su organización Salesforce si así lo desea.
Espere a que la instalación termine. No deberían mostrarse errores.
Una vez que la instalación esté completa, regrese a la página Connect y haga clic en el botón Connect to Salesforce en el Paso 2, luego permita que se establezca la conexión.
Paso 2: Configure los permisos
Vaya a Connect > Bring Your Own Channel (Tab) > Assign permissions in Salesforce desde su espacio de trabajo Fin y siga los pasos allí para crear un nuevo conjunto de permisos y asignar todos los permisos que Fin necesita para funcionar.
Cree un nuevo conjunto de permisos
En Salesforce, cree un nuevo conjunto de permisos. La etiqueta y el nombre API pueden ser cualquiera; este conjunto de permisos solo se asignará al user de integración.
Al seleccionar una licencia, asegúrese de elegir una que incluya el permiso Set Audit Fields upon Record Creation, por ejemplo, la licencia Salesforce. Algunas licencias no incluyen este permiso.
Guarde el nuevo conjunto de permisos.
Nota: No todos los tipos de licencia de Salesforce incluyen el permiso Set Audit Fields upon Record Creation. Si esta opción no está disponible para una licencia que está considerando, seleccione un tipo de licencia diferente (como la licencia estándar de Salesforce) que sí lo incluya.
Asigne conjuntos de permisos al user de integración
Tanto el conjunto de permisos existente Fin for Salesforce permissions como el conjunto de permisos recién creado deben asignarse al user de integración.
En Salesforce, navegue al perfil del user de integración.
Vaya a Permission Set Assignments y haga clic en Edit Assignments.
Agregue tanto el conjunto de permisos Fin for Salesforce permissions como el conjunto de permisos recién creado a la columna Enabled Permission Sets, luego haga clic en Save.
Paso 3: Cambie a usar las credenciales de la External Client App
Puede cambiar a usar las credenciales de la External Client App para una conexión Salesforce activando el interruptor Use External Client App credentials al administrar una conexión bajo Connect > Bring Your Own Channel (Tab).
Una vez activado, Fin usa las credenciales de la External Client App para todas sus solicitudes a Salesforce, incluyendo:
Consultas para obtener el estado de la conexión.
Crear un caso de Salesforce mediante el paso del workflow.
Crear un caso de Salesforce al resolverse Fin o por inactividad del user.
Responder a casos creados vía el canal de casos de Salesforce.
Importar artículos de Knowledge.
Importar casos históricos de Salesforce.
Una vez activado, puede desactivarlo si cree que algo anda mal. Esto le permite probar en cada entorno — sandbox, UAT (pruebas de aceptación de usuario) y producción — y ganar confianza con las nuevas credenciales ECA, sin interrumpir las credenciales heredadas de Connected App.
Una vez que todas las conexiones tengan Use External Client App credentials activado, la migración está completa. El estado de la conexión para cada entrada se actualiza a Connected en la pestaña Bring Your Own Channel. Siga los pasos a continuación para migrar sus datos y limpiar el paquete obsoleto una vez que esté seguro de que todos los sistemas funcionan como se espera.
Paso 4: Ejecute el script de migración Apex
Cuando instalas el paquete base gestionado Fin for Salesforce, se instalan nuevos campos Fin Case que tienen el espacio de nombres finai. El espacio de nombres significa que cada nombre de campo tiene el prefijo finai__ (por ejemplo, finai__FinConversationId__c) para evitar conflictos de nombres con otros paquetes o campos personalizados en tu organización.
Como parte de la migración, usa el script de migración Apex para mover tus datos de casos existentes de los campos sin espacio de nombres antiguos a los nuevos campos con espacio de nombres. El paquete Fin for Salesforce incluye una clase Apex preconstruida llamada FinCaseFieldMigrator.cls que maneja la lógica de migración.
Apex dentro de un paquete gestionado resuelve nombres de campos personalizados no calificados contra su propio espacio de nombres. Una consulta para FinConversationId__c ejecutada dentro del paquete finai devuelve finai__FinConversationId__c en su lugar, por lo que el código empaquetado no puede leer los campos heredados en absoluto, y nombrar ambos en una consulta falla directamente con un error de campo duplicado seleccionado. Por lo tanto, la extracción de migración debe ejecutarse desde fuera del paquete; por eso la clase a continuación debe crearse manualmente en tu organización. La clase en sí no contiene lógica de migración; llama a la clase de migración instalada por el paquete gestionado y la ejecuta en lotes de 200 registros a la 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());
}
}
Configura la clase Apex FinCaseFieldMigration
Ve a Configuración de Salesforce > Clases Apex.
Haz clic en Nuevo, pega la clase declarada arriba.
Haz clic en Guardar. La clase aparecerá en tu lista de Clases Apex como FinCaseFieldMigration. Si se muestran errores, verifica que la clase se haya pegado completa y que tu organización tenga Apex habilitado.
Ejecuta la clase Apex FinCaseFieldMigration
Ve a Configuración de Salesforce > Consola de Desarrollador
Haz clic en Depurar > Abrir ventana Ejecutar Anónimo
Pega el código a continuación
Id jobId = FinCaseFieldMigration.run();
System.debug('Fin Case field migration job: ' + jobId);Haz clic en Ejecutar
Una vez completado, el Usuario de Salesforce que inició el trabajo vía la consola de Desarrollador debería recibir un correo titulado Fin for Salesforce — Migración de campos de caso finalizada y debería contener detalles sobre el número de casos de Salesforce afectados por la migración.
Paso 5: Desinstala el paquete obsoleto y desconecta la Aplicación Conectada
Una vez instalado el nuevo paquete gestionado, todas las conexiones se cambian a las credenciales ECA, y los datos de campos Fin Case se han migrado a los nuevos campos con espacio de nombres, desinstala el paquete desbloqueado o no gestionado anterior y revoca la conexión de la Aplicación Conectada heredada.
Desasigna el PermissionSet heredado
El PermissionSet heredado (un objeto de Salesforce que otorga a los users acceso a funciones y campos específicos) debe desasignarse antes de que se pueda desinstalar el paquete.
Ve a Configuración de Salesforce > Paquetes instalados
Haz clic en el paquete desbloqueado Fin for Salesforce
Haz clic en Ver componentes
Haz clic en el PermissionSet Fin_for_Salesforce_permissions, esto te llevará a la página del PermissionSet.
Haz clic en Administrar asignaciones
Selecciona todos los users de Salesforce asignados
Haz clic en el botón Quitar asignación
Desinstala el paquete y guarda los datos
Ve a Configuración de Salesforce > Paquetes instalados
Haz clic en Desinstalar junto al paquete desbloqueado Fin for Salesforce
Selecciona Guardar una copia de los datos de este paquete durante 48 horas después de la desinstalación, esto guardará todos los datos de campos de caso como un csv con una columna para el ID del caso de Salesforce.
Importante: Salesforce conserva la exportación de datos guardada solo por 48 horas después de la desinstalación. Descarga el CSV antes de que cierre esa ventana. Si ya ejecutaste con éxito el script de migración Apex, no necesitarás restaurar desde este archivo, pero es una red de seguridad útil.
Espera a ser notificado de que la desinstalación del paquete se ha completado con éxito.
Revisa de nuevo Configuración de Salesforce > Paquetes instalados, deberías ver el paquete desinstalado listado bajo Paquetes desinstalados.
Haz clic en Datos, esto descargará todos los datos de casos como un csv almacenado dentro de un archivo zip. Guarda este archivo zip de forma segura ya que podrías usarlo para restaurar datos si es necesario. Pero si ejecutaste el script de migración Apex, deberías estar listo.
Revoca la conexión de la Aplicación Conectada
Ve a Configuración de Salesforce > Uso OAuth de Aplicaciones Conectadas
Haz clic en el enlace numérico listado debajo de la columna Conteo de users para la Aplicación Conectada Fin for Salesforce. Te redirigirá a Uso de usuarios de la Aplicación Conectada.
Haz clic en Revocar junto a cada user listado. Esto elimina los tokens de acceso OAuth almacenados como parte de la conexión heredada de la Aplicación Conectada. Una vez revocados, esos users ya no aparecen en la lista.
Paso 6: Actualiza tu despliegue de Fin Messenger
Sigue estos pasos solo si planeas usar Fin for Salesforce con Messaging.
Esta sección explica cómo conectar Fin como un socio Bring Your Own Channel (BYOC) en Salesforce, y cómo migrar los workflows existentes de Enhanced Chat handoff para usar BYOC en su lugar.
Conecta Fin a Bring Your Own Channel
Para establecer la conexión BYOC entre Fin y Salesforce, sigue el Paso 1 del artículo Fin Messenger: Configuración con Salesforce. Ese paso te guía para crear un Canal de Mensajería, configurar el Event Relay y activar el canal en Salesforce.
Una vez completado, deberías tener un Canal de Mensajería activo con un Event Relay en funcionamiento — una función de Salesforce que transmite eventos de plataforma en tiempo real, usada aquí para pasar mensajes entre Fin y Salesforce — entre Fin y Salesforce.
Transferencia a agente de Salesforce
El paso Transferencia a agente de Salesforce en los workflows de Fin Messenger ahora soporta alternar entre BYOC y Enhanced Chat. Esto te permite controlar qué canal usa la transferencia mientras pruebas, para que puedas cambiar gradualmente sin tiempo de inactividad.
Puedes crear múltiples workflows con diferentes audiencias y objetivos de entorno para controlar qué tráfico pasa por BYOC
O bien, podrías aprovechar el paso Branches en workflows con la variable Environment para dirigirlo a un paso de Transferencia a agente de Salesforce con BYOC activado frente a uno con BYOC desactivado (es decir, Chat Mejorado)
Preguntas frecuentes
¿Cuánto tiempo tarda la migración?
¿Cuánto tiempo tarda la migración?
Los pasos técnicos suelen tomar entre 1 y 2 horas. Sin embargo, si realizas el ciclo completo de pruebas — primero sandbox, luego UAT (pruebas de aceptación de users), y finalmente producción — permite de 1 a 2 días hábiles en total. La variable principal es cuántos entornos de Salesforce validas antes de ponerlo en marcha.
¿Hay algún tiempo de inactividad?
¿Hay algún tiempo de inactividad?
No se espera tiempo de inactividad. El interruptor Use External Client App credentials puede desactivarse en cualquier momento si algo parece incorrecto, y tanto Chat Mejorado como BYOC pueden funcionar simultáneamente durante la transición.
¿Se requieren licencias o complementos adicionales de Salesforce?
¿Se requieren licencias o complementos adicionales de Salesforce?
Para que BYOC funcione necesitas la licencia Digital Engagement SKU con el complemento Partner Messaging. Una forma de verificar si tienes la licencia relevante es,
Ve a Salesforce setup > Company Information
Verifica si tienes Partner Messaging User listado bajo Permission Set Licenses y el total de licencias disponibles.
Contacta a tu Ejecutivo de Cuenta de Salesforce (AE) si te falta la licencia o el complemento para que los habiliten en tu Organización de Salesforce.
¿Existe algún riesgo de sobrescribir datos existentes de Salesforce?
¿Existe algún riesgo de sobrescribir datos existentes de Salesforce?
Existe un riesgo de pérdida de datos (específicamente los campos personalizados Fin de Case) al desinstalar el paquete desbloqueado/no gestionado anterior.
Sin embargo, eso se mitiga Ejecutando el script de migración Apex y/o descargando los datos de Case como parte de la desinstalación.
No hay riesgo asociado con sobrescribir datos existentes de Salesforce con esta migración específicamente.












