
MiiTel × Salesforce連携を無償ライセンスで構築する — 権限セット設定のコツ
はじめに
インサイドセールス用にCTIツールMiiTelを導入し、Salesforceと連携させた話です。連携にはSalesforce側に「連携専用のユーザー」を1つ用意するのですが、このユーザーに割り当てるライセンスの選び方で、年間のコスト感がけっこう変わります。
今回は無償の連携専用ライセンスで構築したものの、設定にちょっとコツが要ったので、その経緯と注意点をまとめます。
関連記事: CTIツールの選定についてはこちら → インサイドセールス用のCTIツール選定 — Salesforce管理者目線でのポイント MiiTelかAmptalkか
<
連携用ユーザーのライセンスの選択肢
Salesforceの連携用ユーザーには、大きく分けて2種類のライセンスを当てられます。
通常の有償ライセンス(Sales Cloudなど):1ユーザーあたり約年間20万円。人が画面を操作する前提のライセンスで機能はフルに使えるので、MiiTel連携でも問題なく動く。
API Integrationライセンス(無償):外部ツールとAPI経由でデータをやり取りする用途に限定された無償ライセンス。人が画面にログインして使うことはできないが、MiiTelとの連携はAPI経由なのでこれで十分動く。
連携用ユーザーは人が画面を使うわけではないので、後者で済ませられればそれに越したことはありません。今回はAPI Integrationライセンスを選びました。
ただ、いざやってみると設定の段階で予想外につまずきました。
やってみたらエラーが出た
無償ライセンスで連携設定を済ませて動かしてみたら、こんなエラーが出ました。
INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY
ざっくり訳すと「他人名義の活動履歴を作る権限がないよ」という意味です。
MiiTelとの連携では、通話した活動履歴を実際にコールした営業担当者の名義で残したい。連携用のシステムユーザー名義で全部記録されると、誰の活動か分からなくなってしまうので。ところが、無償ライセンスだと「他人名義の活動を代理で作る」ための権限を、通常通りの方法ではうまく付けられませんでした。
何が問題だったか
Salesforceでは「権限セット」という単位でユーザーに権限を付与します。この権限セットにはライセンスの種類を指定するフィールドがあり、指定するライセンスによって付与できる権限の範囲が変わる、という独特の仕様があります。
API Integrationライセンスを指定した権限セットだと、活動履歴まわりの細かい編集権限が付けられない
ライセンス指定なしの権限セットだと、今度は「すべてのレコードを編集」のような広い権限が付けられない
つまり、1つの権限セットでは必要な権限を全部揃えられないという状態でした。公式ドキュメントにもはっきり書かれていない挙動で、実際に設定画面を開いて初めて気づくパターンです。
解決策 — 権限セットを2つ組み合わせる
シンプルに、権限セットを2つ作って両方を連携ユーザーに割り当てるだけです。
権限セットA(API Integrationライセンス指定):取引先・取引先責任者・リードへの広い編集権限を付与
権限セットB(ライセンス指定なし):活動履歴(ToDo)の項目への編集権限を付与
この2つを組み合わせると、無償ライセンスのまま「他人名義の活動履歴を作る」ことができるようになりました。
なぜこれで動くか: 権限セットAで親レコード(取引先など)を編集できる → 活動のOWD(共有設定)が「親レコードに連動」なので活動も編集できる → 権限セットBでToDo項目にも書き込める、という連鎖です。