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

リードとユーザープロフィールをマージする

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

対応者:Bobby Stapleton

既存のユーザーが例えばシークレットブラウズなどで匿名でMessengerにチャットすると、Intercomではそのために新しいリードプロフィールが作成されます。これにより、同一人物のためにリードとユーザーの両方のプロフィールが存在することになります。

Intercomでのリード管理は通常、ユーザーがサインインせずにMessengerとやり取りを始めたときに始まります。これらのやり取りはメール認証や一貫したユーザーIDのような識別子を欠くことが多く、新しいリードプロフィールが作成される原因となります。この記事ではInboxからの手動マージ、自動マージ、開発者向けのAPIを使ったマージを説明します。

このような場合、リードプロフィールをuserプロフィールとマージして、すべての情報を一箇所で追跡・保存できるようにできます。


リードとユーザープロフィールのマージ

リードは手動、自動、またはREST API経由で既存のuserアカウントにマージできます。リードをuserにマージすると、そのリードに関連付けられた情報はuserプロフィールに転送されます。

マージできる(およびできない)プロフィールの種類は次のとおりです:

  • リードはuserプロフィールにマージできます。

  • 2つのleadsはマージできません。

  • 2人のusersはマージできません。

  • userプロフィールをリードプロフィールに戻してマージすることはできません。

注意:2人のusersをマージできないため、あるユーザーから別のユーザーへ会話履歴を統合する必要がある場合は、以下のAPIの回避策を使用する必要があります。

回避策:API経由でユーザー間の会話を移行する

2つのuserプロフィールをマージすることはサポートされていないため、開発者は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が推奨されます。

また、クッキーの消去、矛盾したユーザーIDの提供、あるいは他の識別可能なデータとリンクせずにメールのみでやり取りするなどの状況も、重複プロフィールの原因となることがあります。

2つのプロフィールをマージする方法は次のとおりです:

リードを手動でuserにマージする方法

手動マージをトリガーする方法は2つあります。✌️

まず、リードのメールアドレスを既存のuserのメールアドレスと一致するように変更します。これはリードのプロフィールから行えます:

Intercomのリードプロフィールのスクリーンショット。メールアドレス欄が既存のuserのメールと一致するように変更され、それが手動マージをトリガーしている様子を示しています。

次回ユーザーがあなたのウェブサイトを訪問するか(既にオンラインの場合はページをリフレッシュすると)、更新されたリードとマージされます。


そのメールアドレスを持つユーザーが2人以上いる場合、最も最近アクティブだったユーザーがリードとマージされます。

次に、CSVインポートでリードをインポートする方法です。

注意:マージが発生するには、リードが既存のuserと同じメールアドレスを持っている必要があります。また、すでにIntercomに存在するリードはCSVのインポートでuserにマージされません。CSVからインポートされたリードは、新規のリードである場合にのみuserにマージされます。

リードとuserのデータをインポートするために使用されるIntercomのCSVインポートインターフェースのスクリーンショット。

Inboxから重複の可能性を手動でマージする

潜在的な重複機能は、現在会話中の相手に対して重複するリードやusersがいる場合にInboxで警告します。会話がリードとのもので、検出された重複がuserである場合、Merge Lead into Userをクリックできます。確認する前にマージが何を変更するかのプレビューが表示されます。マージプレビューの読み方を学ぶ

クッキーに基づく自動マージの仕組み

自動マージはあなたの操作を必要としません。ユーザーがログアウト状態であなたのサイトを訪れると、一意に識別するためにIntercom cookieが付与されます。会話を開始するかメッセージに返信すると、それがリードになります。

Intercom cookieがブラウザに存在する際に匿名の訪問者が会話を始めるとIntercomでリードになるしくみを示す図。

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

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

メールのみの自動マージを有効にする方法

Security Settingsで「Merging of unverified Leads into Users」を有効にできます。これにより、リードとuserのマージロジックはメールアドレスのみを基準にリードをuserにマージするようになります。マージを行うためにリードとuserが同じデバイス、クッキー、またはセッションを共有する必要はなくなります。

重複を最小限にするには、関連するページで識別設定を有効にしてください。これは、ログイン済みデータを一貫して渡す必要があるシングルページアプリケーションで特に重要です。

これを有効にする場合は、事前にIdentity Verificationを有効にする必要があります。これは、ユーザーからのリクエストがそのユーザー本人からのものであることを確認します。

注意:自動マージは次回ユーザーがIntercomにログインしたときに行われます。

APIを使用してプロフィールをマージする方法

REST APIを使用してリードをuserに変換することもできます。

注意:リードをuserにマージした後、フロントエンドは検証済みのuser_idと計算されたuser_hash(user_idのHMAC-SHA256、Messenger Secret Keyで署名)でMessengerを再初期化して、Identity Verificationの要件を満たす必要があります。これらの値をOTP検証レスポンスで返し、フロントエンドが正しいユーザーとしてMessengerを起動できるようにしてください。


プロフィールマージに関するよくある質問

マージに含まれるデータは?

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

  2. 会話(リードおよびuserプロフィールに関連するすべての会話が含まれます)

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

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

なぜリードがマージされなかったのか?

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

IntercomのREST API経由で作成されたleadsについて:

  • APIでleadを作成し、その後同じメールアドレスで以前存在しなかったuserがping(アプリにログインして)を送ると、リードとuserのプロフィールは自動的にマージされません。Intercomはリードとuserがセッションcookieから取得される同じanonymous_idを持つ場合にのみ非同期マージを行います。API経由で作成されたleadsにはクッキーがありません。代わりにAPIで手動でマージできます。

  • APIでleadを作成し、同じメールアドレスのuserが既に存在する場合、その既存のuserがping(アプリにログインして)を送ったとき、リードとuserのレコードは自動的にマージされません。

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

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