カスタマーコンパスによる取引先地図表示といまの状況
この記事は2020年に書いたものです。取り上げたアプリは、2026年9月時点でもAppExchangeに掲載が残っています。当時の手順はそのまま残し、掲載状況と、標準のlightning-mapコンポーネントで地図を出す方法を追記しました。
この記事の読み方
最初に書いた時点では、AppExchangeのアプリ「カスタマーコンパス」を使って、取引先とリードの住所をジオコーディングし、Google Map上にマーカー表示する、という内容でした。その手順自体は下に残してあります。
ただし6年が経ち、地図表示にはSalesforce標準のコンポーネントも使えるようになりました。
この記事は次の順で読めます。当時の記録だけが必要なら前半を、いま作るときの判断材料が必要なら後半を見てください。
| 節 | 何が書いてあるか |
|---|---|
| 当時の導入手順(2020年の記録) | インストール・数式項目・リストビュー・ボタンの作成。当時、手で作る必要があったものの全量です |
| 当時の動作確認(2020年の記録) | テストデータを入れて、ジオコーディングから地図表示までを通した記録です |
| ジオコーディングの上限と費用 | 当時の画面に出ていた上限と、2026年9月時点の掲載に書かれている条件です |
| 2026年9月時点の状況 | 掲載が残っているか、価格はいくらか、パッケージのバージョンはいくつかです |
| 標準のジオコード機能とlightning-map | データインテグレーションルールとlightning-mapで、どこまで代替できるかです |
当時の導入手順(2020年の記録)
インストールする
AppExchangeの掲載ページから、管理パッケージとしてインストールします。
掲載ページを開く
AppExchangeで「カスタマーコンパス」を検索し、掲載ページの「今すぐ入手」を押します。当時の掲載は、執筆者がサムライシステム株式会社、リスト作成日が2013/12/11、最新リリースが2020/08/08でした。
インストール先を選ぶ
Salesforceアカウントを選んで「本番組織にインストール」を押します。サンドボックスで試すなら「Sandboxにインストール」を選びます。
インストール対象を選ぶ
「管理者のみのインストール」「すべてのユーザのインストール」「特定のプロファイルのインストール」の3択です。ここでは「すべてのユーザのインストール」を選んで「インストール」を押しました。
完了まで待つ
「インストール完了!」と出たら「完了」を押します。
インストール済みパッケージで確認する
設定の「インストール済みパッケージ」を開きます。当時入ったのは名前空間
CustomerCompass、バージョン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で返します。
リードに数式項目を作る
表示ラベルは「営業マンとの距離」、項目名は
Distance、データ型は数式、小数点の位置は0にします。API参照名はDistance__cになります。取引先にも同じ数式項目を作る
表示ラベルは「営業マンとの距離(km)」、項目名は
Distanceです。オブジェクトが違うだけで、数式は上とまったく同じものを入れます。
⚠️ この数式が返す値は、基準点を設定したあとでないと意味を持ちません。基準点は、次の「基準点を設定するボタンを作る」で作るボタンを押したときに、カスタム設定へ書き込まれます。
地図に出すリストビューを作る
カスタマーコンパスは、地図に出すデータをリストビューかレポートで指定します。ここでは、営業マン側と得意先側の2つのリストビューを作ります。
リードのリストビューを作る
ビュー名は
営業マン (map)、ビューの一意の名前はSalesman_mapです。検索条件は「営業マンとの距離」が0以下、表示する項目は名前・営業マンとの距離・電話にします。距離0のレコード、つまり基準点そのものだけが残ります。取引先のリストビューを作る
ビュー名は
営業マンより「100km」圏内の得意先リストビュー(map)、ビューの一意の名前はX10km_mapです。検索条件は「営業マンとの距離(km)」が100以下、表示する項目は取引先名・営業マンとの距離(km)・電話にします。
⭐ ビュー名の末尾を(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ページへ渡します。
カスタムボタンを作る
リードのボタンとして作ります。表示ラベルは「デフォルトロケーション設定」、名前は
DeflocationSetURL、表示の種類は詳細ページボタン、動作は新規ウィンドウに表示、リンクのエンコードはUnicode(UTF-8)、高さは600にしました。ページレイアウトに配置する
リードのページレイアウトを編集し、作ったボタンをカスタムボタンの領域へ置きます。詳細画面のボタン列の右端に1つ増えます。
当時の動作確認(2020年の記録)
ここから先が、実際にデータを入れて動かした記録です。
レコードの準備
| 種別 | 設定した値 |
|---|---|
| 営業マンのレコード | 名前:営業太郎/会社名:山田商事/都道府県:東京都/市区郡:港区/町名・番地:虎ノ門 |
| 得意先レコード(本田商事) | 取引先名:本田商事/電話:123-4567-8901/都道府県(請求先):神奈川県/市区郡(請求先):横浜市/町名・番地(請求先):西区南幸1丁目 |
| 得意先レコード(鈴木商事) | 取引先名:鈴木商事/電話:234-5678-9012/都道府県(請求先):千葉県/市区郡(請求先):千葉市/町名・番地(請求先):中央区新千葉1丁目1 |
ジオコーディングで緯度経度を設定する
営業マンをジオコーディングする
ジオコーディングのパネルで対象オブジェクトに「リード」を選び、「ジオコーディング開始」を押します。リードの
CustomerCompass__CClatitude__c・CustomerCompass__CClongitude__cに値が入ります。得意先をジオコーディングする
同じパネルで対象オブジェクトを「取引先」に切り替えて、もう一度実行します。取引先側の同じ2項目に値が入ります。
営業マンの基準点を決める
営業マンのリード詳細画面で「デフォルトロケーション設定」を押します。そのレコードの緯度・経度が、距離計算の基準点としてカスタム設定へ書き込まれます。
結果を確認する
営業マンのリストビューと、得意先リストの「営業マンとの距離(km)」を確認します。基準点である営業太郎は0、得意先は鈴木商事が34km、本田商事が25kmになりました。
カスタマーコンパスの画面
タブを開く
カスタマーコンパスのタブを開くと、現在位置を中心にしたGoogle Mapが表示されます。この時点ではマーカーは1つも出ていません。
営業マンのビューを選ぶ
「地図に何を表示しますか?」のドロップダウンから、ビューの区分で
営業マン (map)を選びます。得意先のビューを選ぶ
2段目のドロップダウンで
営業マンより「100km」圏内の得意先リストビュー(map)を選びます。ビューは何段も重ねて表示できます。マーカーの色を指定する
選んだビューごとに色を割り当てます。1段目の営業マンに黄色、2段目の得意先に赤を指定しました。
地図で確認する
黄色マーカーが営業マン、赤色マーカーが得意先として地図上に並びます。虎ノ門・横浜・千葉の位置関係が一目で分かります。
ジオコーディングの上限と費用
⚠️ このアプリのジオコーディングには、アプリ側の上限があります。当時のジオコーディング画面には、パネルの中に「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との連携まで承ります。状況を伺ったうえで、進め方をご提案します。