| 目的 |
BIZTELサーバと外部CRMとのサーバ連携を行う機能となります。 外部CRMの1つであるSalesforceとの連携について、コールアクションやAPI連携IVRの機能を用いて設定した場合の動作事例を紹介します。 |
|---|---|
| 対象プラン |
|
| 用語 |
【外部CRM】 【WebAPI】 インターネットを経由した標準的なWeb技術を利用した各サービス(BIZTELでは外部CRM)と連携するためのCRM側のインターフェースとなります。 各CRMごとにWebAPIで用いるパラメーターは異なっており、それぞれのCRMサービスで仕様を公開しています。 |
| ポイント |
・本事例の設定例を行うには「コールアクション連携」または「API連携IVR」オプションの契約が必須です。 ・OAuth認証を用いてWebAPIへ連携する場合は、「オプション」 > 「OAuthアカウント」の事前登録が必要となります。 ・コールアクション、IVR-APIをSalesforceで利用するにはOAuth認証が必須となります。 ※オプション > Salesforceアカウント設定はSalesforce履歴連携メニュー用となり、コールアクションには対応しておりません。 ・本事例の設定を行うためには、コールアクション、IVR-API、リアルタイム音声合成のオプション契約が必要です。 ・Salesforce側の設定は一例となりますので、設定内容・項目の詳細はセールスフォース・ジャパン社へお問い合わせください。 |
・本マニュアルはHTML/PHP(PCRE正規表現等)/WebAPIの基礎的な技術知識がある、WEB系開発者様やCRMベンダー様を対象にしております。
目次
項目名をクリックいただくことで該当の項目に移動できます。
1.事前準備
BIZTELとSalesforceを連携する前にOAuthアカウントの設定を行います。
1.1 参考ドキュメント
本手順はSalesforceのAPIを利用した設定となります。Salesforce API については以下を参照ください。
REST API 開発者ガイド
SOAP API 開発者ガイド
1.2 SalesforceのOAuth認証の設定を行う
Salesforce上で、BIZTELと連携するためのOAuth認証の設定を行います。
手順1.Salesforceにて、「設定」>「アプリケーション」>「外部クライアントアプリケーションマネージャー」をクリックします。
手順2.「新規外部クライアントアプリケーション」をクリックします。
手順3.以下の内容に従い入力し「作成」をクリックします。
※指定以外の項目は変更不要です。
〇基本情報
| 外部クライアントアプリケーション名 | 任意の内容を入力ください。 |
|---|---|
| API参照名 | 任意の内容を入力ください。 ※外部クライアントアプリケーション名を入力すると自動反映されます。 |
| 取引先責任者メール | 任意のメールアドレスを入力ください。 |
| 配信状態 | ローカルを選択します。 |
〇API(OAuthの設定の有効化)
| OAuthの有効化 | チェックを入れる |
|---|---|
| アプリケーション設定 |
コールバックURL https://sXXXXXXXXXXXX.u.biztel.jp:8000/oauth_client/callback ※赤字部分はご利用中のBIZTEL管理画面のURLに置き換えてください。 OAuth範囲設定 以下を選択したOAuth範囲に設定します。 ・フルアクセス(full) ・いつでも要求を実行(refresh_token,offline_access) |
| セキュリティ |
Webサーバフローの秘密が必要 チェックを入れる 更新トークンフローの秘密が必要 チェックを外す サポートされる認証フローに Proof Key for Code Exchange (PKCE) 拡張を要求 チェックを外す |
手順4.作成後の画面で「設定」をクリックします。
手順5.OAuth設定内にある「コンシューマー鍵と秘密」をクリックします。
※確認コードを求められる場合、ログインしているアカウントのメールアドレスに受信する確認コードを入力してください。
手順6.表示される「コンシューマー鍵」と「コンシューマーの秘密」をコピーしてテキストなどに控えます。
※BIZTEL管理画面で行うOAuthアカウントの設定に利用してます。
手順7.外部クライアントアプリケーションを管理の画面から「ポリシー」内の「編集」をクリックします。
手順8.OAuthポリシーを展開し、「許可されているユーザー」を「管理者が承認したユーザは事前承認済み」に変更します。
変更すると、以下のようなポップアップが表示されますが、「OK」をクリックします。
手順9.アプリケーションポリシーを展開し、「選択可能なプロファイル」からお客様のSalesforceの利用方法に沿ったプロファイルを選択済みプロファイルへ設定し、保存します。
※下記図ではシステム管理者と標準ユーザーを選択していますが、お客様のご利用方法に従ってプロファイルを選択ください。
以上でSalesforceのOAuth認証の設定は完了です。
1.3 BIZTELのOAuth認証の設定を行う
手順1.「連携オプション」>「OAuthアカウント登録」をクリック。
手順2.「新規」をクリック。
手順3.以下の内容に従い入力し、保存します。
| 名称 | Salesforce連携など任意の内容で登録ください。 |
|---|---|
| クライアントID | 手順「1.2 SalesforceのOAuth認証の設定を行う」で確認したコンシューマー鍵を入力します。 |
| クライアント・シークレット | 手順「1.2 SalesforceのOAuth認証の設定を行う」で確認したコンシューマーの秘密を入力します。 |
| リダイレクトURL | ご利用のBIZTELサーバに従い自動反映されます。 |
| 認可URL | https://login.salesforce.com/services/oauth2/authorize |
| 認可コード フロー scope |
入力不要 |
|
認可コード フロー パラメータ
|
prompt=login consent |
アクセストークンURL |
https://login.salesforce.com/services/oauth2/token |
|
リフレッシュトークン
フロー scope
|
入力不要 |
|
トークンリクエスト・パラメータ
|
入力不要 |
|
リフレッシュトークン返却確認
|
確認するを選択 |
| 認証ヘッダ・テンプレート | 入力不要 |
| メモ | 任意でご利用ください(空欄可) |
手順4.入力完了後、画面下部に表示される「トークン取得」ボタンからトークン取得を実施します。
手順5.トークン取得に成功することを確認します。
※アクセストークン取得情報が「取得済み」になることを確認ください。
以上でOAuthアカウントの登録は完了です。
2.コールアクションの設定例
本項では、コールセンターでの着信時に「顧客情報を検索」及び「チケットを作成」し、切断時に「リクエストID(通話に紐づく一意のID)を付与」するケースを紹介します。
・イメージ図
赤線 :BIZTELからのリクエスト
ピンク線:BIZTELへのレスポンス
2.1 コールアクションの作成
手順1.「連携オプション」>「コールアクション連携」をクリック。
手順2.「新規」をクリック。
手順3.「コールアクション名」を入力し、保存。
※ステータスは「有効」のままで問題ありません。
2.2 コールアクションのAPI連携設定
手順1.作成したコールアクションの「API連携」をクリック。
手順2.「新規」をクリックし、以下の設定例3つをそれぞれ作成し、保存。
※ご利用バージョンにより入力項目に差分がございます。表示されている項目を入力ください。
コールセンター着信イベント(アクション1)の設定例
コールセンターに着信した際に発信者の電話番号を条件として、Salesforce上で取引先席に者を検索し、取引先責任者IDを取得します。
| 項目 | 入力値 |
|---|---|
| イベント種別 | コールセンターキュー |
| 実行順 | 1 |
| 判定用コード | なし |
| 判定用パターン | なし |
| API連携種別 | OAuthトークン取得 |
| OAuthアカウント | 「1.3 BIZTELのOAuth認証の設定を行う」で登録したアカウントを選択 |
| URL | {OAUTH_INSTANCE_URL}/services/data/v45.0/query?q= SELECT+Id,Name FROM Contact WHERE Phone ='{TEL}' |
| メソッド | GET |
| リクエストヘッダ | なし |
| リクエストボディ | なし |
| タイムアウト判定(秒) | 10 ※任意 |
| 変数抽出パターン |
/"Id":"(?P<CONTACT_ID>.*)",/ ※取引先責任者IDを変数CONTACT_IDに格納 |
| メモ | ご自由に入力ください。 |
コールセンター着信イベント(アクション2)の設定例
アクション1で取得した取引先責任者IDを指定して、新規ケースを作成します。
| 項目 | 入力値 |
|---|---|
| イベント種別 | コールセンターキュー |
| 実行順 | 2 |
| 判定用コード | なし |
| 判定用パターン | なし |
| API連携種別 | OAuth |
| OAuthアカウント | OAuthアカウント登録画面にて登録した情報 |
| URL | {OAUTH_INSTANCE_URL}/services/data/v45.0/sobject s/case/ |
| メソッド | POST |
| リクエストヘッダ | Content-Type: application/json |
| リクエストボディ | {"Origin": "Phone","ContactId":"{RESPONSE_CONTACT_ID}"} |
| タイムアウト判定(秒) | 10 ※任意 |
| 変数抽出パターン |
/"id":"(?P<CASE_ID>.*)",/ ※ケース ID を変数 CASE_ID に格納 |
| メモ | ご自由に入力ください。 |
上記のコールアクションを設定すると、Salesforce上に取引先責任者の情報が紐づいたケースが作成されます。
コールセンター切断イベント(アクション1)の設定例
例2で作成したSalesforceのケースを更新するコールアクション設定を行います。
本処理は実行されると、Salesforce上に作成されたケースに対して録音URLを記録します。
記録されたURLはクリックすることで通話録音を作成可能です。
| 項目 | 入力値 |
|---|---|
| イベント種別 | コールセンター切断 |
| 実行順 | 1 |
| 判定用コード | なし |
| 判定用パターン | なし |
| API連携種別 | OAuth |
| OAuthアカウント | OAuthアカウント登録画面にて登録した情報 |
| URL | {OAUTH_INSTANCE_URL}/services/data/v45.0/sobjects/cas e/{RESPONSE_CASE_ID} |
| メソッド | PATCH |
| リクエストヘッダ | Content-Type: application/json |
| リクエストボディ | {"Origin": "Phone","Subject":"コールセンターへの着信です ","ContactId":"{RESPONSE_CONTACT_ID}","Description": "https://sXXXXXXXXXXXX.u.biztel.jp:8000/monitor_link/{ID}"} |
| タイムアウト判定(秒) | 10 ※任意 |
| 変数抽出パターン | なし |
| メモ | ご自由に入力ください。 |
3.API連携IVRの設定例
本項では、IVR着信時にお客様の名前を含む音声を流した後にコールセンターへ転送する設定例を紹介します。
※IVR-APIの機能を用いて作成します。標準のIVRのようにプッシュ操作の音声は再生しません。
・イメージ図
3.1 API用のIVRを作成する
手順1.「コールセンター > IVR」をクリック。
手順2.「新規」をクリック。
手順3.必要事項を入力し、保存。
※この際、「API連携を利用する」のチェックは必須です。登録後の変更は出来ませんので誤って作成した場合は削除して再作成が必要です。
| IVR名 | 任意の内容を入力します。 |
|---|---|
| 内線番号 | 7000 ~ 7999 の空き番号で任意の内容を入力します。 |
| ダイヤルイン番号 | 利用する外線番号を選択します。 |
| API連携を利用する |
「設定する」にチェックを入れます。 ※「設定しない」を選択して保存してしまうと設定変更ができません。 |
| 受付入力種別 | 入力なしを選択します。 |
| メモ | 任意の内容を入力します。(空欄可) |
3.2 API連携の設定を登録する
手順1.「API連携設定」をクリックし、「編集」をクリックします。
手順2.以下表の内容に従い値を入力後、保存します。
| 項目 | 入力値 |
|---|---|
| API連携種別 | OAuthトークン取得を選択 |
| OAuthアカウント | 「1.3 BIZTELのOAuth認証の設定を行う」で登録したアカウントを選択 |
| URL | {OAUTH_INSTANCE_URL}/services/data/v45.0/search ?q=FIND {{TEL}} IN PHONE FIELDS RETURNING Account(Id, Name, Phone) |
| メソッド | GET |
| リクエストヘッダ | 不要 |
| リクエストボディ | 不要 |
| タイムアウト時間(秒) | 5 |
| API連携前ガイダンス | 選択なし |
| リクエストエラー時の動作 | IVR終了時の着信ルールに従う |
| 入力値チェックパターン | なし |
| エラー判定パターン | 不要 |
| リトライ回数 | 0 |
| リトライ間隔(秒) | 1 |
3.3 APIのレスポンス設定を行う
手順1.連携対象のIVRメニューから「APIレスポンス設定」タブ内の「新規」をクリックします。
手順2.以下表の内容に従い値を入力後、保存します。
優先順位1:発信元の電話番号に該当する取引先のデータが存在しない場合
本設定は、発信元の電話番号がSalesforceの取引先上に存在しない場合、コールセンター等の転送先に名前の読み上げは行わずに転送する設定です。
| 項目 | 入力値 |
|---|---|
| 優先順位 | 1 |
| レスポンスコード | 200 |
| レスポンスパターン | /"searchRecords":¥[¥]/ |
| 変数抽出パターン | なし |
| 抽出後の処理 | 処理なし |
| ガイダンス形式 | リアルタイム音声合成 |
| 音声合成テキスト | 例) お電話ありがとうございます。 只今、オペレータへお繋ぎしておりますので、しばらくお待ちください。 |
| 業務ラベル | 選択なし ※必要に応じて設定ください。 |
| 選択時の動作 | 転送 |
| 転送先 | 転送先のコールセンターの内線番号を選択 |
| メモ | 任意の内容で入力ください(空欄可) |
優先順位2:発信元の電話番号に該当する取引先のデータが存在する場合
本設定は、発信元の電話番号がSalesforceの取引先上に存在する場合、コールセンター等の転送先に名前の読み上げを行い転送する設定です。
本設定が実行されると、レスポンスボディから抽出した変数を音声合成テキストとして「〇〇様、お電話ありがとうございます。」のように読み上げされた後、転送されます。
| 項目 | 入力値 |
|---|---|
| 優先順位 | 2 |
| レスポンスコード | 200 |
| レスポンスパターン | なし |
| 変数抽出パターン | /"Name":"(?P<NAME>.*)",/ ※会社名を変数に格納します。 |
| 処理種別 | 処理なし |
| ガイダンス形式 | リアルタイム音声合成 |
| 音声合成テキスト |
例) ※{CODE1}にSalesforce上に登録されている名前が反映されます。 |
| 業務ラベル | 選択なし |
| 選択時の動作 | 転送 |
| 転送先 | 転送先のコールセンターの内線番号を選択 |
4.レスポンスの例
コールセンター着信時に発信元番号を元に取引先責任者を検索した際のレスポンス例
{
"totalSize": 1,
"done": true,
"records": [
{
"attributes": {
"type": "Contact",
"url": "/services/data/v45.0/sobjects/Contact/0032v00002xVBBOAA4"
},
"Id": "0032v00002xVBBOAA4",
"Name": "田中 太郎"
}
]
}取得した取引先責任者IDを指定してSalesforce上にケース作成した際のレスポンス例
{
"id": "5002v00002mPxwUAAS",
"success": true,
"errors": []
}顧客の発信電話番号を条件として Salesforce の取引先を検索した際のレスポンス例
{
"totalSize": 1,
"done": true,
"records": [
{
"attributes": {
"type": "Contact",
"url": "/services/data/v45.0/sobjects/Contact/0032v00002xVBBOAA4"
},
"Id": "0032v00002xVBBOAA4",
"Name": "田中 太郎"
}
]
}発信元電話番号を元にSalesforceの取引先責任者を検索した際のレスポンス例
{
"searchRecords": [
{
"attributes": {
"type": "Account",
"url": "/services/data/v45.0/sobjects/Account/0012v00002uhRmWAAU"
},
"Id": "0012v00002uhRmWAAU",
"Name": "CDF 株式会社",
"Phone": "07075373713"
}
]
}