連絡帳 目次に戻る重複の検出とマージ
同じ人物が複数の連絡先として登録されてしまった場合の整理機能です。 自動収集 + CSV インポート + 手動追加が混在する運用では、 同じ相手が「メールアドレス違い」「表記揺れ」 「会社情報のみ違う」 などの形で重複しがちです。 検出 + 1 件への統合をまとめて行えます。
重複ページを開く
連絡帳一覧の右上にある「重複を確認」 ボタンを押すか、 直接/mail/contacts/duplicates にアクセスします。 サーバー側で重複候補を 検出し、 検出結果がグループ単位でカード表示されます。
- 重複が 0 件のとき: 「重複している連絡先は見つかりませんでした」 が表示される (= 連絡帳が clean な状態)
- 1 回に表示・処理できるのは最大20 グループまで。 残りがある場合は 先にマージしてから再度開く
検出ロジック
サーバーは 3 種類のヒューリスティクスで重複候補を抽出します。 重複理由はカードの ヘッダに表示されます。
| 検出理由 | 判定基準 | 想定ケース |
|---|
| 同じメールアドレス | 同じメールアドレスを持つ複数の連絡先。 通常は partial unique で防がれるが、 履歴的な不整合があれば surface | 過去のスキーマ移行で残った重複 / 連絡帳アドオン経由のレコードとの重複 |
| 同じ表示名 | 表示名の文字列が一致。 大文字小文字 / 前後の空白は無視 (= 正規化済みで比較) | 「田中太郎」 と「田中 太郎」 (空白の有無) |
| 同じ姓 + 名 | 姓と名のペアが一致。 大文字小文字 / 前後の空白は無視 | 表示名は違うが、 構造化された姓・名が一致するケース |
判定基準同じメールアドレスを持つ複数の連絡先。 通常は partial unique で防がれるが、 履歴的な不整合があれば surface
想定ケース過去のスキーマ移行で残った重複 / 連絡帳アドオン経由のレコードとの重複
判定基準表示名の文字列が一致。 大文字小文字 / 前後の空白は無視 (= 正規化済みで比較)
想定ケース「田中太郎」 と「田中 太郎」 (空白の有無)
判定基準姓と名のペアが一致。 大文字小文字 / 前後の空白は無視
想定ケース表示名は違うが、 構造化された姓・名が一致するケース
グループカードの見方
各重複グループは 1 枚のカードとして表示され、 ヘッダに「{count} 件」 の重複件数とその検出理由のバッジが付きます。
- カード内に重複候補となっている連絡先がリスト表示される (各行に表示名 / 主メール / 最終接触 / 取得元)
- 各行に「これに統合」 ボタンが出る (= この行をメイン (= 残す側) に して、 他の連絡先をマージ)
マージの手順
メインにしたい行の「これに統合」 ボタンを押すと、 確認ダイアログが 開きます。
- ダイアログのタイトル: 「{count} 件を「{name}」 に統合しますか?」
- 本文: 「他の {count} 件の連絡先のメールアドレス / 電話番号 / タグ / メモを 「{name}」 に移動し、 元の連絡先は削除されます。 この操作は取り消せません。」
- 「統合する」 を押すと実行され、 「{count} 件を統合しました」 トーストが表示される
- 失敗時は「統合に失敗しました」 トースト
マージ挙動の詳細
| 項目 | ルール |
|---|
| メインに選んだ連絡先 | 残る。 ID / 作成日時 / スコープなどはそのまま保持 |
| 姓 / 名 / フリガナ / 会社 / 役職 / メモ | メインが空の項目だけ、 統合元から最初に見つかった値を copy。 メインに値があれば上書きしない |
| メールアドレス | 統合元の全アドレスをメインに集約。 アドレスが重複した場合はメイン 優先で統合元のものは捨てる |
| 電話番号 | 同上 (= 集約 + メイン優先) |
| タグ | すべてのタグを和集合で集約 (重複は 1 件にまとめる) |
| 最終接触日時 | 関係する連絡先の中で最も新しい日時を採用 |
| 統合元の連絡先 | すべて削除される (= ゴミ箱経由ではなく直接除去、 元には戻せない) |
ルール残る。 ID / 作成日時 / スコープなどはそのまま保持
項目姓 / 名 / フリガナ / 会社 / 役職 / メモ
ルールメインが空の項目だけ、 統合元から最初に見つかった値を copy。 メインに値があれば上書きしない
ルール統合元の全アドレスをメインに集約。 アドレスが重複した場合はメイン 優先で統合元のものは捨てる
ルールすべてのタグを和集合で集約 (重複は 1 件にまとめる)
ルールすべて削除される (= ゴミ箱経由ではなく直接除去、 元には戻せない)
権限
- 「これに統合」 ボタンは編集権限を持つロール (owner / responder / reviewer) のみ表示
- viewer はマージページ自体は閲覧できるが、 マージボタンが非表示
- 連絡帳アドオン経由の連絡先 (= 別アプリのレコード) を「メイン」 にしてマージできる かは、 アドオン側のアプリの編集権限に依存
マージ前のチェックリスト
- メインに選ぶ連絡先は「より正規の情報を持つほう」を選ぶ。 メインの 値が優先されるため、 たとえば社名が空欄の連絡先をメインにすると、 残った連絡先 側の社名がコピーされる
- メールアドレスは集約されるが、 同じアドレスがある場合はメインのものが残るため、 ラベル (仕事 / 個人 / その他) が違う場合は要注意
- マージは取り消し不可。 不安な場合は事前に CSV エクスポートでバックアップ
運用のヒント
- CSV インポート直後に重複ページを開いて、 大量にマージしたい場合は 20 件ずつ 繰り返す
- 自動収集された連絡先 (確認待ち) と手動追加の連絡先で重複が起きやすい。 「確認待ち」 タブで先に確認済み昇格 → 重複ページで統合、 の順だと整理しやすい
- 検出ロジックが 3 種類あるので、 同じグループが複数回に分けて表示されることは無い (= 検出ロジックは候補生成時にユニーク化される)
関連ドキュメント
- CSV インポート / エクスポート — マージ前のバックアップ / インポート後の重複対応
- 一括操作 — マージではなく単純な削除 / タグ整理を一括で行う場合