3CXには「すぐに使える」ものとして、 一般的なCRMシステム用の広範な統合モジュールセットが付属しています 。 ただし、各地域と業界には独自の人気のあるシステムがあり、それぞれにサポートを提供することは不可能です。 そのため、別の方法でテンプレートジェネレーターを作成しました。このテンプレートジェネレーターでは、基本的なプログラミングスキルを持つすべてのユーザーが、選択したCRMのREST APIを使用して統合テンプレートを作成し、PBXサーバーにインストールできます。
統合テンプレートは、認証方法、許可URL、URL、および連絡先データ呼び出し方法を定義します。 このテンプレートは、CRMにアクセスするために3CXサーバーエンジンによって使用されます。
この記事では、3CXテンプレートジェネレーターを使用して、新しいCRMシステムとの統合テンプレートを作成する方法を説明します。 統合を成功させるには、CRMシステムに適切なドキュメントを備えたRESTFul APIが必要であり、BasicまたはoAuth認証モードをサポートする必要があります。
CRM APIクエリ
サーバー側のCRM統合では、3つのタスクのURLリンクとしてAPI呼び出しを使用します。
認証、たとえば:
https://login.salesforce.com/services/oauth2/token
連絡先に一致するものを見つける、たとえば:
[Url]/services/data/v37.0/search/?q=FIND {[Number]} IN PHONE FIELDS RETURNING Contact(Id,FirstName,LastName,AssistantPhone,Fax, HomePhone, MobilePhone, OtherPhone, Phone, Email,AccountId)
連絡先の名前を取得します。 一部のCRMシステムは、会社名と連絡先名の両方に単一のURLを使用します。 この場合、次のように個々のURLを構成する必要があります。
[Url]/services/data/v37.0/query/?q=SELECT name from Account where Id = '[AccountId]'
リクエストパラメータ
パラメーターは、応答を生成するために必要な情報をCRMに送信するために使用されます。 たとえば、CRM Salesforceについては、 ここで説明します 。 テンプレートジェネレータで、次のパラメータを追加します([パラメータ]-[追加]を右クリックします)。
- 名前= ClientId、タイトル=コンシューマキー:
- 名前= ClientSecret、タイトル= Consumer Secret:
- 名前=ユーザー名、タイトル=ユーザー名:
- 名前=パスワード、タイトル=パスワード:
- 名前= SecurityToken、タイトル=セキュリティトークン:
認証
[シナリオ]セクションで、認証スクリプトを作成します(右クリック> [追加])
- ID =認証、リクエストタイプ=投稿
- URL = https://login.salesforce.com/services/oauth2/token
- 応答タイプ= JSON
[ルールグループ]セクションで、新しいルールグループを作成します。 パラメーターを設定します。
- パス= instance_url
- タイプ=任意
[変数]セクションで、変数を追加します。
- キー= Url、パス= instance_url
- キー= AccessToken、パス= access_token
[出力]セクションで、次を作成します。
- タイプ=ベアラ、値= [AccessToken]
[認証]セクションに移動して、次をインストールします。
- タイプ=シナリオ
- シナリオ= Auth(ドロップダウンリストから)。
連絡先の一致検索
[シナリオ]> [追加]> [一致するシナリオ]で、以下を設定します。
- リクエストタイプ=取得
- URL = [Url] /services/data/v37.0/search/?q=FIND {[Number]}電話フィールド内の連絡先(Id、FirstName、LastName、AssistantPhone、Fax、HomePhone、MobilePhone、OtherPhone、Phone、Email 、AccountId)
[ルールグループ]セクションで、パラメーターを使用してルールグループを作成します。
- パス= searchRecords.Id、タイプ= Any
連絡先フィールドを検索する変数とパスを追加します。例:
- キー= ID、パス= searchRecords.Id
- キー=電話、パス= searchRecords.Phone
- キー= OtherPhone、パス= searchRecords.OtherPhone
- キー= MobilePhone、パス= searchRecords.MobilePhone
- キー= HomePhone、パス= searchRecords.HomePhone
- キー=ファックス、パス= searchRecords.Fax
- キー= FirstName、パス= searchRecords.FirstName
- キー= LastName、パス= searchRecords.LastName
- キー=メール、パス= searchRecords.Email
- キー= AcccountId、パス= searchRecords.AccountId
統合テスト
作成されたテンプレートをテンプレートジェネレータで直接確認するには、入力パラメータ値を設定します。 これを行うには、[パラメーター値]セクションに移動し、パラメーターに必要な値を入力します。

(プロパティエディターの)Numberプロパティで、呼び出しがエミュレートされる電話番号(発信者ID)を指定します。

パラメーターを設定した後、「パラメーター値」セクションを右クリックして、「実行」を選択します。 [パラメーター値]セクションの下に新しいセクションが表示され(実行日時によって名前が付けられます)、CRM統合テンプレートの結果が表示されます。 上部の[リクエスト/レスポンス]タブを選択すると、CRMからの連絡先データを含むリクエストとJSONレスポンスを確認できます。

回答はツリー形式で表示され、連絡先がパスresponse.result.Contacts.row.FLにあることがわかります。 これは、名、姓、電話番号などの値が存在する配列です。
必要な値を持つ変数を追加します。 たとえば、連絡先名を追加するには、content = 'Test'ブランチを右クリックし、[変数の追加]を選択します。 変数名をFirstNameに変更します(デフォルト名はcontentです)。

CRMテンプレートツリーで、[シナリオ]セクションに移動し、[出力]セクションを右クリックします。 新しい「回答」を追加し、そのタイプをContactUrlに変更し、取得する必要がある値を設定します(つまり、連絡先名について上で見つけました)。
その後、統合テンプレートを再度実行すると、必要なすべての連絡先フィールドが受信した「回答」([出力]タブ)に正しく入力されていることがわかります。

XMLテンプレートファイルの生成とインストール
テンプレートのXMLファイルを生成(保存)した後、3CXサーバーの適切なフォルダーにコピーし、3CX管理コンソールとシステムサービスを再起動します。
- 3cX for Windows c:\ ProgramData \ 3CX \ Instance1 \ Data \ Http \ Templates \ crm
- 3CX for Linux:/ var / lib / 3cxpbx / Instance1 /データ/ Http /テンプレート/ crm
これで、着信コール番号がCRMに送信され、一致するものが検索されます。 一致が見つかった場合、3CX Webクライアントは連絡先名と、CRMシステムインターフェイスで完全な連絡先カードに切り替えるためのボタンを表示します。

おわりに
結論として、サーバー統合の可能性は徐々に拡大することに注意してください。 そのため、CRMシステム、つまり 連絡先に関連付けられた通話履歴を保存します(Windows用の3CXクライアントを介したクライアントCRM統合では、この機能が利用可能になりました)。 独自の統合の実装について質問がある場合は、開発者向けの特別フォーラムで質問してください 。 また、CRMシステムが3CXによって公式にサポートされるべきであると思われる場合は、 ここに申請書を提出してください 。