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

Fin Messenger:Salesforceポータルにメッセンジャーを埋め込む

SalesforceのウェブページにFin Messengerをインストールする手順を案内します。

Fin MessengerをSalesforce Experience Cloud(ポータル)サイトに追加し、サインインしたユーザーデータの送信を完全に設定で制御できます。Apexの編集は不要です。

注意:変更点(2026年6月):以前はJwtGenerator Apexクラスを編集してユーザー識別子や送信属性を選択するよう案内していましたが、これは本番組織では不可能です(Salesforceは本番環境でのSetup経由のApex編集を許可せず、パッケージクラスはアップグレード時に上書きされます)。現在はFin Messenger設定(カスタム設定)でこれらをすべて設定し、高度なケースではオプションのApexインターフェースを使用します(ステップ6参照)。


SalesforceのウェブページにFin Messengerをインストールする

1. Salesforceにパッケージをインストールする

SalesforceのウェブページにFin Messengerをインストールするために、カスタム設定定義を作成するパッケージを用意しました。

以下の手順を実行する前に、Salesforce環境にパッケージをインストールする必要があります。

または

2. SalesforceでFin Messengerの設定を行う

パッケージはApp ID、JWTシークレット、および(新たに)ユーザーデータ設定を保存するFin Messenger Settings保護設定を追加します。


​A) 設定のセットアップを開く

  1. App Launcherを開きます。

  2. Fin Messenger Setupを選択します。

B) App ID — FinのSettings > Generalで確認し、App Idフィールドに入力します。
​C) JWT Secret Key — FinのSettings > Fin Messengerで確認し、JWT Secret Keyフィールドに入力します。シークレットキーは保存後に読み取れず、フィンガープリントのみ表示されます。


これら2つが唯一の必須値です。その他(ステップ6)は任意です。

3. コンテンツセキュリティポリシー(CSP)を設定する

  1. Setup > Digital Experiences > All Sites > (あなたのサイト)> Builder > Settings > Security & Privacy。

  2. Security LevelをRelaxed CSPに設定します。

  3. Trusted Sites for Scriptsにhttps://widget.intercom.ioとhttps://js.intercomcdn.comを追加します。

  4. Setup → Trusted URLsにIntercomのURL/CSPディレクティブを追加し、CSP ContextをAllまたはExperience Builder Sitesに設定します。

4. ポータルにFin Messengerのブートスクリプトを追加する

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

リージョン

api_base

US

https://api-iam.intercom.io

EU

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

オーストラリア

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

5. ページにFin Messengerコンポーネントを追加する

  1. Setup > Digital Experiences > All Sites > (あなたのサイト)> Builder。

  2. Fin Messengerコンポーネントをポータルページにドラッグします。

  3. サイトを公開します。

6. Finに送信するユーザーデータを設定する

すべてはFin Messenger Setupアプリ(ステップ2)で設定済みです。コード変更は不要です。フィールドを空欄にするとデフォルトのままになります。

フィールド

制御内容

空欄時のデフォルト

ユーザーIDフィールド

Finのuser_idとなるユーザーフィールド。

ContactId

属性フィールド

送信する追加属性(以下の形式)。

なし

会社IDフィールド

company.company_idとして送信されるユーザーフィールド。

省略

プロバイダクラス

高度:カスタム属性を返すApexクラス。

未使用

属性フィールドの形式

カンマ区切りのintercomKey:UserFieldペア:

  • コロンの左側 — Finが受け取るIntercom属性名(キー)。

  • コロンの右側 — 値を読み取るSalesforceユーザーフィールドAPI名。

  • 素のフィールド名は小文字化したフィールド名をIntercomキーとして使用します。

  • カスタムフィールドはAPI名(__c)を使用します。不明なフィールドは無視されます。

例:phone:Phone, job_title:Title, Department, plan:Account_Tier__cは以下を生成します:
​

{ "phone": "(555) 123-4567", "job_title": "Account Executive", "department": "Sales", "plan": "Enterprise" }

注意:name、email、user_idは常に送信されます(ここには記載しないでください)。

高度:Apexによるカスタム属性

単一のユーザーフィールドで表現できない値は、ご自身のApexクラスでfinai.MessengerAttributeProviderを実装し、そのクラス名をプロバイダクラスに指定してください(編集可能、組織内)。
​

global class MyFinAttributes implements finai.MessengerAttributeProvider {
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;
}
}
  • globalである必要があります(パッケージ名前空間を跨いで呼び出されます)。

  • currentUserにはステップ6で設定したフィールドのみ含まれます。その他はクエリしてください。

  • プロバイダのマップは最後にマージされるため、属性フィールドより優先されます。

  • 軽量に保ってください—メッセンジャーブート時に毎回実行されます(エラーは捕捉され、遅いクエリは起動を遅くします)。


よくある質問

FinのApp IDはどこで確認できますか?

Settings > Generalに移動してください。App IDはApp detailsセクションに記載されています。

JWT Secret Keyはどこで確認できますか?

Settings > Fin MessengerでJWT Secret Keyをコピーしてください。

メッセンジャーが読み込まれない場合は?

CSP設定を確認してください。信頼されたスクリプトURLと信頼されたURLが正しく設定され、セキュリティレベルがRelaxed CSPに設定されていることを確認してください。

Finに送信するユーザーデータを制限できますか?

はい、ステップ6です。Fin Messenger設定でユーザーIDフィールド、属性フィールド、会社IDフィールド、プロバイダクラスを設定してください。送信されるのはname、email、user_id、および属性フィールドにリストしたものだけです。フィールドを空にすると送信データが減ります。

Apexの編集は必要ですか?

いいえ、ステップ6の標準設定ではコード変更は不要です。Apexは高度なプロバイダクラスフックを利用する場合のみ必要で、そのクラスはご自身の組織で作成します(パッケージApexではありません)。

Apexのコンパイルエラーはどう解決しますか?

  • Salesforceパッケージは標準オブジェクトとフィールドに依存しているため、コンパイルエラーはSalesforce組織内の孤立したApexクラスが原因の可能性があります。

  • その場合はインストール時にAdvanced Optionsアコーディオンをクリックしてください。

  • パッケージ内のApexのみをコンパイルを選択してからインストールをクリックします。

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