メインコンテンツにスキップ

Salesforce接続をアップグレードしてExternal Client Appを使用し、BYOCをサポートする

Finと連携したSalesforce接続をアップグレードし、External Client Appを使用してEnhanced ChatからBYOCに移行する手順ガイド。

Bring Your Own Channel(BYOC)は、FinのユーザーがFin MessengerをライブチャットAIエージェントとして利用できる新しい方法です。Enhanced ChatではなくBYOCで接続することで、複数タブでの同時会話など特定のユーザー行動の処理が改善され、Finの最高品質のサービスを引き続き享受できます。移行は簡単で、テスト環境を利用して本番環境にダウンタイムなしで展開できます。以下のガイドに従ってワークスペースに実装してください。

この記事は、既存のFin for Salesforce接続を新しいExternal Client App(ECA)にアップグレードするためのものです。このガイドは既存のFin for Salesforce導入を移行するSalesforce管理者向けで、Salesforce管理者アクセス権と有効なFin for Salesforceサブスクリプションが必要です。完了時には、必要な管理パッケージをインストールし、新しいECAで接続し、権限を設定し、Fin Messengerを使用している場合は、Bring Your Own Channel(BYOC)を介してFinとSalesforce間のライブチャット接続を確立します。BYOCはSalesforceの標準チャネル統合フレームワークで、サードパーティのメッセージングプロバイダーを接続します。

手順は6つあります:

  1. External Client Appを使ってSalesforceに接続する

  2. 権限を設定する

  3. External Client Appの認証情報を使うよう切り替える

  4. Apex移行スクリプトを実行する

  5. 廃止されたパッケージをアンインストールし、Connected Appの接続を解除する

  6. Fin Messengerの展開を更新する [任意]

注意: SalesforceのケースのみをFinで処理する場合(メッセージングなし)は、以下のFin Messengerの更新セクションはスキップできます。


ステップ1:External Client Appを使ってSalesforceに接続する

FinワークスペースのConnectに移動し、Bring Your Own Channelタブをクリックします。

これは新しいExternal Client App(ECA)への移行タブです。ECAはOAuth 2.0のクライアント認証情報ベースの認証方法で、ユーザー認証情報の保存を必要とした旧来のConnected App(OAuthベースの統合)に代わるものです。

このタブには既存の接続がNot Connectedとして表示されます。接続状態はExternal Client Appに関するものです。

Fin ConnectページのBring Your Own Channelタブで、既存のSalesforce接続がExternal Client App列で「Not Connected」と表示されている様子。

以下の手順に従い、Salesforceに管理パッケージをインストールします。管理パッケージはExternal Client Appと、Finが動作するために必要なすべての権限とフィールドをインストールします。

  1. 接続したい既存の接続(テストまたは本番)でConnectボタンをクリックし、次にInstall Packageをクリックします。

  2. Install for all usersを選択します。これにより、Salesforce組織内の任意のユーザーに権限セットを割り当てることができます。

  3. インストールが完了するまで待ちます。エラーは表示されないはずです。

  4. インストール完了後、Connectページに戻り、ステップ2のConnect to Salesforceボタンをクリックして接続を許可します。

FinのInstall Packageダイアログで「Install for all users」が選択され、接続設定のステップ2に「Connect to Salesforce」ボタンが表示されている様子。


ステップ2:権限を設定する

FinワークスペースのConnect > Bring Your Own Channel(タブ)> Salesforceで権限を割り当てるに移動し、そこで新しい権限セットを作成し、Finが動作するために必要なすべての権限を割り当てる手順に従います。

新しい権限セットを作成する

  1. Salesforceで新しい権限セットを作成します。ラベルとAPI名は任意で、この権限セットは統合ユーザーにのみ割り当てられます。

  2. ライセンスを選択する際は、Set Audit Fields upon Record Creation権限を含むもの(例:Salesforceライセンス)を選んでください。一部のライセンスにはこの権限が含まれていません。

  3. 新しい権限セットを保存します。

Salesforceの新しい権限セット画面で、ライセンスドロップダウンが「Salesforce」に設定されており、必要な「Set Audit Fields upon Record Creation」権限を含むライセンスタイプが表示されている様子。

注意: すべてのSalesforceライセンスタイプにSet Audit Fields upon Record Creation権限が含まれているわけではありません。このオプションが利用できない場合は、標準のSalesforceライセンスなど、権限を含む別のライセンスを選択してください。

統合ユーザーに権限セットを割り当てる

既存のFin for Salesforce permissions権限セットと新しく作成した権限セットの両方を統合ユーザーに割り当てる必要があります。

  1. Salesforceで統合ユーザーのプロファイルに移動します。

  2. Permission Set Assignmentsに移動し、Edit Assignmentsをクリックします。

  3. Fin for Salesforce permissions権限セットと新しい権限セットの両方をEnabled Permission Sets列に追加し、Saveをクリックします。

統合ユーザーのSalesforce Permission Set Assignments画面で、「Fin for Salesforce permissions」と新しい権限セットの両方がEnabled Permission Sets列に移動されている様子。


ステップ3:External Client Appの認証情報を使うよう切り替える

Salesforce接続の管理で、Connect > Bring Your Own Channel(タブ)のUse External Client App credentialsを切り替えることで、External Client Appの認証情報を使うように切り替えられます。

切り替えると、FinはSalesforceへのすべてのリクエストにExternal Client Appの認証情報を使用します。例えば:

  • 接続状態を取得するクエリ。

  • ワークフローステップを介したSalesforceケースの作成。

  • Finの解決時やユーザーの非アクティブ時にSalesforceケースを作成。

  • Salesforceケースチャネル経由で作成されたケースへの応答。

  • ナレッジ記事のインポート。

  • 過去のSalesforceケースのインポート。

Fin Connectページで、Salesforce接続の「Use External Client App credentials」トグルが有効になっており、切り替え成功の確認バナーが表示されている様子。

切り替え後、問題があると思われる場合は元に戻すこともできます。これにより、サンドボックス、UAT(ユーザー受け入れテスト)、本番の各環境でテストし、新しいECA認証情報に自信を持てるようになり、旧来のConnected App認証情報を妨げません。

すべての接続でUse External Client App credentialsがオンになると、移行は完了です。Bring Your Own Channelタブで各エントリの接続状態がConnectedに更新されます。すべてが正常に動作していることを確認したら、以下の手順に従ってデータを移行し、廃止されたパッケージをクリーンアップしてください。


ステップ4:Apex移行スクリプトを実行する

Fin for Salesforceベース管理パッケージをインストールすると、finaiで名前空間が付けられた新しいFin Caseフィールドがインストールされます。名前空間とは、各フィールド名の前にfinai__が付くことを意味し(例:finai__FinConversationId__c)、他のパッケージや組織内のカスタムフィールドとの名前の競合を防ぎます。

移行の一環として、Apex移行スクリプトを使用して既存のケースデータを古い名前空間なしフィールドから新しい名前空間付きフィールドに移動します。Fin for Salesforceパッケージには、移行ロジックを処理するFinCaseFieldMigrator.clsという事前構築済みのApexクラスが含まれています。

管理パッケージ内のApexは、修飾されていないカスタムフィールド名を自身の名前空間で解決します。finaiパッケージ内で実行されるFinConversationId__cのクエリは代わりにfinai__FinConversationId__cを返すため、パッケージ化されたコードはレガシーフィールドを全く読み取れず、両方を1つのクエリで指定するとduplicate field selectedエラーで失敗します。したがって、移行フェッチはパッケージ外から実行する必要があり、そのため以下のクラスは組織内で手動作成しなければなりません。このクラス自体には移行ロジックはなく、管理パッケージによってインストールされた移行クラスを呼び出し、一度に200レコードずつバッチ処理します。

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());
}
}

FinCaseFieldMigration Apexクラスを設定する

  1. Salesforce setup > Apex Classesに移動します。

  2. Newをクリックし、上記のクラスを貼り付けます。

  3. Saveをクリックします。クラスはApex ClassesリストにFinCaseFieldMigrationとして表示されます。エラーが表示された場合は、クラスが完全に貼り付けられているか、組織でApexが有効になっているか確認してください。

FinCaseFieldMigration Apexクラスを実行する

  1. Salesforce setup > Developer Consoleに移動します。

  2. Debug > Open Execute Anonymous Windowをクリックします。

  3. 以下のコードを貼り付けます。

    Id jobId = FinCaseFieldMigration.run();
    System.debug('Fin Case field migration job: ' + jobId);
  4. Executeをクリックします。

  5. 完了すると、Developer console経由でジョブをトリガーしたSalesforce UserにFin for Salesforce — Case field migrationの件名のメールが届き、移行で影響を受けたSalesforceケースの数に関する詳細が記載されています。


ステップ5:廃止されたパッケージをアンインストールし、Connected Appの接続を解除する

新しい管理パッケージがインストールされ、すべての接続がECA資格情報に切り替えられ、Fin Caseフィールドデータが新しい名前空間付きフィールドに移行されたら、以前のアンロックまたは非管理パッケージをアンインストールし、レガシーConnected App接続を取り消します。

レガシーPermissionSetの割り当て解除

レガシーPermissionSet(特定の機能やフィールドへのアクセスをusersに付与するSalesforceオブジェクト)は、パッケージをアンインストールする前に割り当て解除する必要があります。

  1. Salesforce setup > Installed Packagesに移動します。

  2. Fin for Salesforceアンロックパッケージをクリックします。

  3. View Componentsをクリックします。

  4. Fin_for_Salesforce_permissions PermissionSetをクリックすると、PermissionSetページに移動します。

  5. Manage Assignmentsをクリックします。

  6. 割り当てられているすべてのSalesforce Usersを選択します。

  7. Remove Assignmentボタンをクリックします。

パッケージをアンインストールし、データを保存する

  1. Salesforce setup > Installed Packagesに移動します。

  2. Fin for Salesforceアンロックパッケージの横にあるUninstallをクリックします。

    Fin for Salesforceアンロックパッケージがリストされ、その右に「Uninstall」ボタンが表示されているSalesforce Installed Packagesページ。
  3. Uninstall後48時間、パッケージのデータのコピーを保存するを選択すると、Salesforce Case IDの列を含むcsv形式でケースフィールドデータがすべて保存されます。

    重要:Salesforceはアンインストール後48時間のみ保存されたデータエクスポートを保持します。その期間内にCSVをダウンロードしてください。すでにApex移行スクリプトを正常に実行していれば、このファイルからの復元は不要ですが、安全策として役立ちます。

  4. パッケージのアンインストールが正常に完了した通知を待ちます。

  5. Salesforce setup > Installed Packagesに再度アクセスすると、アンインストールされたパッケージがUninstalled Packagesの下に表示されます。

  6. Dataをクリックすると、すべてのケースデータがcsv形式でzipファイル内にダウンロードされます。このzipファイルは安全に保管してください。必要に応じてデータ復元に使用できますが、Apex移行スクリプトを実行していれば問題ありません。

    Fin for Salesforceパッケージが表示され、48時間以内にケースフィールドデータの保存されたCSVエクスポートをダウンロードするための「Data」リンクがあるSalesforce Uninstalled Packagesリスト。

Connected App接続を取り消す

  1. Salesforce setup > Connected Apps OAuth Usageに移動します。

  2. Fin for Salesforce Connected AppのUser Count列にある数字リンクをクリックします。Connected App User's Usageにリダイレクトされます。

    Fin for Salesforce Connected Appが表示され、User Count列に数値リンクがあり、それをクリックするとConnected App User's Usage画面が開くSalesforce Connected Apps OAuth Usageページ。
  3. リストにある各ユーザーの横にあるRevokeをクリックします。これにより、レガシーConnected App接続のOAuthアクセストークンが削除されます。取り消されると、そのユーザーはリストに表示されなくなります。

    個々のユーザーエントリの横に「Revoke」アクションリンクがあり、レガシーOAuthアクセストークンを削除するために使用されるSalesforce Connected App User's Usage画面。


ステップ6:Fin Messengerの展開を更新する

Fin for SalesforceをMessagingで使用する場合のみ、以下の手順に従ってください。

このセクションでは、SalesforceでBring Your Own Channel(BYOC)パートナーとしてFinを接続する方法と、既存のEnhanced ChatハンドオフworkflowsをBYOCに移行する方法を説明します。

FinをBring Your Own Channelに接続する

FinとSalesforce間のBYOC接続を確立するには、Fin Messenger: Setting up with Salesforce記事のステップ1に従ってください。このステップでは、Messaging Channelの作成、Event Relayの設定、Salesforceでのチャネルの有効化を案内します。

完了すると、FinとSalesforce間で稼働中のEvent Relayを備えたアクティブなMessaging Channelができあがります。Event RelayはSalesforceの機能で、ここではFinとSalesforce間のメッセージをリアルタイムでストリーミングします。

Salesforceエージェントへのハンドオフ

Fin Messenger workflowsのHand-off to Salesforce agentステップは、BYOCとEnhanced Chatの切り替えをサポートしています。これにより、テスト中にどのチャネルを使用するか制御でき、ダウンタイムなしで段階的に切り替え可能です。

BYOCとEnhanced Chatハンドオフモードの切り替えトグルがあるFin Messenger workflowエディターの「Hand-off to Salesforce agent」ステップ。

異なるオーディエンスと環境ターゲティングで複数のworkflowsを作成し、どのトラフィックがBYOCを通るか制御できます。
​


または、workflowsのBranchesステップとEnvironment変数を活用して、BYOCがオンのSalesforceエージェントへのハンドオフステップとBYOCがオフのステップ(つまりEnhanced Chat)を切り替えることができます。
​


よくある質問

移行にはどのくらい時間がかかりますか?

技術的な手順自体は通常1〜2時間かかります。ただし、サンドボックス、次にUAT(ユーザー受け入れテスト)、その後本番環境の完全なテストサイクルを実施する場合は、全体で1〜2営業日を見込んでください。主な変数は、本番稼働前に検証するSalesforce環境の数です。

ダウンタイムはありますか?

ダウンタイムは想定されていません。Use External Client App credentialsのトグルは、問題がある場合いつでもオフに戻せます。また、移行期間中はEnhanced ChatとBYOCの両方を同時に実行できます。

追加のSalesforceライセンスやアドオンは必要ですか?

BYOCを機能させるには、Digital Engagement SKU with the Partner Messaging add-onライセンスが必要です。関連ライセンスがあるか確認する方法の一つは、

  1. Salesforce setup > Company Informationに移動してください

  2. Permission Set Licensesの下にPartner Messaging Userがリストされているか、利用可能なライセンスの合計数を確認してください。

ライセンスまたはアドオンが不足している場合は、Salesforceアカウントエグゼクティブ(AE)に連絡して、Salesforce組織で有効にしてもらってください。

既存のSalesforceデータが上書きされるリスクはありますか?

こちらの回答で解決しましたか?