CRM 連携ブリッジ
セッションに名前が付くと、その人の CRM レコードに録画のメモが追加されます。新しい連絡先ではなく、既存の連絡先に追加します。
1. 役割を一文で
セッションが識別された瞬間に、送信された識別子を使って CRM 内の人を検索し、録画へのリンクを含むメモを付けます。
それだけです。連絡先も商談も新規作成せず、パイプラインも変更しません。料金ページを訪れるたびに重複が増える CRM は、連携がないより悪いものです。
その人が見つからなければ、何も行いません。 作成してしまうと、ブラウザーのセッションから CRM にレコードを書き込むことになります。ブラウザーのセッションは、誰がお客様なのかを判断する正本ではありません。
2. 照合キー:その人を見つける方法
ここには10分ほど注意を向ける価値があります。CRM 連携が気付かないうちに誤動作しやすい箇所だからです。
訪問者は、サイトから伝えられた情報で把握します。つまり、 MousePlayer.setUserId()、分析ツールから読み戻した distinct ID、またはサーバーサイドの identify 呼び出しです。CRM にも、その人を識別するものがあります。この二つが同じものである必要があります。
| 検索するもの | 変更できるか | |
|---|---|---|
| HubSpot | 連絡先のメールアドレス | いいえ — 検索エンドポイントがこれを前提としているためです |
| Pipedrive | 用語による人物検索。メールアドレスを優先 | いいえ |
| Salesforce | 次のフィールド: お客様が指定、初期設定は Email | はい |
Salesforce だけが尋ねる理由
Salesforce の運用では、メールアドレスがキーになることはあまりありません。お客様の場合も、 Customer_Number__cや請求システムの外部 ID がキーかもしれません。それでもメールアドレスで検索すれば、何も見つからずに成功と報告してしまいます。連携は動いているように見えるため、最も厄介な失敗です。
そのため、フォームでは次を尋ねます: 送信する値を保持しているのは、Contact のどのフィールドですか? API 名を入力し、カスタムフィールドなら末尾の __c も含めてください。
フィールド名は、クエリに渡る前に厳格なパターンで確認します。CRM のフィールド名に使えるのは英字、数字、アンダースコアです。それ以外はエスケープするのではなく、受け付けません。エスケープは微妙に誤る可能性がありますが、拒否にはその問題がないためです。
3. 実行する場合と、意図的に実行しない場合
識別時です。サイトが MousePlayer.setUserId()を呼び出したとき、分析連携ブリッジが PostHog、Mixpanel、Amplitude から distinct ID を読み戻したとき、またはサーバーが identify エンドポイントを呼び出したときに実行します。
ページごとではなく、セッションごとに1回
ログイン後に11ページを閲覧しても、メモは11件ではなく1件です。CRM のタイムラインは、人が読む場所だからです。
識別子なしには実行しません
匿名セッションには照合するものがありません。IP アドレスから推測せず、たまたま同じアドレスを使う人に録画を付けることもありません。
CRM にその人がいなければ実行しません
失敗ではなく、完了として数えます。見込み客がまだ CRM にいないのは普通であり、明日再試行しても変わらないためです。
4. メモの内容とトークンの保管場所
連絡先のタイムラインにメモを一つ追加します。セッションを録画した旨の一文と、リンクです。営業担当者がクリックすると、その人が連絡する前に実際に何をしたかを視聴できます。
認証情報
AES-256-GCM で暗号化して保存します。保存後は再表示しません。入力欄にはアスタリスクを表示し、そのまま保存しても保存済みの値は変わりません。また、タスクを運ぶ内部キューには意図的に含めません。キューは共有される状態であり、キーの置き場所として適さないためです。
Salesforce は三つ、他は二つが必要です
Salesforce は Connected App とリフレッシュトークンで認証するため、コンシューマーキー、シークレット、リフレッシュトークンに加え、インスタンス URL を指定します。HubSpot と Pipedrive は API トークン一つです。三つともお客様自身のアプリを使います。MousePlayer が運用するマーケットプレイスアプリを信頼する必要はありません。
5. Zoho CRM と Freshsales
さらに二つの CRM に対応していますが、設定の手間は対照的です。
| Zoho CRM | Freshsales | |
|---|---|---|
| 指定するもの | データセンター、クライアント ID、クライアントシークレット、リフレッシュトークン | API キーと Freshworks のドメイン |
| 検索するもの | 指定するフィールド。初期設定は Email | 指定するフィールド。初期設定は email |
| メモの追加先 | 連絡先。Note レコードとして追加 | 連絡先。メモとして追加 |
Zoho は六つのデータセンターのいずれかにあります
アカウントの場所は、 com、 eu、 in、 com.au、 jp または com.cnです。キーからは場所を判別できません。選択を誤ると Zoho は INVALID_TOKEN を返します。キーの不備に見えるため、間違った箇所を調べることになります。そのため、この欄はドロップダウンになっています。
Self Client を一度だけ設定
Zoho API コンソールで Self Client を作成し、次の権限の grant トークンを生成します: ZohoCRM.modules.ALL と ZohoSearch.securesearch.READ。一度リフレッシュトークンに交換します。このリフレッシュトークンは期限切れになりません。1時間ごとのアクセストークンはそこから取得し、保存しません。
Zoho は拒否でも200を返します
トークン交換とレコード書き込みのいずれも、HTTP 200 とともに、本文にエラーやレコードごとのステータスを返す場合があります。当社は本文を読み取ります。ステータスコードだけを信頼する連携ブリッジなら、作成されなかったメモを成功と報告してしまいます。
記載されている商標はすべて各所有者に帰属します。MousePlayer とこれらのプロバイダーとの間に取引関係はありません。