前提条件
- Salesforce組織(Enterprise Edition以上。テストにはDeveloper Edition)
- ワークフローが設定済みのDidit Consoleアカウント
- Setupでマネージドパッケージをインストールし、Sitesを作成する権限
ステップ1:アプリをインストールする
以下のリンクから、リリース済みのDiditVerifyManaged 1.0.0.2パッケージをインストールします。 パッケージのインストールは、マーケットプレイスへの掲載承認とは別の手続きです。- インストールリンクを開きます:https://login.salesforce.com/packaging/installPackage.apexp?p0=04td10000004M0LAAU
- 連携の設定とテストを行う間は、Install for Admins Onlyを選択します。 設定を検証した後で、対象のユーザーにアクセス権を付与してください。

- Installをクリックします
ステップ2:Diditの認証情報を取得する
APIキーを取得する(APIモードの場合)
- Didit Business Consoleにログインします
- 左側のサイドバーでAPI & Webhooksに移動します
- APIキーをコピーします

ワークフローIDを取得する
- Didit Business ConsoleでWorkflowsに移動します
- 使用するワークフローを選択します(または新規に作成します)
- ワークフロー ID(
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxのようなUUID)をコピーします

ステップ3:Didit Settingsを設定する
- App Launcher(左上のグリッドアイコン)をクリックし、“Didit”を検索します

- Diditアプリを開くと、Didit Settingsタブが表示されます
- 認証情報と各種設定を入力します:
- Save Settingsをクリックします
ステップ4:レコードページにコンポーネントを追加する
- ContactまたはLeadのレコードに移動します

- 歯車アイコン→Edit Pageをクリックします(またはSetup→Object Manager→Contact/Lead→Lightning Record Pages)

- Lightning App Builderで、ComponentsパネルからDidit Identity Verificationをドラッグします

- SaveをクリックしてページをActivateし、有効化の際に”Assign as Org Default”を選択します。動画を参照してください:

- 上の例ではContactのレコードページを使用していますが、リードのレコードページでも手順は同じです。
仕組み
APIモード(推奨)
- ユーザーが取引先責任者またはリードのレコードでVerify Identityをクリックします
- ApexがDidit API経由でセッションを作成します(APIキーはサーバー側に保持されます)
- Didit SDKが検証フローを開きます。Display Modeの設定に応じて、モーダルオーバーレイまたはインライン埋め込みビューで表示されます
- 完了すると、レコードが自動的に更新されます。
Verification Status→ セッションの結果(Approved、Declined、In Reviewなど)Identity Verified→ 承認済みの場合はtrue、却下の場合はfalseVerified AtのタイムスタンプとDidit Session IDVerified Document Type、Document Expiry Date、AML Check Status(Webhook経由で入力されます。下記を参照)
- コンポーネントには、検証ステータス、書類の種類、有効期限、AMLの結果がインラインで表示されます。ページレイアウトの設定は不要です
UniLinkモード
- ユーザーがVerify Identityをクリックします
- 固定のUniLink URLがモーダルまたはiframeで開きます(API呼び出しは不要です)
- 完了すると、結果がレコードに保存されます
検証結果の自動更新(Webhook)
検証セッションが完了すると(担当者がページを見ているかどうかにかかわらず)、DiditはSalesforce組織にWebhookを送信し、取引先責任者またはリードのレコードを自動的に更新します。これには、Salesforceサイトの初回設定が1回だけ必要です。なぜ必要なのか
Salesforceは、公開エンドポイントがない限り、外部サービスからのHTTPリクエストを受け付けません。Salesforceサイトを作成するとこのエンドポイントが用意され、Diditが検証結果をリアルタイムで組織に直接送信できるようになります。ステップ1: Setup > Sitesに移動する
Salesforceでgear icon > Setupをクリックします。クイック検索ボックスにSitesと入力し、Sites and Domainsの下に表示される項目をクリックします。

ステップ2: 新しいサイトを作成する
サイト一覧でNewボタンをクリックし、次のとおり入力します。- Site Label:
DiditWebhook - Site Name:
DiditWebhookが自動入力されます - Default Web Address:
didit - Active: チェックを入れる
- Active Site Home Page:
InMaintenance

ステップ3: サイトが作成されたことを確認する
保存すると、サイトの詳細ページが表示されます。Site URLを控えておいてください。https://your-org.develop.my.salesforce-sites.com/diditのような形式で、後で必要になります。

ステップ4: ゲストユーザーにWebhookクラスへのアクセスを許可する
サイトの詳細ページでPublic Access Settingsをクリックすると、ゲストユーザーのプロファイルが開きます。下にスクロールしてEnabled Apex Class AccessのEditをクリックします。AvailableリストからDiditWebhookReceiverを選択し、AddをクリックしてEnabledリストに移動します。Saveをクリックします。
ステップ5: Didit ConsoleでWebhookを設定する
- business.didit.me > API & Webhooksに移動します
- Webhook URLを次のように設定します:
https://your-org.develop.my.salesforce-sites.com/didit/services/apexrest/didit/webhook/
注: 正確なドメイン形式は組織の種類によって異なります。Developer Editionの組織ではURLに.developが含まれます。本番環境の組織ではhttps://your-org.my.salesforce-sites.com/didit/services/apexrest/didit/webhook/を使用します。確実を期すため、必ずサイトの詳細ページ(ステップ3)からURLをコピーしてください。
- Webhook Secret Keyをコピーします
- SalesforceでDidit Settingsに移動し、シークレットをWebhook Secretフィールドに貼り付けます
- Save Settingsをクリックします
Webhookで保存される内容
DiditがWebhookを送信すると、取引先責任者またはリードが自動的に更新されます。 ワークフローの種類にかかわらず常に更新される項目:
該当する機能がワークフローに含まれている場合にのみ更新される項目:
Diditのワークフローで機能が有効になっていない場合、対応するフィールドは空欄のままになるだけで、不具合は発生しません。
また、セッションごとにDidit Verificationの子レコード(
Didit_Verification__c)が作成され、追加の詳細情報(書類番号、発行国、書類上の氏名、生年月日、顔一致スコア、ライブネススコア、AMLのヒット件数)を含む完全な監査証跡が得られます。ここでも、ワークフローに含まれる機能に関する情報のみが記録されます。
取引先責任者またはリードのページレイアウトにDidit Verifications関連リストを追加すると、履歴を確認できます。
フローの自動化(呼び出し可能なアクション)
このプラグインには、Salesforceフローから呼び出して検証を自動的にトリガーできる、呼び出し可能なApexアクションが含まれています。- フロービルダーでAction要素を追加します
- “Create Didit Verification Session”を検索します
- 取引先責任者またはリードのレコードIDを渡します
- アクションは
url、sessionId、success、errorを返します - Send EmailまたはSend NotificationアクションでこのURLを使用し、顧客に送信します
- リードの作成時: すべての新規リードに認証リンクを自動送信します
- 書類の有効期限の監視: 毎日実行されるスケジュール済みフローを作成し、
Document Expiry Date ≤ TODAY + 90 daysに該当するすべての取引先責任者を抽出して、再検証のリンクを送信します。Webhookによって入力されるDocument Expiry Dateフィールドを使うため、追加設定なしでそのまま機能します
トラブルシューティング
ボタンをクリックしても何も起こらない
- Didit SettingsでAPIキーとワークフローIDを保存したことを確認してください
- ワークフローIDがAPIキーと同じアプリケーションに属していることを確認してください
- Didit SettingsでDebug Loggingを有効にし、ブラウザのコンソールでエラーを確認してください
”Received a non-JSON response from the Didit API”というエラーが表示される
https://verification.didit.meのRemote Site Settingが有効になっていることを確認してください。Setup → Remote Site Settingsで確認できます- Didit Business Consoleで、APIキーが有効で期限切れになっていないことを確認してください
Webhookが401を返す “Webhook secret not configured”
- Didit Settingsを開き、Webhookシークレットキー(Didit Console → API & Webhooksからコピーしたもの)をWebhook Secretフィールドに貼り付けてから、Save Settingsをクリックしてください
Webhookが401を返す “Invalid signature” または “Request timestamp is stale”
- Invalid signature: Didit SettingsのWebhook SecretがDidit Consoleのものと完全に一致していることを確認してください。余分なスペースや文字が含まれていてはいけません
- Stale timestamp: Webhookは送信から5分以内に到着する必要があります。Salesforce組織の時計がずれていると誤検知の原因になることがありますが、これはごくまれです
認証ウィンドウが開かない(ブラウザのコンソールにCSPエラーが表示される)
https://verify.didit.meのCSP Trusted Siteはマネージドパッケージに含まれており、自動的にデプロイされます。ソースからデプロイする場合は、cspTrustedSites/Didit_Verify_Frontend.cspTrustedSite-meta.xmlがデプロイに含まれていることを確認してください
サポート (24時間365日)
導入から運用開始まで、私たちのチームがサポートします。メール
hello@didit.meまでメールでお問い合わせください。