外部サービス連携

カスタマーコンパスによる取引先地図表示といまの状況

この記事は2020年に書いたものです。取り上げたアプリは、2026年9月時点でもAppExchangeに掲載が残っています。当時の手順はそのまま残し、掲載状況と、標準のlightning-mapコンポーネントで地図を出す方法を追記しました。

2020.07.23

この記事の読み方

最初に書いた時点では、AppExchangeのアプリ「カスタマーコンパス」を使って、取引先とリードの住所をジオコーディングし、Google Map上にマーカー表示する、という内容でした。その手順自体は下に残してあります。

ただし6年が経ち、地図表示にはSalesforce標準のコンポーネントも使えるようになりました。

先に結論です。いまから地図表示を作るなら、まず標準のlightning-mapコンポーネントで足りるかを確かめてください。カスタマーコンパスのAppExchange掲載自体は、2026年9月時点でも残っています。

この記事は次の順で読めます。当時の記録だけが必要なら前半を、いま作るときの判断材料が必要なら後半を見てください。

節何が書いてあるか
当時の導入手順(2020年の記録)インストール・数式項目・リストビュー・ボタンの作成。当時、手で作る必要があったものの全量です
当時の動作確認(2020年の記録)テストデータを入れて、ジオコーディングから地図表示までを通した記録です
ジオコーディングの上限と費用当時の画面に出ていた上限と、2026年9月時点の掲載に書かれている条件です
2026年9月時点の状況掲載が残っているか、価格はいくらか、パッケージのバージョンはいくつかです
標準のジオコード機能とlightning-mapデータインテグレーションルールとlightning-mapで、どこまで代替できるかです

当時の導入手順(2020年の記録)

⚠️ ここから先の4つの節は、2020年7月に作業したときの記録です。いまこの手順をなぞることを勧めているわけではありません。当時、地図を1枚出すために何をインストールし、何を手で作る必要があったかを残すために置いています。これから導入を検討するなら、先に後半の「標準のジオコード機能で足りるか確かめる」を読んでください。

インストールする

AppExchangeの掲載ページから、管理パッケージとしてインストールします。

  1. 掲載ページを開く

    AppExchangeで「カスタマーコンパス」を検索し、掲載ページの「今すぐ入手」を押します。当時の掲載は、執筆者がサムライシステム株式会社、リスト作成日が2013/12/11、最新リリースが2020/08/08でした。

  2. インストール先を選ぶ

    Salesforceアカウントを選んで「本番組織にインストール」を押します。サンドボックスで試すなら「Sandboxにインストール」を選びます。

  3. インストール対象を選ぶ

    「管理者のみのインストール」「すべてのユーザのインストール」「特定のプロファイルのインストール」の3択です。ここでは「すべてのユーザのインストール」を選んで「インストール」を押しました。

  4. 完了まで待つ

    「インストール完了!」と出たら「完了」を押します。

  5. インストール済みパッケージで確認する

    設定の「インストール済みパッケージ」を開きます。当時入ったのは名前空間CustomerCompass、バージョン2.55、ライセンスはトライアル5席でした。

AppExchangeのカスタマーコンパス掲載ページ。最低価格¥1,500 JPYの表示と今すぐ入手ボタンが並ぶ
当時の掲載ページです。日本語版の最低価格が「¥1,500 JPY ユーザごと1か月ごと」だった点を見てください。
パッケージのインストール先を選ぶダイアログ。本番環境にインストールとSandboxにインストールの2択
手順2です。上の枠で本番組織のアカウントを選ぶか、下の「Sandboxにインストール」を選ぶかを決めます。
インストール対象の選択画面。管理者のみ・すべてのユーザ・特定のプロファイルの3択が並ぶ
手順3です。真ん中の「すべてのユーザのインストール」が選ばれている点を見てください。
インストール完了!と表示されたダイアログ。完了ボタンが1つだけ置かれている
手順4です。「インストール完了!」の表示を確かめてから「完了」を押します。
インストール済みパッケージの一覧。CustomerCompassのバージョン2.55の行が1件並ぶ
手順5の確認です。当時のバージョンが2.55、ライセンスがトライアルの5席だった点を見てください。

距離を計算する数式項目を作る

このアプリは、基準点となる緯度・経度をカスタム設定CC_configに持ちます。そこからの距離を各レコードで出すために、リードと取引先の両方に数式項目を作ります。

DISTANCE(
  GEOLOCATION(
    $Setup.CustomerCompass__CC_config__c.CustomerCompass__defaultLat__c ,
    $Setup.CustomerCompass__CC_config__c.CustomerCompass__defaultLon__c
  ) ,
  GEOLOCATION(
    CustomerCompass__CClatitude__c ,
    CustomerCompass__CClongitude__c
  ) ,
  'km'
)

リードにも取引先にも、同じ数式を入れます。カスタム設定に入っている基準点と、そのレコードの緯度・経度の距離をkmで返します。

  1. リードに数式項目を作る

    表示ラベルは「営業マンとの距離」、項目名はDistance、データ型は数式、小数点の位置は0にします。API参照名はDistance__cになります。

  2. 取引先にも同じ数式項目を作る

    表示ラベルは「営業マンとの距離(km)」、項目名はDistanceです。オブジェクトが違うだけで、数式は上とまったく同じものを入れます。

リードのカスタム数式項目「営業マンとの距離」の詳細画面。DISTANCE関数の数式が表示されている
リード側の数式項目です。オブジェクト名が「リード」、小数点の位置が0になっている点を見てください。
取引先のカスタム数式項目「営業マンとの距離(km)」の詳細画面。同じDISTANCE関数が入っている
取引先側にも同じ数式を入れます。表示ラベルだけが「営業マンとの距離(km)」になっている点が違いです。

⚠️ この数式が返す値は、基準点を設定したあとでないと意味を持ちません。基準点は、次の「基準点を設定するボタンを作る」で作るボタンを押したときに、カスタム設定へ書き込まれます。

地図に出すリストビューを作る

カスタマーコンパスは、地図に出すデータをリストビューかレポートで指定します。ここでは、営業マン側と得意先側の2つのリストビューを作ります。

  1. リードのリストビューを作る

    ビュー名は営業マン (map)、ビューの一意の名前はSalesman_mapです。検索条件は「営業マンとの距離」が0以下、表示する項目は名前・営業マンとの距離・電話にします。距離0のレコード、つまり基準点そのものだけが残ります。

  2. 取引先のリストビューを作る

    ビュー名は営業マンより「100km」圏内の得意先リストビュー(map)、ビューの一意の名前はX10km_mapです。検索条件は「営業マンとの距離(km)」が100以下、表示する項目は取引先名・営業マンとの距離(km)・電話にします。

リードのビューの編集画面。ビュー名は営業マン (map)、検索条件は営業マンとの距離が0以下
営業マンのリストビューです。ビュー名の末尾を「(map)」にしてあるところが、この節の要点です。
取引先のビューの編集画面。ビュー名は営業マンより「100km」圏内の得意先リストビュー(map)
得意先側のビューです。検索条件の「≦ 100」で100km圏内に絞り、名前の末尾はやはり「(map)」にします。

⭐ ビュー名の末尾を(map)にするのは、飾りではありません。カスタム設定CC_configのmap_NameFilterForViewを有効にすると、末尾が(map)のビューだけが地図側の選択肢に出ます。提供元の英語ドキュメントに、そのための命名規則として書かれています。レポートを地図のデータ元にする場合も同じで、map_NameFilterForReportを有効にしたうえで、レポート名の末尾を(map)にし、1列目をIDにしておく必要があります。

基準点を設定するボタンを作る

距離の基準点は、営業マンのレコードの詳細画面からボタンで設定します。ボタンは、パッケージに入っているVisualforceページを呼ぶだけのカスタムボタンです。

/apex/CustomerCompass__CCMapSetDefaultPos?lat={!Lead.CustomerCompass__CClatitude__c}&lon={!Lead.CustomerCompass__CClongitude__c}

リードの詳細ページボタンに入れるURLです。そのレコードの緯度・経度を、パッケージのVisualforceページへ渡します。

  1. カスタムボタンを作る

    リードのボタンとして作ります。表示ラベルは「デフォルトロケーション設定」、名前はDeflocationSetURL、表示の種類は詳細ページボタン、動作は新規ウィンドウに表示、リンクのエンコードはUnicode(UTF-8)、高さは600にしました。

  2. ページレイアウトに配置する

    リードのページレイアウトを編集し、作ったボタンをカスタムボタンの領域へ置きます。詳細画面のボタン列の右端に1つ増えます。

リードのカスタムボタン「デフォルトロケーション設定」の詳細画面。Visualforceページを呼ぶURLが入っている
手順1で作るカスタムボタンです。URLにそのレコードの緯度・経度を差し込んで渡している点を見てください。
リード詳細画面のボタン列の右端に、デフォルトロケーション設定ボタンが並んでいる
手順2の結果です。ページレイアウトへ配置すると、ボタン列の右端に1つ増えます。

当時の動作確認(2020年の記録)

ここから先が、実際にデータを入れて動かした記録です。

レコードの準備

種別設定した値
営業マンのレコード名前:営業太郎/会社名:山田商事/都道府県:東京都/市区郡:港区/町名・番地:虎ノ門
得意先レコード(本田商事)取引先名:本田商事/電話:123-4567-8901/都道府県(請求先):神奈川県/市区郡(請求先):横浜市/町名・番地(請求先):西区南幸1丁目
得意先レコード(鈴木商事)取引先名:鈴木商事/電話:234-5678-9012/都道府県(請求先):千葉県/市区郡(請求先):千葉市/町名・番地(請求先):中央区新千葉1丁目1

ジオコーディングで緯度経度を設定する

  1. 営業マンをジオコーディングする

    ジオコーディングのパネルで対象オブジェクトに「リード」を選び、「ジオコーディング開始」を押します。リードのCustomerCompass__CClatitude__c・CustomerCompass__CClongitude__cに値が入ります。

  2. 得意先をジオコーディングする

    同じパネルで対象オブジェクトを「取引先」に切り替えて、もう一度実行します。取引先側の同じ2項目に値が入ります。

  3. 営業マンの基準点を決める

    営業マンのリード詳細画面で「デフォルトロケーション設定」を押します。そのレコードの緯度・経度が、距離計算の基準点としてカスタム設定へ書き込まれます。

  4. 結果を確認する

    営業マンのリストビューと、得意先リストの「営業マンとの距離(km)」を確認します。基準点である営業太郎は0、得意先は鈴木商事が34km、本田商事が25kmになりました。

ジオコーディングのパネル。対象オブジェクトにリードを選び、ジオコーディング開始ボタンが置かれている
手順1の画面です。対象オブジェクトに「リード」を選んで実行します。24時間で最大1000件という但し書きにも注目してください。
ジオコーディングのパネル。対象オブジェクトが取引先に切り替わっている
手順2です。同じパネルで対象オブジェクトを「取引先」に切り替えて、もう一度実行します。
リード営業太郎の詳細画面。ボタン列の右端にデフォルトロケーション設定が並ぶ
手順3です。営業マンのリード詳細画面で、右端の「デフォルトロケーション設定」を押すと基準点が決まります。
営業マン (map) リストビュー。営業太郎の行が1件で、営業マンとの距離は0
手順4の確認その1です。営業マン側のビューで、基準点である本人の距離が0になっている点を見てください。
100km圏内の得意先リストビュー。鈴木商事が34km、本田商事が25kmで2件並ぶ
手順4の確認その2です。得意先側のビューに「営業マンとの距離(km)」が34・25と入っているのが分かります。

カスタマーコンパスの画面

  1. タブを開く

    カスタマーコンパスのタブを開くと、現在位置を中心にしたGoogle Mapが表示されます。この時点ではマーカーは1つも出ていません。

  2. 営業マンのビューを選ぶ

    「地図に何を表示しますか?」のドロップダウンから、ビューの区分で営業マン (map)を選びます。

  3. 得意先のビューを選ぶ

    2段目のドロップダウンで営業マンより「100km」圏内の得意先リストビュー(map)を選びます。ビューは何段も重ねて表示できます。

  4. マーカーの色を指定する

    選んだビューごとに色を割り当てます。1段目の営業マンに黄色、2段目の得意先に赤を指定しました。

  5. 地図で確認する

    黄色マーカーが営業マン、赤色マーカーが得意先として地図上に並びます。虎ノ門・横浜・千葉の位置関係が一目で分かります。

カスタマーコンパスのタブを開いた直後。現在位置を中心にしたGoogle Mapだけが出ている
手順1です。タブを開いた直後で、まだリストビューを選んでいないのでマーカーは1つも出ていません。
地図右上のドロップダウンが開き、ビューの一覧から営業マンを選ぼうとしている
手順2です。「地図に何を表示しますか?」のドロップダウンから、ビューの区分で「営業マン」を選びます。
2段目のドロップダウンで、100km圏内の得意先リストビューを選んでいる
手順3です。2段目で得意先側のビューを選びます。ビューは何段も重ねて表示できる点を見てください。
選択済みの2つのビューの右に、黄色と赤の色見本が並んでいる
手順4です。1段目の営業マンに黄色、2段目の得意先に赤のマーカー色を割り当てています。
関東地方の地図。東京に黄色マーカーが1本、横浜と千葉に赤マーカーが2本立っている
手順5です。黄色が営業マン、赤が得意先。虎ノ門・横浜・千葉の位置関係が一目で分かります。

ジオコーディングの上限と費用

⚠️ このアプリのジオコーディングには、アプリ側の上限があります。当時のジオコーディング画面には、パネルの中に「1組織あたり、24時間で最大1000件の上限があります」と書かれていました。住所を持つレコードが数万件ある組織では、最初の一括ジオコーディングだけで日をまたぐことになります。

2026年9月時点のAppExchange日本語版の掲載には、追加の詳細情報として次の条件が書かれています。

項目掲載されている内容
最低価格¥1,500 JPY/ユーザごと/1か月ごと
無料トライアル30日間
ジオコーディングの無料枠初期設定時は5万件、以降は1日1000件まで
無料枠を超える場合別途有料トークンを発行(1万件=1万円)
初期登録費10万円

⚠️ 提供元の英語ドキュメント(©2013)には、「24時間で最大50,000件まで無料」と書かれています。掲載ページの「初期設定時:5万件、以降1日:千件」と読み合わせると、初回の一括ジオコーディング枠と、その後の平常運転の枠を指し分けているように読めます。導入するなら、いまの仕様を提供元に直接確認してください。

⭐ 無料の評価期間中は、取引先オブジェクトしかジオコーディングできません。リードや取引先責任者もジオコーディングするには、購入後に発行されるジオコーディングライセンスキーを、カスタム設定CC_configのCCGeocodingLicenseKeyに入れる必要があります。上の記録でリードをジオコーディングできているのは、この前提があってのことです。

2026年9月時点の状況

カスタマーコンパスのAppExchange掲載は、2026年9月時点でも残っています。配布元のAppExchangeで確認したところ、米国向けの「CustomerCompass - Google Maps Integration」、日本語版の「カスタマーコンパス」いずれのリスティングも公開されていました。掲載内容に、廃止や提供終了の告知は見当たりませんでした。

項目日本語版リスティング米国向けリスティング
価格最低価格 ¥1,500/ユーザ/月$20/ユーザ/月
無料トライアル30日間30日間
その他の費用初期登録費10万円、ジオコーディングの追加トークン(1万件=1万円)掲載されていません
割引非営利向け割引あり非営利・教育機関は半額

⚠️ 同じパッケージでも、リスティングによって掲載価格が違います。日本語版の¥1,500と米国向けの$20は、為替で換算した関係にはなっていません。日本の組織で検討するなら、日本語版の掲載条件と、そこに書かれた初期登録費まで含めて見てください。

パッケージそのものは、2026年9月時点で日本語版・米国向けとも同じもので、バージョンは3.6.0(パッケージのバージョン名CCMap20260713、2026年7月11日のリリース)でした。セキュリティレビューの最終承認は2025年3月19日、承認済みの最終バージョンは2.126.0と掲載されています。当時インストールした2.55から、パッケージ自体は更新が続いています。

標準のジオコード機能で足りるか確かめる

住所から緯度・経度を取るだけなら、Salesforceに標準で用意されているデータインテグレーションルールで足ります。「Geocodes for Lead Address」「Geocodes for Account Billing Address」のように、リード・取引先の請求先/納入先・取引先責任者それぞれに専用のルールがあり、設定のクイック検索から「データインテグレーションルール」を開いて有効化します。追加のライセンスも、Google側のAPIキーも要りません。

⚠️ ただし、標準のルールが入れてくれるのはレコードのLatitude・Longitude項目までです。画面に地図を出してピンを立てるところは、標準のルールの範囲外です。地図そのものは、次のlightning-mapか、独自の実装で作ります。

標準のlightning-mapで地図表示する

いまSalesforce標準の機能だけで地図を出すなら、Lightning Web Componentsのlightning-mapコンポーネントが使えます。

カスタマーコンパスでやっていたことlightning-mapでのやり方
取引先・リードの住所を地図にマーカー表示する住所または緯度経度を持つマーカー情報の配列をmap-markers属性に渡します
マーカーの色分けマーカーごとにiconを指定して見た目を変えられます。指定できるのはLightning Design Systemのアイコンだけです
一覧と地図を並べて見るlist-view属性にvisible・hidden・autoのいずれかを指定します。既定はautoで、マーカーが複数あるときに一覧が出ます
リストビュー名の末尾を(map)にして対象を絞る該当する仕組みはありません。どのレコードを地図に出すかは、マーカー情報を組み立てる側で決めます
営業マンとの距離で得意先を絞り込むlightning-map自体に距離での絞り込み機能はありません。SOQLやApexで距離を計算し、絞り込んだ結果をマーカー情報として渡す実装が必要です

⚠️ lightning-mapのジオコーディングにも上限があります。公式リファレンスによると、住所からの位置特定は1つの地図につき最大10件までです。マーカーと中心地点の住所指定は、両方この上限に数えられます。緯度・経度をあらかじめ数値で指定する場合はこの上限の対象外で、合計およそ100件程度までが推奨とされています。

⭐ アプリ側にも標準側にも上限がある、というのがこの記事の結論の理由です。当時のアプリは1組織あたり1日1000件、いまのlightning-mapは1つの地図につき住所10件。どちらも「住所のまま渡す」やり方には制限があり、まとまった件数を扱うなら、先に緯度・経度を持たせておく設計が要ります。標準のデータインテグレーションルールで緯度・経度を入れておけば、lightning-mapの10件の上限には当たりません。まず標準で足りるかを確かめてください、というのはこの意味です。

ここで間違えやすい

間違い何が起きるか
リストビュー名の末尾に(map)を付けずに作るmap_NameFilterForViewを有効にしていると、そのビューは地図側の選択肢に出てきません
基準点のボタンを押さずに距離を見る数式項目はカスタム設定の基準点を参照するため、押していないと距離が意味のない値になります
評価期間中にリードをジオコーディングしようとする評価期間中は取引先しか対象にできません。ライセンスキーをカスタム設定に入れる必要があります
ジオコーディングで得た緯度・経度を他の用途に流用する提供元のドキュメントは、このアプリの中でだけ使える値だと明記しています。他で使うなら別のジオコーディングサービスで取り直します
米国向けの$20をそのまま日本語版の価格として見積もる日本語版は最低価格¥1,500/ユーザ/月で、別に初期登録費が掲載されています
住所のままlightning-mapへ数十件渡す1つの地図につき住所からの位置特定は10件までです。緯度・経度を数値で渡す形に変えます

確認した環境

  • 2026年9月/developer.salesforce.comのLightning Web Componentsリファレンス「lightning-map」で、属性とジオコーディングの上限を確認しています
  • 2026年9月/AppExchange(米国向け・日本語版)の掲載内容を、配布元のページで確認しています。価格・無料枠・初期登録費・パッケージのバージョンは、この日の掲載の記載です
  • ジオコーディングの無料枠と(map)の命名規則は、提供元がAppExchangeで配布している英語のドキュメント(©2013 Samurai System Co Ltd.)と、2020年当時の画面表示を突き合わせて書いています
  • 標準のデータインテグレーションルールの動きは、私たちの別記事で確認した内容と同じです。ルール名と有効化の手順はそちらを参照してください
  • 記事前半の手順は2020年7月時点の記録です

まとめ

  • カスタマーコンパスは、取引先・リードの住所をジオコーディングし、Google Map上にマーカー表示するアプリでした
  • 当時は、インストールに加えて数式項目2つ・リストビュー2つ・カスタムボタン1つを手で作る必要がありました
  • リストビュー名の末尾を(map)にするのは、地図側の選択肢を絞り込むための命名規則です
  • ジオコーディングにはアプリ側の上限があり、当時の画面には1組織あたり24時間で最大1000件と表示されていました
  • 2026年9月時点でも、米国向け・日本語版ともAppExchangeに掲載が残っています。価格は日本語版が¥1,500/ユーザ/月、米国向けが$20/ユーザ/月です
  • 住所から緯度・経度を取るだけなら、標準のデータインテグレーションルールで足ります
  • 標準機能で地図表示をするなら、lightning-mapコンポーネントにmap-markersを渡す方法があります
  • lightning-mapのジオコーディングは1つの地図につき最大10件までが上限です。緯度・経度を直接渡せばこの上限の対象外になります

Salesforceの導入・運用についてご相談ください

導入前の検討から、お使いの環境の改修・運用、AIとの連携まで承ります。状況を伺ったうえで、進め方をご提案します。