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

リードとユーザープロフィールの統合

リードとユーザープロフィールを手動および自動で統合し、ユーザー情報を単一のプロフィールにまとめる方法。

対応者:Bobby Stapleton

既存のユーザーがMessengerで匿名チャットを行った場合(例えばシークレットブラウザモード経由)、Intercomに新しいリードプロフィールが作成されます。これにより、同一人物に対してリードとユーザープロフィールの両方が存在することになります。 

Intercomでは、leadはMessengerを通じて関与したが認証されていない未確認の連絡先を指します。userは識別されログイン済みの連絡先です。

この記事では、Inboxからリードをユーザーに手動で統合する方法、自動統合の設定方法、REST APIを使った統合のトリガー方法を説明します。また、統合が期待通りに行われない場合のトラブルシューティングも扱います。

このような場合、リードプロフィールをユーザープロフィールと統合し、すべての情報を一元管理できます。


リードとユーザープロフィールの統合方法

リードは手動、自動、またはREST APIを使って既存のユーザーアカウントに統合できます。リードをユーザーに統合すると、リードに関連付けられた情報がユーザープロフィールに移行されます。 

重複プロフィールは、クッキーのクリア、不一致のuser ID、リンクされていないメールのみの通信など、いくつかの一般的なシナリオで発生します。別のシナリオとして、異なるuser_idで識別された場合、メールが一致していても新しいプロフィールが作成されます。

統合できるプロフィールとできないプロフィールの種類があります:

  • リードはユーザープロフィールに統合できます。

  • 2つのリードは統合できません。

  • 2つのユーザーは統合できません。 

  • ユーザープロフィールをリードプロフィールに戻して統合することはできません。

注意: 2人のユーザーは統合できないため、会話履歴を一方のユーザーからもう一方に統合する必要がある場合は、以下のAPIの回避策を使用してください。

APIを使ったユーザー間の会話移行方法

注意: この回避策にはIntercom REST APIの開発者アクセスが必要です。

2つのユーザープロフィールの統合はサポートされていないため、開発者はConversations APIを使って一方のユーザーからもう一方のユーザーへ会話履歴を手動で移行できます。手順は以下の通りです:

  1. List conversations APIを使って、ソースユーザーのすべての会話を取得します。これは連絡先のIntercom Contact IDのみが必要です。

  2. 取得した会話を宛先ユーザーのプロフィールで再作成します。

  3. 重複したソースユーザーレコードをアーカイブまたは削除して整理します。

注意: 会話をContact IDではなくUser IDでフィルタリングしたい場合は、Intercom-Versionヘッダーに2.5以下の値を含める必要があります。APIバージョン2.6でユーザーによる会話一覧のサポートは廃止され、現在のすべてのAPIバージョンで動作するSearch conversations APIに置き換えられました。

2つのプロフィールを統合する方法はこちら:

リードをユーザーに手動で統合する方法

手動統合をトリガーする方法は2つあります:

方法1: リードのメールアドレスを変更する。 リードのプロフィールを開き、Emailフィールドを見つけて既存のユーザーのメールアドレスに更新します。

Intercomのリードプロフィールのスクリーンショット。メールアドレスフィールドが既存のユーザーのメールアドレスに変更され、手動統合がトリガーされる様子を示しています。

リードプロフィールは、ユーザーが次回ウェブサイトを訪問またはページを更新した際に自動的に一致したユーザープロフィールに統合されます。


同じメールアドレスを持つユーザーが2人以上いる場合、最も最近アクティブなユーザーとリードが統合されます。

方法2: CSV(カンマ区切り値)でインポートする。 リードのデータを含むファイルをインポートします。

注意: 統合が行われるには、リードのメールアドレスが既存のユーザーのメールアドレスと同じである必要があります。また、既にIntercomに存在するリードはCSVインポートでユーザーに統合されません。CSVからインポートされたリードは、新規リードの場合のみユーザーに統合されます。

IntercomのCSVインポート画面のスクリーンショット。リードデータを含むCSVファイルのインポートオプションが表示されており、リードのメールが既存のユーザーのメールと一致するとインポートが統合をトリガーします。

インポートが完了すると、統合条件を満たすリードは自動的に一致するユーザープロフィールに統合されます。統合はIntercomのユーザープロフィールで確認でき、リードの会話や属性が表示されます。

Inboxから重複の可能性があるものを手動で統合する方法

注意: このオプションはInboxアクセス権を持つチームメンバーなら誰でも利用可能です。重複ユーザープロフィールが検出されたリードとの会話を表示すると、統合オプションが表示されます。

重複の可能性機能は、現在会話中の相手に対して重複するleadsまたはusersがいる場合にInboxで警告します。会話相手がleadで検出された重複がuserの場合、Merge Lead into Userをクリックできます。統合内容のプレビューを確認してから確定できます。統合プレビューの読み方はこちら。統合後、リードプロフィールは削除され、ユーザープロフィールが残るレコードとなります。Inboxの会話は統合されたユーザープロフィールに表示されます。

自動クッキーによる統合の仕組み

自動統合はユーザーの操作を必要としません。ログアウト状態でウェブサイトを訪問すると、Intercom cookieが付与され、個別に識別されます。会話を開始またはメッセージに返信すると、leadになります。 

匿名訪問者がIntercom cookieがブラウザに存在する状態で会話を開始すると、Intercomでleadになる様子を示す図。

Intercom cookieが存在する状態でログインまたはサインアップすると、リードプロフィールは自動的にユーザープロフィールと統合されます。 

ユーザーがIntercom cookieが存在する状態でログインすると、リードプロフィールが自動的にユーザープロフィールと統合される様子を示す図。

メールのみの自動統合を有効にする方法

注意: この設定を行うにはワークスペース管理者権限が必要です。

セキュリティ設定で「未検証のLeadsをUsersに統合する」を有効にできます。これにより、メールアドレスのみを基にリードとユーザーの統合が行われます。リードとユーザーは同じデバイス、クッキー、セッションを共有している必要はありません。この設定を有効にする前に、Messengerインストールのセキュリティ設定で「JSON Web Tokens (JWTs)でMessengerを保護する」がオンになっていることを確認してください。テストおよび本番環境でuser_hashを生成する際は正しいワークスペースシークレットを使用してください。

重複を最小限に抑えるため、関連ページで識別設定を有効にしてください。特にシングルページアプリケーションではログインデータを一貫して渡すことが重要です。さらに、顧客がアプリでメールを変更した際にIntercomのEmail属性を更新する統合を行い、別のプロフィール作成を防止してください。

これを有効にするには、事前にIdentity Verificationを有効にする必要があります。これにより、ユーザーのリクエストが本人からのものであることが保証されます。

注意: 自動統合はユーザーが次回Intercomにログインした際に行われます。

APIを使ったプロフィール統合方法

注意: このセクションはREST APIアクセス権を持つ開発者向けです。

REST APIを使ってleadをuserに変換することもできます。統合リクエストには以下のJSON構造を使用してください: { "from": "<leadのIntercom ID>", "into": "<userのIntercom ID>" }。統合成功後、leadは削除され、userが存続レコードとなります。

統合成功時には更新されたユーザー連絡先オブジェクトが返されます。Contacts APIを使ってユーザーを取得し、統合を確認できます。

注意: リードをユーザーに統合した後、フロントエンドは認証済みのuser_idと計算されたuser_hash(Messenger Secret Keyで署名されたHMAC-SHA256ハッシュ)でMessengerを再初期化する必要があります。これにより強制されたIdentity Verificationに準拠します。これらの値はワンタイムパスワード(OTP)検証応答で返し、フロントエンドが正しいユーザーとしてMessengerを起動できるようにします。


プロフィール統合に関するよくある質問

統合に含まれるデータは何ですか?

  1. リードプロフィールの属性(既存のユーザープロフィールにその属性の値がない場合のみ)

  2. 会話(リードとユーザープロフィールに関連付けられたすべての会話が含まれます)

  3. イベント(最初/最後の発生日時とイベント数;メタデータは含まれません)

特定のプロフィールペアに何が起こるか、どの値が残り、何件の会話、tickets、ノート、タグ、電話が移動するかを正確に確認するには、統合プレビューを使用してください。

なぜリードが統合されなかったのですか?

ほとんどの場合、リードとユーザープロフィールは即座に統合されます。しかし、これはバックグラウンドプロセス(即時ではない)であるため、わずかな遅延が発生することがあります。例えば、ユーザーがログインし、クッキーとメールに基づいて統合が必要とマークされた1つ以上のリードがある場合、自動統合プロセスはそのユーザーの次回のping(ページ更新)で開始されます。トラブルシューティングには、Intercomに渡されるユーザーデータに正しい識別子(user_idemailなど)が含まれていることを確認してください。また、ユーザーのブラウザが必要なクッキーを保持していることも確認してください。クッキーの期限切れや削除は統合失敗の原因となります。

REST API経由で作成されたleadsはブラウザセッションクッキーを持たないため、クッキーに基づくleadsのように自動統合されません。以下のシナリオはすべて自動統合が行われません:

  • APIでleadを作成し、その後同じメールアドレスを持つユーザーが存在しなかった場合にアプリにログインしてpingを送信しても、leadとuserプロフィールは自動統合されません。Intercomはleadとuserが同じanonymous_id(ブラウザのセッションクッキーに保存される一意識別子)を持つ場合のみ非同期統合を行います。API経由で作成されたleadsはクッキーを持ちません。代わりにAPIで手動統合が可能です。

  • APIでleadを作成し、同じメールアドレスを持つuserが既に存在する場合、その既存のuserがアプリにログインしてpingを送信しても、leadとuserレコードは自動統合されません。

  • APIでleadを作成し、その後APIでuserを作成した場合、そのuserがアプリにログインしてpingを送信しても、leadプロフィールは自動的にuserプロフィールに統合されません。

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