
HubSpotを使い始めて数か月経つと、たいてい同じ問題にぶつかります。同じ人が2件、3件とコンタクトに登録されている。メール配信をすると同じ相手に2通届く。商談がどちらのレコードに紐づいているのか分からなくなる。
解決策は「マージ(統合)」なのですが、ここには2つの落とし穴があります。ひとつは マージは一度実行すると元に戻せない こと。もうひとつは、重複を自動で見つけてくれる「重複を管理」ツールが Professional以上のプランでしか使えない ことです。無料版やStarterで「重複を管理が見当たらない」と探し回っている方は、探しても出てきません。
この記事では、無料版・Starterの方が今日できる手順と、Professional以上の方が使えるツールを分けて説明します。手順はすべてHubSpot公式のナレッジベース(日本語版)で確認した内容です。
そもそも、なぜ重複コンタクトが生まれるのか
先に仕組みを押さえておくと、あとの作業がぐっと楽になります。HubSpotは、コンタクトを見分けるための「固有ID(一意の識別子)」を持っています。
公式ナレッジベースでは、固有IDは「HubSpotが各レコードを個別のデータとして認識するために使用されるプロパティー値です」と説明されています。コンタクトの固有IDはEメールアドレス、会社の固有IDは会社のウェブサイトドメインです。Eメールアドレスがない場合は、HubSpotが内部で振っているレコードIDが使われます。
つまり、同じEメールアドレスで2件目のコンタクトが作られることは、原則としてありません。 同じアドレスでフォームが2回送信されても、既存のコンタクトが更新されるだけです。それでも重複が生まれるのは、次の3つのどれかに当てはまるときです。
パターン1:同じ人が別のメールアドレスで登録した
最も多いのがこれです。1回目は会社のアドレス、2回目はGmailやiCloudの個人アドレスでフォームを送信した。あるいは転職・部署異動でドメインが変わった。HubSpotから見ればまったく別のEメールアドレスなので、別人として2件目のコンタクトを作ります。
この場合、姓名も会社名も同じなので、人間が見れば一目で同一人物と分かります。ただしHubSpotは自動では気づきません。名刺交換で得たアドレスと、あとからウェビナー申込で入力されたアドレスが違う、というのは実務では日常的に起きます。
パターン2:Eメールアドレスなしでコンタクトが作られた
電話でのお問い合わせ、展示会で回収した紙のアンケート、営業担当が商談後に手入力したレコード。こうした経路ではEメールアドレスが空欄のままコンタクトが作られることがあります。
固有IDになるべきEメールアドレスがないので、HubSpotは既存のコンタクトと突き合わせる手段を持ちません。同じ人を2回入力すれば、そのまま2件のレコードになります。「山田太郎」が3件並んでいるようなケースは、ほぼこれが原因です。
パターン3:インポート時に固有IDを含めなかった
CSVで一括登録するとき、Eメールアドレスの列を含めずにインポートすると、既存レコードとの照合が働きません。公式ナレッジベースでは、コンタクトのインポート時にEメールアドレスを含めることで、重複の防止・既存レコードの更新・他オブジェクトとの関連付けができると説明されています。
逆に言えば、含めなければ全件が新規レコードとして追加されます。名刺データを外注してCSVで受け取り、そのままインポートして数百件の重複を作ってしまう、というのがよくある事故です。
| パターン | 起きる場面 | HubSpot側の見え方 |
|---|---|---|
| 別のメールアドレスで登録 | 会社アドレスと個人アドレス/転職・異動 | 固有IDが違うので別人と判定 |
| メールアドレスなしで作成 | 電話・展示会・営業担当の手入力 | 照合する固有IDがない |
| インポートで固有IDなし | CSV一括登録でEメール列を含めなかった | 全件が新規として追加される |
マージする前に必ず知っておくこと(元に戻せません)
ここが一番大事な章です。作業手順より先に読んでください。
マージは取り消せません
公式ナレッジベースには「レコードのマージを解除することはできません」とはっきり書かれています。「元に戻す」ボタンはありませんし、サポートに依頼して戻してもらうこともできません。
コンタクトの場合、統合後にセカンダリー側のEメールアドレスを削除して新しいレコードを作り直すことは可能です。ただしこれは「新規に作り直す」だけで、統合前の状態に戻るわけではありません。統合されたアクティビティ履歴やプロパティ履歴は混ざったままです。
プライマリーとセカンダリーで、残るものが違います
マージでは、2件のうち片方を「プライマリー(残る側)」、もう片方を「セカンダリー(消える側)」として指定します。結果として残るのはプライマリーのレコードで、プロパティーの値も既定ではプライマリー側が優先されます。
ただし、消えるのはレコードそのものだけで、中身は片方に寄せられます。公式の説明では、両方のレコードの「アクティビティー、関連付け、およびほとんどのプロパティー値を結合」するとされています。何が残り、何が起きるのかを整理すると次のとおりです。
| 項目 | マージ後どうなるか |
|---|---|
| タイムラインのアクティビティー | 両方のアクティビティーが新しいレコードに表示される |
| 関連付け | 両方の関連付けが新しいレコードに表示される |
| プロパティー値 | 1件ずつ残す値を選べる。既定はプライマリー側 |
| 静的セグメント(静的リスト) | セカンダリーは全ての静的セグメントから削除される |
| 登録済みのワークフロー | セカンダリーは登録解除される |
| 反映までの時間 | 全てのアクティビティーが同期されるまで最大30分 |
マージできないケースもあります
次の条件に当てはまると、マージが失敗する、または実行できません。公式に記載のあるものだけ挙げます。
- レコードが合計で250回以上のマージに含まれている場合はマージできません
- 関連付け(アソシエーション)の上限を超える場合は失敗することがあります
- 親子関係にある会社どうしは、マージが不可能または失敗することがあります
加えて、通話中にレコードをマージすると通話は自動的に切断されます。営業担当が電話しながら作業していると意図せず切れるので、社内で共有しておくと事故を防げます。
実行前にエクスポートで控えを取る
取り消せない以上、事前の控えが唯一の保険になります。作業前に、対象のコンタクトを含むビューをCSVでエクスポートしておいてください。少なくともレコードID・姓・名・Eメールアドレス・電話番号・会社名の6項目があれば、万一のときに「どの2件を統合したか」「統合前に何が入っていたか」を追えます。
数十件をまとめて処理する日は、作業前に1回エクスポートしておくだけで十分です。1件ごとに取る必要はありません。
手動でマージする手順(全プランで使えます)
手動マージは無料版でも実行できます。必要なのは権限だけで、公式ナレッジベースでは、レコードをマージする権限またはスーパー管理者権限が必要とされています。
操作の手順
- コンタクト(または会社・取引・チケット)のレコード一覧ページを開きます
- プライマリーにしたいレコードの名前をクリックして、レコードの詳細画面を開きます。ここで開いたほうが「残る側」になります
- 左側パネルの[アクション]ドロップダウンをクリックし、[マージ]を選択します
- ダイアログが開くので、ドロップダウンから統合するセカンダリーレコードを選びます
- プロパティーごとに、どちらの値を残すかを選択します。既定ではプライマリー側の値が選ばれています
- [マージ]をクリックします
つまずきやすいのは手順2です
「どちらを開いてから始めるか」で結果が変わります。最初に開いたレコードがプライマリー、つまり残る側になるからです。
実務では、アクティビティー履歴が長いほう・関連付けが多いほうをプライマリーにするのが安全です。プロパティーの値は後からダイアログで選び直せますが、レコードIDはプライマリー側のものが引き継がれます。外部ツールとレコードIDで連携している場合、消える側のIDを参照していた仕組みは動かなくなります。
判断に迷ったら、2件の詳細画面を別タブで開いて、タイムラインの長さと右パネルの関連付け件数を見比べてください。それだけで9割は決まります。
プロパティーの値を選ぶ画面での注意
ダイアログでは、2件で値が食い違っているプロパティーが並びます。ここで見落としがちなのが、空欄と入力済みが並んでいるケースです。既定でプライマリー側が選ばれるため、プライマリーが空欄ならそのまま空欄で確定してしまいます。
電話番号・会社名・役職のように、片方にしか入っていない項目は意識して拾ってください。統合後に手で入れ直すこともできますが、取り消せない操作なので、その場で拾うほうが確実です。
「重複を管理」ツールが使えるのはProfessional以上
HubSpotには、重複の可能性があるレコードの組み合わせを自動で提示してくれる「重複を管理」ツールがあります。ただしProfessionalまたはEnterpriseのサブスクリプションが必要です。無料版・Starterのメニューには表示されません。
無料ツールの利用料は月額0円(2026年9月3日時点、HubSpot公式の料金ページで確認)ですが、プランごとの金額はシート数と製品の組み合わせで変わるため、検討する際は必ず公式の料金ページで最新の条件を確認してください。
ツールの場所と、判定に使われる項目
コンタクトまたは会社の一覧ページを開き、右上の[アクション]から[重複を管理]を選択します。利用にあたっては、コンタクト(または会社)の編集権限が全件に及んでいる必要があります。担当分のレコードしか編集できない権限設定だと使えません。
重複と判定するために比較されるプロパティーは、オブジェクトごとに決まっています。
| オブジェクト | 比較されるプロパティー |
|---|---|
| コンタクト | 名/姓/Eメールアドレス/IPの国/電話番号/郵便番号/会社名 |
| 会社 | 会社のドメイン名/会社名/国・地域/電話番号/業種 |
ここを見ると、なぜ「メールアドレスなしのコンタクト」が検出されやすいかが分かります。姓・名・電話番号・会社名といった項目でも突き合わせているためです。逆に、姓名の表記が「山田 太郎」と「山田太郎」で揺れていたり、電話番号がハイフン有無で違っていたりすると、精度は落ちます。
表示できる件数の上限
Professional・Enterpriseでは最大10,000組の重複データが表示されます。さらにData Hub Professionalなら最大30,000組、Data Hub Enterpriseなら最大100,000組まで扱えます。
もうひとつ、公式に注記があります。却下した提案でも、そのレコードが別のレコードに統合された場合、重複チェックツールに再度表示されることがあります。「一度無視したのにまた出てきた」というのは不具合ではなく仕様です。
無料版・Starterで重複を見つける手順
ここからが、この記事の本題です。ツールが使えなくても、重複を洗い出す方法はあります。エクスポートしてスプレッドシートで突き合わせる、という古典的なやり方ですが、数百件規模なら30分ほどで終わります。
ステップ1:コンタクトをエクスポートする
コンタクト一覧の右上から[エクスポート]を選び、CSV形式で出力します。列は最低限、次の6つを含めてください。
- レコードID(あとでHubSpot上の該当レコードを開くために使います)
- 姓/名
- Eメールアドレス
- 電話番号
- 会社名
レコードIDを必ず入れておくのがコツです。あとで「この行のレコードを開きたい」となったとき、ID があれば https://app.hubspot.com/contacts/{ポータルID}/record/0-1/{レコードID} の形で直接開けます。名前で検索し直す手間が消えます。
ステップ2:表記ゆれを正規化する列を作る
そのまま重複を探すと、ほとんど引っかかりません。全角と半角、スペースの有無、ハイフンの有無で文字列が違うためです。作業用の列を1つ足して、突き合わせ用のキーを作ります。
Googleスプレッドシートなら、姓・名がB列・C列、電話番号がE列、会社名がF列だとして、次のような式を作業列に入れます。
- 氏名キー:
=SUBSTITUTE(SUBSTITUTE(B2&C2," ","")," ","")(半角・全角スペースを両方消します) - 電話キー:
=REGEXREPLACE(TO_TEXT(E2),"[^0-9]","")(数字以外を消してハイフンや括弧を無視します) - 会社キー:
=SUBSTITUTE(SUBSTITUTE(F2,"株式会社",""),"(株)","")(法人格の表記ゆれを吸収します)
Excelを使う場合、REGEXREPLACE は使えないバージョンがあります。その場合は電話番号列に対して =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(E2,"-",""),"(",""),")","") のように置換を重ねてください。
ステップ3:重複を数える
作業列の隣に、同じキーが何件あるかを数える列を作ります。氏名キーがH列にあるとして、次の式です。
=COUNTIF(H:H,H2)
この値が2以上の行が、重複候補です。フィルタで「2以上」に絞り、氏名キーで並べ替えると、同じ人が隣り合って並びます。ここまでで、目視で確認すべき行だけが手元に残ります。
氏名キーだけだと同姓同名の別人を拾ってしまうので、氏名キーと会社キーを連結したもので数えるほうが精度が上がります。=COUNTIF($H:$H,H2) の H列に「氏名キー&会社キー」を入れておく形です。電話キーでも同じ集計を作り、2つの結果を突き合わせると、メールアドレス違いの重複もかなり拾えます。
ステップ4:どちらを残すか決めてから統合する
並んだ2行を見て、プライマリーにするほうを決めます。判断基準は前章のとおり、アクティビティー履歴が長いほう・関連付けが多いほうです。CSVからは履歴の長さが分かりませんが、「作成日が古いほう」「Eメールアドレスが入っているほう」を優先すると、実務ではおおむね外しません。
決めたらレコードIDでHubSpot上のレコードを開き、手動マージの手順を実行します。1件あたり30秒ほどです。50件あれば25分前後を見ておいてください。
ステップ5:どのくらいの頻度で回すか
毎日やる必要はありません。フォームや名刺の流入が月に数十件という規模なら、月1回で十分に追いつきます。展示会やウェビナーの直後だけは、リストを取り込んだ翌週に1回追加で回すと、重複が定着する前に潰せます。
1〜10人の会社であれば、この運用を担当者1人で回せます。逆に、毎月100件以上の重複が出るようなら、手作業の限界です。その時点で「重複を管理」ツールが使えるProfessional以上への切り替えを検討するタイミングだと考えてください。
これ以上重複を増やさないための設定
掃除と同じで、出さない工夫のほうが効きます。無料版でもできることが3つあります。
インポートでは必ず固有IDの列を含める
CSVをインポートするときは、コンタクトならEメールアドレス、会社ならウェブサイトのドメインの列を必ず含めてください。公式ナレッジベースも「データ品質を維持するために、インポート時にそれぞれの固有の識別子(Eメール、会社のドメイン名)を使用することをお勧めします」と推奨しています。
既存レコードを更新する目的のインポートでは、レコードIDの列を含めるのが最も確実です。公式にも「インポート中に『レコードID』がマッピングされた場合、そのレコードIDは他のマッピングされた固有のIDよりも優先されます」と記載があります。一度エクスポートしてレコードID付きのCSVを作り、それを編集してインポートし直す、という流れなら重複は生まれません。
Eメールアドレスなしのコンタクトを作らせない
手入力でコンタクトを作る運用があるなら、社内ルールとして「Eメールアドレスが分からない場合も、電話番号と会社名は必ず入れる」と決めてください。重複判定は姓・名・電話番号・会社名も見ています。埋めておけば、あとから見つけやすくなります。
逆に、姓名だけのレコードは後で照合できません。展示会のアンケート用紙を設計する段階で、メールアドレス欄を必須にしておくのが最も効きます。
フォームで同じアドレスを使ってもらう
パターン1(別アドレスでの登録)は仕組みでは防げませんが、減らすことはできます。資料ダウンロードやウェビナー申込のフォームで「会社のメールアドレスをご記入ください」と一文添えるだけで、個人アドレスの混入は目に見えて減ります。
また、既存顧客に送るメールから遷移させるフォームでは、HubSpotのフォームが持つ既知情報の自動入力を使うと、本人が別アドレスを打ち込む余地が減ります。
まとめ
重複コンタクトの整理は、CRMを使い続ける限りついて回る作業です。押さえるべき点は3つに絞れます。
- マージは取り消せない。作業前にエクスポートで控えを取り、プライマリー(残す側)から開いて操作する
- 「重複を管理」ツールはProfessional以上。無料版・Starterは手動マージと、エクスポートによる洗い出しで対応する
- 予防が最も効く。インポートでは固有ID(Eメールアドレス/ドメイン/レコードID)の列を必ず含める
まずは今のコンタクトを一度エクスポートして、氏名と会社名で重複を数えてみてください。想像より多いはずです。そこから月1回のリズムに乗せられれば、この問題はほぼ片付きます。
よくある質問(FAQ)
マージした後で「やっぱり分けたい」となったら戻せますか
戻せません。公式ナレッジベースに「レコードのマージを解除することはできません」と明記されています。コンタクトの場合、統合後にセカンダリー側のEメールアドレスを削除して新しいレコードを作ることはできますが、統合前の状態が復元されるわけではありません。作業前のエクスポートが唯一の控えになります。
3件以上の重複がある場合はどうすればいいですか
マージは一度に2件までです。3件ある場合は、AとBをマージして1件にし、その結果とCをマージする、という順で繰り返します。なお、1つのレコードが合計250回以上のマージに含まれている場合は、それ以上マージできません。
マージしたのに統合されていないように見えます
全てのアクティビティーが同期されるまで最大30分かかります。マージの実行中は、進行中であることを示すメッセージが表示されます。30分以上経っても反映されない場合は、関連付けの上限超過などで失敗している可能性があります。
無料版で「重複を管理」はどこにありますか
ありません。このツールはProfessionalまたはEnterpriseのサブスクリプションが必要です。無料版・Starterでは手動マージのみが使えます。重複の洗い出しは、エクスポートしてスプレッドシートで突き合わせる方法で代替できます。
同じメールアドレスでコンタクトが2件できてしまいました
Eメールアドレスはコンタクトの固有IDなので、通常は起こりません。片方のアドレスに全角文字や余分なスペースが混入していないか、CSVインポート時に別の列がマッピングされていなかったかを確認してください。
マージするとメール配信の停止設定はどうなりますか
セカンダリーのレコードは全ての静的セグメントから削除され、登録済みのワークフローからも登録解除されます。配信対象のリストが静的リストで組まれている場合、統合後にプライマリー側がそのリストに入っているかを必ず確認してください。
参考にした公式ドキュメント
HubSpotは無料で始められます
コンタクト管理・フォーム・メール配信・商談管理を1つにまとめたCRMプラットフォームです。この記事で解説した手動マージとエクスポートは、無料の範囲で実行できます。プランごとの違いと料金は公式サイトでご確認ください。