Bring Your Own Channel (BYOC) est une nouvelle méthode pour les clients Fin permettant d'activer Fin Messenger comme leur agent IA de chat en direct. Se connecter via BYOC plutôt que Enhanced Chat améliore la gestion de certains comportements des users, comme les conversations simultanées sur plusieurs onglets, pour que vous puissiez continuer à profiter du service de premier ordre de Fin. La migration est simple, utilisant des environnements de test avant le déploiement en production sans interruption. Suivez le guide ci-dessous pour l'implémenter sur votre espace de travail.
Utilisez cet article pour mettre à niveau votre connexion Fin for Salesforce existante afin d'utiliser la nouvelle External Client App (ECA). Ce guide s'adresse aux administrateurs Salesforce migrant un déploiement Fin for Salesforce existant — vous aurez besoin d'un accès administrateur Salesforce et d'un abonnement actif Fin for Salesforce. À la fin, vous aurez installé les packages gérés requis, connecté via la nouvelle ECA, configuré les permissions et — si vous utilisez Fin Messenger — établi une connexion de chat en direct entre Fin et Salesforce via Bring Your Own Channel (BYOC), le cadre d'intégration de canal standard de Salesforce pour connecter des fournisseurs de messagerie tiers.
Il y a 6 étapes à suivre :
Connectez-vous à Salesforce via l'External Client App
Configurez les permissions
Passez à l'utilisation des identifiants External Client App
Exécutez le script de migration Apex
Désinstallez le package obsolète et déconnectez l'Connected App
Mettez à jour votre déploiement Fin Messenger
[optionnel]
Note : Si vous configurez Fin uniquement pour gérer les cas Salesforce (sans messagerie), vous pouvez ignorer la section Mises à jour de Fin Messenger ci-dessous.
Étape 1 : Connectez-vous à Salesforce via l'External Client App
Allez dans Connect dans votre espace de travail Fin, puis cliquez sur l'onglet Bring Your Own Channel.
Cet onglet sert de page de migration vers la nouvelle External Client App (ECA) — une méthode d'authentification basée sur OAuth 2.0 avec des identifiants client qui remplace l'ancienne Connected App (une intégration OAuth plus ancienne nécessitant de stocker les identifiants users).
Vous verrez vos connexions existantes listées comme Not Connected dans cet onglet. Le statut de connexion concerne l'External Client App.
Suivez les étapes ci-dessous pour installer un package géré dans Salesforce. Le package géré installe l'External Client App, ainsi que toutes les permissions et champs nécessaires à Fin pour fonctionner.
Cliquez sur le bouton Connect sur n'importe quelle connexion existante que vous souhaitez connecter (test ou production), puis cliquez sur Install Package.
Sélectionnez Install for all users. Cela signifie que le jeu de permissions peut être attribué à n'importe quel user dans votre organisation Salesforce si vous le souhaitez.
Attendez la fin de l'installation. Aucune erreur ne doit apparaître.
Une fois l'installation terminée, retournez à la page Connect et cliquez sur le bouton Connect to Salesforce à l'étape 2, puis autorisez l'établissement de la connexion.
Étape 2 : Configurez les permissions
Allez dans Connect > Bring Your Own Channel (Tab) > Assign permissions in Salesforce depuis votre espace de travail Fin et suivez les étapes pour créer un nouveau jeu de permissions et attribuer toutes les permissions nécessaires à Fin pour fonctionner.
Créez un nouveau jeu de permissions
Dans Salesforce, créez un nouveau jeu de permissions. Le libellé et le nom API peuvent être quelconques — ce jeu de permissions sera uniquement attribué à l'utilisateur d'intégration.
Lors de la sélection d'une licence, assurez-vous d'en choisir une qui inclut la permission Set Audit Fields upon Record Creation, par exemple la licence Salesforce. Certaines licences ne comprennent pas cette permission.
Enregistrez le nouveau jeu de permissions.
Note : Toutes les licences Salesforce n'incluent pas la permission Set Audit Fields upon Record Creation. Si cette option n'est pas disponible pour une licence que vous envisagez, choisissez un autre type de licence (comme la licence standard Salesforce) qui l'inclut.
Attribuez les jeux de permissions à l'utilisateur d'intégration
Le jeu de permissions existant Fin for Salesforce permissions et le nouveau jeu de permissions doivent tous deux être attribués à l'utilisateur d'intégration.
Dans Salesforce, accédez au profil de l'utilisateur d'intégration.
Allez dans Permission Set Assignments et cliquez sur Edit Assignments.
Ajoutez à la colonne Enabled Permission Sets à la fois le jeu de permissions Fin for Salesforce permissions et le nouveau jeu de permissions, puis cliquez sur Save.
Étape 3 : Passez à l'utilisation des identifiants External Client App
Vous pouvez passer à l'utilisation des identifiants External Client App pour une connexion Salesforce en activant l'option Use External Client App credentials lors de la gestion d'une connexion sous Connect > Bring Your Own Channel (Tab).
Une fois activé, Fin utilise les identifiants External Client App pour toutes ses requêtes vers Salesforce, y compris :
Les requêtes pour obtenir le statut de la connexion.
La création d'un cas Salesforce via l'étape du workflow.
La création d'un cas Salesforce lors de la résolution par Fin ou de l'inactivité de l'user.
La réponse au cas créé via le canal des cas Salesforce.
L'importation des articles Knowledge.
L'importation des cas Salesforce historiques.
Une fois activé, vous pouvez le désactiver si vous pensez qu'il y a un problème. Cela vous permet de tester dans chaque environnement — sandbox, UAT (tests d'acceptation utilisateur) et production — et de gagner en confiance avec les nouveaux identifiants ECA, sans perturber les anciens identifiants Connected App.
Une fois que toutes les connexions ont l'option Use External Client App credentials activée, la migration est terminée. Le statut de connexion pour chaque entrée passe à Connected dans l'onglet Bring Your Own Channel. Suivez les étapes ci-dessous pour migrer vos données et nettoyer le package obsolète une fois que vous êtes sûr que tous les systèmes fonctionnent comme prévu.
Étape 4 : Exécutez le script de migration Apex
Lorsque vous installez le package géré de base Fin for Salesforce, il installe de nouveaux champs Fin Case qui sont préfixés par l'espace de noms finai. L'utilisation d'un espace de noms signifie que chaque nom de champ est préfixé par finai__ (par exemple, finai__FinConversationId__c) pour éviter les conflits de noms avec d'autres packages ou champs personnalisés dans votre organisation.
Dans le cadre de la migration, utilisez le script de migration Apex pour déplacer vos données de cas existantes des anciens champs sans espace de noms vers les nouveaux champs avec espace de noms. Le package Fin for Salesforce inclut une classe Apex préconstruite appelée FinCaseFieldMigrator.cls qui gère la logique de migration.
Apex à l'intérieur d'un package géré résout les noms de champs personnalisés non qualifiés selon son propre espace de noms. Une requête pour FinConversationId__c exécutée dans le package finai retourne finai__FinConversationId__c à la place, donc le code empaqueté ne peut pas lire les champs hérités du tout, et nommer les deux dans une même requête échoue immédiatement avec une erreur duplicate field selected. La récupération de la migration doit donc être exécutée en dehors du package — c'est pourquoi la classe ci-dessous doit être créée manuellement dans votre organisation. La classe elle-même ne contient aucune logique de migration ; elle appelle la classe de migration installée par le package géré et l'exécute par lots de 200 enregistrements à la fois.
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());
}
}
Configurer la classe Apex FinCaseFieldMigration
Allez dans Configuration Salesforce > Classes Apex.
Cliquez sur Nouveau, collez la classe déclarée ci-dessus.
Cliquez sur Enregistrer. La classe apparaît dans votre liste de classes Apex sous le nom FinCaseFieldMigration. Si des erreurs apparaissent, vérifiez que la classe a été collée en entier et que votre organisation a Apex activé.
Exécutez la classe Apex FinCaseFieldMigration
Allez dans Configuration Salesforce > Console du développeur
Cliquez sur Déboguer > Ouvrir la fenêtre Exécuter Anonyme
Collez le code ci-dessous
Id jobId = FinCaseFieldMigration.run();
System.debug('Fin Case field migration job: ' + jobId);Cliquez sur Exécuter
Une fois terminé, l'utilisateur Salesforce qui a déclenché la tâche via la console du développeur devrait recevoir un email intitulé Fin for Salesforce — Migration des champs de cas terminée avec des détails sur le nombre de cas Salesforce affectés par la migration.
Étape 5 : Désinstaller le package obsolète et déconnecter l'application connectée
Une fois le nouveau package géré installé, toutes les connexions sont basculées vers les identifiants ECA, et les données des champs Fin Case ont été migrées vers les nouveaux champs avec espace de noms, désinstallez le package déverrouillé ou non géré précédent et révoquez la connexion de l'application connectée héritée.
Désaffecter le PermissionSet hérité
Le PermissionSet hérité (un objet Salesforce qui accorde aux users l'accès à des fonctionnalités et champs spécifiques) doit être désaffecté avant que le package puisse être désinstallé.
Allez dans Configuration Salesforce > Packages installés
Cliquez sur le package déverrouillé Fin for Salesforce
Cliquez sur Voir les composants
Cliquez sur le PermissionSet Fin_for_Salesforce_permissions, cela devrait vous amener à la page du PermissionSet.
Cliquez sur Gérer les affectations
Sélectionnez tous les users Salesforce affectés
Cliquez sur le bouton Supprimer l'affectation
Désinstaller le package et sauvegarder les données
Allez dans Configuration Salesforce > Packages installés
Cliquez sur Désinstaller à côté du package déverrouillé Fin for Salesforce
Sélectionnez Enregistrer une copie des données de ce package pendant 48 heures après la désinstallation ; cela sauvegardera toutes les données des champs de cas sous forme de csv avec une colonne pour l'ID du cas Salesforce.
Important : Salesforce conserve l'export des données sauvegardées pendant 48 heures seulement après la désinstallation. Téléchargez le CSV avant la fin de ce délai. Si vous avez déjà exécuté avec succès le script de migration Apex, vous n'aurez pas besoin de restaurer à partir de ce fichier — mais c'est une sécurité utile.
Attendez d'être notifié que la désinstallation du package a été effectuée avec succès.
Revenez à Configuration Salesforce > Packages installés, vous devriez voir le package désinstallé listé sous Packages désinstallés.
Cliquez sur Données, cela téléchargera toutes les données des cas sous forme de csv stocké dans un fichier zip. Conservez ce fichier zip en lieu sûr car vous pourriez l'utiliser pour restaurer des données si nécessaire. Mais si vous avez exécuté le script de migration Apex, vous devriez être prêt.
Révoquer la connexion de l'application connectée
Allez dans Configuration Salesforce > Utilisation OAuth des applications connectées
Cliquez sur le lien numérique listé sous la colonne Nombre d'utilisateurs pour l'application connectée Fin for Salesforce. Cela vous redirigera vers Utilisation des utilisateurs de l'application connectée.
Cliquez sur Révoquer à côté de chaque user listé. Cela supprime les jetons d'accès OAuth stockés dans le cadre de la connexion héritée de l'application connectée. Une fois révoqués, ces users n'apparaissent plus dans la liste.
Étape 6 : Mettez à jour votre déploiement Fin Messenger
Suivez ces étapes uniquement si vous avez l'intention d'utiliser Fin for Salesforce avec Messaging.
Cette section explique comment connecter Fin en tant que partenaire Bring Your Own Channel (BYOC) dans Salesforce, et comment migrer les workflows de transfert Enhanced Chat existants pour utiliser BYOC à la place.
Connecter Fin à Bring Your Own Channel
Pour établir la connexion BYOC entre Fin et Salesforce, suivez l'étape 1 de l'article Fin Messenger : Configuration avec Salesforce. Cette étape vous guide pour créer un canal de messagerie, configurer le relais d'événements et activer le canal dans Salesforce.
Une fois terminé, vous devriez avoir un canal de messagerie actif avec un relais d'événements en fonctionnement — une fonctionnalité Salesforce qui diffuse des événements de plateforme en temps réel, utilisée ici pour transmettre des messages entre Fin et Salesforce — entre Fin et Salesforce.
Transfert à un agent Salesforce
L'étape Transfert à un agent Salesforce dans les workflows Fin Messenger prend désormais en charge l'alternance entre BYOC et Enhanced Chat. Cela vous permet de contrôler quel canal le transfert utilise pendant les tests, afin de pouvoir basculer progressivement sans interruption.
Vous pouvez créer plusieurs workflows avec des ciblages d'audience et d'environnement différents pour contrôler le trafic qui passe par BYOC
Ou vous pouvez exploiter l'étape Branches dans les workflows avec la variable Environment pour la diriger vers une étape de transfert à un agent Salesforce avec BYOC activé ou une autre avec BYOC désactivé (c'est-à-dire Enhanced Chat)
FAQ
Combien de temps dure la migration ?
Combien de temps dure la migration ?
Les étapes techniques elles-mêmes prennent généralement 1 à 2 heures. Cependant, si vous effectuez le cycle complet de tests — sandbox d'abord, puis UAT (user acceptance testing), puis production — prévoyez 1 à 2 jours ouvrables au total. La principale variable est le nombre d'environnements Salesforce que vous validez avant la mise en production.
Y a-t-il une interruption de service ?
Y a-t-il une interruption de service ?
Aucune interruption n'est prévue. Le bouton Use External Client App credentials peut être désactivé à tout moment si quelque chose semble incorrect, et Enhanced Chat ainsi que BYOC peuvent fonctionner simultanément pendant la transition.
Des licences Salesforce supplémentaires ou des modules complémentaires sont-ils nécessaires ?
Des licences Salesforce supplémentaires ou des modules complémentaires sont-ils nécessaires ?
Pour que BYOC fonctionne, vous avez besoin de la licence Digital Engagement SKU with the Partner Messaging add-on. Une façon de vérifier si vous disposez de la licence appropriée est la suivante,
Allez dans Salesforce setup > Company Information
Vérifiez si vous avez Partner Messaging User listé sous Permission Set Licenses ainsi que le nombre total de licences disponibles.
Contactez votre Salesforce Account Executive (AE) si vous n'avez pas la licence ou le module complémentaire pour les activer dans votre organisation Salesforce.
Y a-t-il un risque d'écrasement des données Salesforce existantes ?
Y a-t-il un risque d'écrasement des données Salesforce existantes ?
Il existe un risque de perte de données (notamment les champs personnalisés Fin du Case) lors de la désinstallation de l'ancien package unlocked/unmanaged.
Cependant, ce risque est atténué en exécutant le script de migration Apex et/ou en téléchargeant les données du Case dans le cadre de la désinstallation.
Il n'y a aucun risque lié à l'écrasement des données Salesforce existantes avec cette migration spécifiquement.












