ヘルプデスク:Zendesk、Freshdesk、Intercom
自分のアカウントを使って(BYOモデル)、ヘルプデスク(Zendesk、Freshdesk、Intercom)のチケットをCRMに同期します。
ヘルプデスク連携は「あなた自身の」Zendesk、Freshdesk、またはIntercomアカウント(BYOモデル:自分のアカウントを持ち込む)を使用します。あなたのヘルプデスクで作成・更新された各チケットはCRMのチケットになり、依頼者のメールアドレスによって連絡先が自動的にリンクされます。当社側にコストやマージン、仲介は一切ありません。データはあなたのアカウントから直接届きます。
この連携は初期状態では無効です。認証情報を入力して有効化するまで何も起こりません。すべてのシークレット(署名シークレット、クライアントシークレット、APIトークン)はCRM内で暗号化して保存され、二度と表示されません。各プラットフォームには設定 → 連携内に独自のカードがあり、webhook URLは一意(/api/inbound/helpdesk/…)で、CRMはURLトークンによってどのプラットフォームかを識別します。
前提条件
- webhook/トリガーを作成し、署名シークレットを確認できる管理者アクセス権を持つZendesk、Freshdesk、またはIntercomアカウント。
- Zendesk:サブドメイン(.zendesk.comの前の部分)とwebhookの署名シークレット(Admin Center → Apps and integrations → Webhooks)。
- Freshdesk:ドメイン(例:mycompany.freshdesk.com)と自分で定義する共有シークレット。Intercom:あなたのアプリのクライアントシークレット(Developer Hub)。
- Sellioで、設定 → 連携で認証情報を保存して連携を有効化するための管理者アクセス権。
各チケットで起こること
- 外部のチケットは、CRMのチケットオブジェクトのレコード(件名、ステータス、優先度、依頼者のメールアドレス)になります。
- ステータスと優先度はCRMの値に変換されます(例:Zendeskのopen→進行中、solved→解決済み、Freshdeskの2→進行中、4→解決済み、Intercomのopen→進行中、closed→クローズ)。優先度urgent/priorityは緊急/高になります。
- 依頼者のメールアドレスがCRMに既に存在する場合、連絡先がリンクされます。存在しない場合でもチケットは作成されます(リンクなし)。後で関連付けできます。
Zendesk
- 設定 → 連携を開き、「ヘルプデスク(Zendesk)」カードを見つけます。
- サブドメイン(.zendesk.comの前の部分)とwebhookの署名シークレットを入力します。任意で、CRMからチケットを作成したい場合はエージェントのメールアドレスとAPIトークンも入力します。「認証情報を保存」をクリックします。
- 表示された「webhook URL」をコピーします。
- Zendesk Admin Center → Apps and integrations → Webhooksで、そのURLを指すwebhook(JSON)を作成し、チケットの作成/更新時に発火するトリガーに関連付けます。トリガーの本文にはid、subject、status、priority、requester_emailを含める必要があります。Zendeskは署名シークレットで各呼び出しに署名します(ヘッダーX-Zendesk-Webhook-Signature)。
- CRMに戻り、「有効化」をクリックします。
Freshdesk
Freshdeskはネイティブにはwebhookに署名しません。代わりに共有シークレットを定義し、自動化がX-Freshdesk-Secretヘッダーでそれを送信するように設定します。CRMは各呼び出しでこのヘッダーを検証します。
- CRMで「ヘルプデスク(Freshdesk)」カードを見つけます。
- ドメイン(例:mycompany.freshdesk.com)とwebhookシークレット(任意の文字列)を入力します。任意で、CRMからチケットを作成したい場合はAPIキーも入力します。「認証情報を保存」をクリックします。
- 「webhook URL」をコピーします。
- Freshdesk → Admin → Automationsで、チケットの作成/更新時に発火し、「Trigger webhook」アクション(POST、JSON)でそのURLへ送信するルールを作成します。その際、上記のシークレットを含むX-Freshdesk-Secretヘッダーを含めます。本文にはid、subject、status、priority、emailを含める必要があります。
- CRMに戻り、「有効化」をクリックします。
Intercom
- CRMで「ヘルプデスク(Intercom)」カードを見つけます。
- あなたのIntercomアプリのクライアントシークレット(Developer Hub → あなたのアプリ → Basic information)を入力します。任意で、CRMから会話を作成したい場合はアクセストークンも入力します。「認証情報を保存」をクリックします。
- 「webhook URL」をコピーします。
- Intercom Developer Hub → あなたのアプリ → Webhooksで、通知URLをそのURLに設定し、会話関連のトピック(例:conversation.user.created、conversation.user.replied)を購読します。Intercomはクライアントシークレットで各呼び出しに署名します(ヘッダーX-Hub-Signature、HMAC-SHA1)。
- CRMに戻り、「有効化」をクリックします。
CRMからチケットを作成する(アウトバウンド、任意)
アウトバウンドの認証情報(Zendesk:メールアドレス+APIトークン、Freshdesk:APIキー、Intercom:アクセストークン)を入力すると、CRMからあなたのヘルプデスクにチケットを作成することもできます。これはベストエフォートの機能です。API呼び出しが失敗してもCRMのフローは壊れず、エラーが報告されるだけです。作成されたチケットの表示先:CRMのチケットオブジェクト内、および依頼者が既に連絡先である場合はそれにリンクされます。
webhook URLとシークレットは機密情報として扱ってください。CRMは各呼び出しの署名を検証します(Zendesk/IntercomはHMAC、Freshdeskは共有シークレットで)。無効な呼び出しは拒否されます。検証用シークレットを入力せずに有効化しようとすると、連携は無効のままとなり、すべてが整うまで何も同期されません。
テスト方法
- Zendesk:Admin Center → Apps and integrations → Webhooksでwebhookのテストボタンを使用するか、トリガーが発火する実際のチケットを作成/更新します。
- Freshdesk:チケットを作成/更新して自動化ルールをトリガーします。Intercom:購読しているトピックに一致するテスト会話を生成します。
- CRMでチケットオブジェクトを開き、件名/ステータス/優先度とともにチケットが表示され、(依頼者のメールアドレスが既に存在する場合)連絡先にリンクされていることを確認します。
- 同じイベントを再送し、チケットが(重複せず)更新されることを確認します(provider:idによる重複排除)。
トラブルシューティング
- Zendesk:無効な署名:CRMに保存された署名シークレットがwebhookのもの(ヘッダーX-Zendesk-Webhook-Signature)と異なります。Admin Centerでwebhookのシークレットをコピーし直して再入力してください。
- Freshdesk:呼び出しが拒否される:自動化はX-Freshdesk-Secretヘッダーで、CRMに保存されたシークレットと「完全に一致」する値を送信する必要があります(Freshdeskはネイティブには署名しません)。
- Intercom:無効な署名:アプリのクライアントシークレット(Developer Hub → Basic information)を確認してください。署名はX-Hub-SignatureヘッダーのHMAC-SHA1です。
- 同期されない:トリガー/webhookの本文に期待されるフィールド(id、subject、status、priority、依頼者のメールアドレス)が含まれ、連携が有効化されていることを確認してください。
- 連絡先のないチケット:リンクは依頼者のメールアドレスで行われます。まだ連絡先でない場合、チケットはリンクなしで作成されます。URLで404が出る場合は、連携が無効化されているかトークンが変更されています。