この記事の内容
dropdown icon
概要
    Webex Contact Center for Salesforce Service Cloud Voice
    前提条件と制限
    ライセンス
    オムニチャネルを有効にする
    制限事項
dropdown icon
要件
    アイドル コード
dropdown icon
連携
    インストール
    Webex Contact Center for Service Cloud Voice のインストールと設定
    プレゼンス ステータスをエージェントに割り当てる
dropdown icon
構成
    コンタクト センター
    コンタクトセンターをインポート
    コンタクトセンターの設定
dropdown icon
カスタマイズ
    Webex Contact Center インテグレーション用の外部クライアント アプリ
    音声通話記録を作成するための Webex Contact Center 構成とスクリプト
ユーザー機能により要求される Salesforce 権限
dropdown icon
サービス Cloud Voice API ラッパー
    前提条件
    サービス クラウド音声 API ラッパーの使用
    Access_Token を取得する
    リクエストを実行
    音声コールの作成 (セクション)
    音声通話を更新
    Omni-flow を実行
    ルーティングをクリア
dropdown icon
電話番号の翻訳
    翻訳ルールの作成
dropdown icon
VoiceCall ページの設定
    VoiceCall レコードページを設定する
    後処理理由コンポーネントを表示
    通話録音プレーヤーの表示
dropdown icon
Webex 管理者
    フローの構成
Webex Contact Center と Salesforce Service Cloud Voice を統合する
list-menuこの記事の内容
list-menuフィードバックがある場合

Webex Contact Center for Salesforce Service Cloud Voice は、Cisco の堅牢な CCaaS (Contact Center as a Service) と Salesforce の CRM を統合します。これにより、企業は Salesforce インターフェイス内のオムニチャネルの顧客との対話 (音声、デジタル) を管理できます。仮想エージェント、文字起こし、インテリジェントルーティングに Webex AI を使用して、エージェントを「スーパーエージェント」に変換し、顧客エクスペリエンスを向上させます。

概要

Webex Contact Center for Salesforce Service Cloud Voice

Webex Contact Center for Service Cloud Voice は、Webex Contact Center のパワーを Salesforce Service Cloud Voice オムニチャネル エージェント コンソールに持ち込む統合ソリューションです。

インストールを続行する前に、次のセクションを参照してください。

を選択して、Salesforce Service Cloud Voice の要件と制限について学び、Salesforce 組織が Webex Contact Center for Service Cloud Voice パッケージを有効にしてインストールする準備ができていることを確認してください。

前提条件と制限

前提条件(サブトピック)

ユーザ インターフェイス:Service Cloud Voice は、Salesforce Lightning Experience でのみ利用できます。

Service Cloud Voice はこれらのエディションで利用できます。

  • エンタープライズ
  • 無制限
  • 開発者

ライセンス

  • 顧客は、Webex Contact Center の Flex 3 Standard または Premium ライセンスの他に、ログインしたエージェントごとに新しい A-SF-VOICE アドオン ライセンスを購入する必要があります。詳細については、フレックス 3 注文ガイドを参照してください。

  • パートナー テレフォニー向け Salesforce Voice

音声をオンにする前に、組織の前提条件サービスをセットアップする必要があります。

  • [会社情報] > [権限セット] のライセンス に移動します。
    • Service Cloud Voice User (パートナー テレフォニー)を確認してください。

      すべてのデベロッパー エディションには、テスト可能な 5 個のパートナー テレフォニー ライセンスが付属するようになりました。

  • または、Salesforce のセットアップに移動して左のサイドバーで "voice" を検索することで、これを確認できます。

    • 「パートナー テレフォニー コンタクト センター」 が表示される場合、SCV ライセンスがあります。
    • [パートナー テレフォニー コンタクト センター] オプションが表示されない場合、以下の手順に従って「[サービス クラウド音声を有効にする]」を選択します。
      • Salesforce のセットアップに進み、[[パートナー テレフォニーのセットアップ]] を選択し、ボタンを [[サービス クラウド音声を有効にする] に切り替えます。

      • オムニ チャネルを有効にして、エージェントが通話の受発信できるようにします。

オムニチャネルを有効にする

Omni-Channel が組織ですでに有効になっている場合は、このステップをスキップしてください。

  1. [セットアップ] から、 Omni-Channel Settings [クイック検索] ボックスで、 Omni-Channel Settings.

  2. 選択: Enable Omni-Channel.
  3. オプション Save.

制限

  • 音声は、Lightning Experience でのみ使用できます。
  • 音声は、アドオン ライセンスとして、サービス クラウドとセールス クラウドでサポートされています。
  • 音声は Salesforce Mobile または iPad Safari ではサポートされていません。
  • 音声は Google Chrome、Microsoft Edge (Chromium) および Mozilla Firefox ウェブブラウザでのみサポートされています。シングルサインオン (SSO) を許可するには、クッキーを有効にする必要があります。
  • 標準ナビゲーションはサポートされていません。
  • テレフォニーは高度に規制されているため、お住まいの地域での音声の可用性について、Salesforce 担当者に確認してください。

要件

アイドル コード

アイドル コードの検索

アイドル コードを設定するには、次の手順を実行します。
1

管理ポータルにログインします。

2

次のとおり、移動します Contact Center > DESKTOP EXPERIENCE > Idle/Wrap-up Codes.

3

アイドル コードが表示されていることを確認してください。そうではない場合は、フィルター ドロップダウン ボタンをクリックして、 Idle Code ページの上部にあります。

4

アイドル コードをクリックして、詳細ビューを開きます。アイドル コード ID を確認できます。

この ID はコピーして、プレゼンス状態マッピング の設定に使用できます。ID の 1 つは、デフォルトの Cisco 受信不可の理由 として使用する必要があります。

統合

のインストール

インストールを続行する前に、事前要件と制限 セクションを参照して、Salesforce Service Cloud の事前要件と制限について確認してください。

Webex Contact Center for Service Cloud Voice のインストールと設定

Service Cloud Voice for Partner Telephony ライセンスを取得すると、パートナーテレフォニーのセットアップ ページが [セットアップ] メニューに表示されます。

詳細については、Salesforce の公式リファレンス ( ダイレクト リンク) を参照してください。

1

[セットアップ] から、 Partner Telephony Setup サイト変換ツールから Quick Find ボックスで、 Partner Telephony Setup.

2

有効にする Turn on Voice with Partner Telephony

メッセージは、 Partner Telephony Contact Centers ページが Setup メニュー。

Salesforce サンドボックスでパッケージを展開する場合は、 login.salesforce.com インストールリンクの一部 test.salesforce.com.新しいサンドボックスコピーを作成するたびに、このパッケージはサンドボックス組織から削除されることに注意してください。

パッケージをインストール

パッケージをインストールするには:

1

パッケージの指定されたリンクを開いて、インストールを開始します。

2

パッケージをインストールする必要がある Salesforce 組織にログインします。

3

インストール ウィザードで、セキュリティオプション [管理者のみにインストール] (1) を選択し、[インストール] (2) をクリックします。

Webex Contact Center for Service Cloud Voice パッケージに付随するオブジェクトとコンポーネントに対して特定の権限を取得するユーザーを決定します。さらに、これらの権限を付与します。Webex Contact Center for Service Cloud Voice パッケージに付随する権限セットは、このプロセスを支援します。

パッケージインストールウィザード - ウェルカム画面が表示されます。

インストール パッケージは、Salesforce AppExchange から直接アクセスすることはできません。顧客は AppExchange リストの [今すぐ取得] ボタンを使用する必要があります。このボタンは連絡先フォームを開き、 インストール リンク と Cisco のアクティベーションをリクエストします。

4

以下の権限セットを少なくとも 1 人のユーザーに付与して、コンタクトセンターを作成できるようにします。

Contact Center Admin (Partner Telephony).
5

[セットアップ] | [ユーザー] | [ユーザー] をクリックします。

6

検索と選択したユーザーを選択します。

7

[権限セット割り当て] までスクロールします。

8

次をクリックします: Edit Assignments

9

Contact Center 管理者 の場合: Contact Center 管理 (パートナー テレフォニー) 権限セットを割り当てます。

10

Contact Center エージェント の場合:Contact Center エージェント (パートナー テレフォニー) 権限セットと Webex Contact Center SCV エージェント権限セットを割り当てます。

次を選択することは推奨されません: Install for All Users オプションを使用すると、カスタム ユーザ プロファイルを使用するユーザに対して、パッケージコンポーネントとオブジェクトのすべての権限(読み取り、作成、編集、削除)が許可されます。

11

Service Cloud Voice の Connects をユーザーが使用できるようにパッケージ ライセンスを割り当てます。

  • [セットアップ] | アプリ | パッケージ | インストール済みのパッケージ。
  • 最近インストールされた Webex Contact Center for Service Cloud Voice の横にある [ライセンスを管理] をクリックします。
  • [ユーザーの追加] をクリックします。
  • ライセンス ミュートを割り当てるユーザーを選択し、[追加]をクリックします。

12

または、[セットアップ] | [ユーザー] | [ユーザー] をクリックすることもできます。

13

ユーザーを検索して選択します。

14

下にスクロールして Managed Packages.

15

オプション Assign Licenses.

16

選択 Webex Contact Center for Service Cloud Voice リスト内のパッケージ。

17

オプション Add.

18

プレゼンス ステータス を作成して、異なるステータスに割り当てられているサービス チャネルを定義します。エージェントは、受け取る権利がある仕事の種類に応じて、さまざまなステータスで Omni チャネルにサインインできます。

19

[セットアップ] から、 Presence Statuses [クイック検索] ボックスで、 Presence Statuses.

20

オプション New.「オンライン」と「話中」のステータスを少なくとも 1 つ作成します。

  • RONA 専用のビジー プレゼンス ステータスを作成します。プレゼンス設定を使用して、CTI 側または Salesforce 内で RONA が発生するたびに、オムニチャネル ステータスを指定されたステータスに自動的に設定できます。
  • 以下内で RONA ステータスを設定する場合: Presence Configuration、デフォルトのプレゼンス設定を使用して しないようにしてください。現在、Webex Contact Center for Service Cloud Voice は、デフォルト設定内で設定された RONA ステータスを取得しません。

プレゼンス ステータスをエージェントに割り当てる

1

[セットアップ(Setup)] から [クイック検索(Quick Find)] ボックスに [権限セット(Permission Sets)] を入力し、[権限セット(Permission Sets)] を選択します。

2

クリックして開く Partner Telephony Permission Set.

3

オプション Service Presence Statuses Access.

4

オプション Edit.

5

[就業時間] Available Service Presences リスト、以前に作成したプレゼンス ステータスを選択して、 Add 権限セットに関連付けます。この権限セットに割り当てられているエージェントは、利用可能になった任意のプレゼンス ステータスでオムニ チャネルにサインインできます。

6

オプション Save.

7

オプション Manage Assignments を選択します。次に、 Add Assignment 右上隅で目的のユーザーを選択し、 Next、次を選択します Expiration Option を割り当てられたユーザー (オプション) の順にクリックし、 Assign.

サービス クラウド音声は、外部ドメインを使用して、VoiceCall レコードを操作します。次の URL をセットアップの「リモートサイト設定」に追加する必要があります (ここをクリックして、公式ドキュメントを開きます)。

:インスタンス URL の検索方法。

8

ログイン後、ブラウザのアドレスバーにある URL を確認します。インスタンス URL は、".my.salesforce.com" または ".salesforce.com" または ." lightning.force.com" の前の部分です。たとえば、URL が https://orgfarm-54a38e30ad-dev-ed.develop.my.salesforce-setup.com/ の場合、「orgfarm-54a38e30ad-dev-ed.develop」がインスタンス URL になります。

発信元組織の URL: https://cisco.lightning.force.com

:追加する URL:

  • https://cisco.my.salesforce-scrt.com

9

エージェントが Service Cloud Voice を使用するには、Lightning Service Console アプリで Omni チャネル ユーティリティ項目が必要です。

  • [セットアップ] から、[クイック検索] ボックスにアプリを入力し、[App Manager] を選択します。
  • サービス コンソール アプリまたは使用するアプリの横にあるドロップダウン リストをクリックし、[編集] をクリックします。
  • [アプリ設定] で、[ユーティリティアイテム (デスクトップのみ)] をクリックします。
  • [ユーティリティ項目の追加] をクリックします。
  • モーダル ウィンドウで、オムニ チャネルを検索します。
  • [Omni-Channel] をクリックします。
  • [保存] をクリックして、App Manager を終了します。

Salesforce の公式参照は、 Let's Do This Salesforce ヘルプ ポータルの [パートナー テレフォニーを使用したサービス クラウド音声のエージェント エクスペリエンスの設定] ページを開くボタン (ダイレクト リンク)。

10

[セットアップ] から、 Partner Telephony Setup [クイック検索] ボックスで、 Partner Telephony Setup.

11

セクションまでスクロール 5 More Voice Settings.

12

Lightning Experience でソフトフォンを使用している間に、ヘッダーが無効になっている Visualforce ページのクリックジャック保護を有効にする には、Salesforce インスタンス URL に加えて、ソフトフォンとカスタム ツールバーがロードされるドメインを信頼できるドメインとして追加する必要があります。

これらの設定と信頼できるドメインのリストは、[セットアップ] | [セキュリティ] | [セッション設定] にあります。

正しい Visualforce ドメインを取得するには、[セットアップ] | [カスタム コード] | [Visualforce ページ] に移動し、[プレビュー] ボタンをクリックします。 CiscoScvMainWxCC.Salesforce 組織の設定によっては、Salesforce が自動的に別の URL にリダイレクトされる場合があります。URL をコピーして、 Trusted Domains for Inline Frames IFrame タイプとして「Visualforce Pages」を選択するリスト。

:MyDomainName--cisco_wxcc_scv.vf.force.com

Salesforce インスタンスのドメインを取得するには、ブラウザの URL バーに表示されている URL をコピーして、 Trusted Domains for Inline Frames List 選択するリスト Visualforce Pages IFrame タイプとして。

:MyDomainName.lightning.force.com

組織にマイ ドメインが展開されていない場合、URL 形式が異なります。[マイ ドメイン] を展開し、強化されたドメインが組織で有効になっていない場合、URL 形式が異なります。拡張ドメインが有効になっていない場合、Visualforce、Experience Builder、Site.com studio、およびコンテンツ ファイルの [マイ ドメイン(My Domain)] 設定も、この形式に影響します。詳細については、Salesforce ヘルプの マイ ドメイン URL 形式 を参照してください。

Lightning Experience の Clickjack 保護と信頼できるドメインの設定

13

通話中に録音コントロールを表示するには、エージェントが Control Call Recording アプリの権限。

割り当てるには、 プレゼンスステータス の手順で作成した権限セットに追加します。

  • 権限セットを開きます。
  • 次をクリックします: App Permissions 提供されます。
  • 次をクリックします: Edit ボタンをクリックします。
  • コール センターを追加 Control Call Recording 権限と保存。

構成

Contact Center

コンタクトセンター定義ファイルは、特定の CTI システムに対して Salesforce でコンタクトセンターを定義するために使用されるフィールドと値のセットを指定します。Salesforce は、複数の CTI システム ベンダーとの統合をサポートするために、Contact Center 定義ファイルを使用します。

詳細については、Salesforce の公式ドキュメント (ダイレクト リンク) を参照してください。

コンタクトセンターをインポート

ベータ版からのアップグレード:このガイドでは、Webex Contact Center と Salesforce Service Cloud Voice の連携の General Availability (GA) リリースのクリーンなインストールについて説明します。

インテグレーションのベータ バージョンからアップグレードする場合は、既存のパートナー コンタクト センター レコードを再使用しないでください。代わりに:

  1. GA リリースに含まれているパートナー コンタクト センター XML ファイルをインポートします。
  2. インポートされた XML を使用して、新しいパートナー コンタクト センター レコードを作成します。
  3. 新しく作成されたパートナー コンタクト センターを使用するには、設定を更新してください。

GA Partner Contact Center XML には、正しいコネクタ URL やその他のメタデータなど、更新された構成値が含まれています。ベータ XML から作成されたパートナー コンタクト センター レコードを再使用すると、古い設定値を保持し、インテグレーションが正しく機能しない場合があります。

1

[セットアップ] から、 Partner Telephony Contact Centers サイト変換ツールから Quick Find ボックスで、 Partner Telephony Contact Centers.

既存の(ある場合)コンタクトセンターのリストが表示されます。
2

オプション Create Contact Center ページの右側にあります。

3

選択: Webex Contact Center テレフォニー プロバイダーとして。次に、 Next.

ファイル ブラウザが開きます。
4

必要に合って [ .xml コンタクトセンターの定義を含むファイル。

5

オプション Open.

ファイルがインポートされます。
6

コンタクトセンターが [コンタクトセンター] リスト ビューに表示されているかどうかを確認します。

コンタクトセンターの設定

1

[セットアップ] から、 Partner Telephony Contact Centers サイト変換ツールから Quick Find ボックスで、 Partner Telephony Contact Centers.

2

以前にインポートしたコンタクトセンターをクリックします。

3

オプション Edit.

Table 1. Contact Center details
フィールド説明
表示名 これは、利用可能なコンタクトセンターのリストに表示されるコンタクトセンターの名前です。同じ Contact Center 定義ファイル (.xml) を複数回インポートし、異なる表示名を指定できます。
[パブリックキー(Public Key)]

音声機能を使用するには、公開キーと秘密キーのある証明書が必要です。プライベート キーを取得するには、自己署名証明書 の生成、証明機関が署名した証明書を生成するか、以下を使用して Java キーストア ファイル(JKS)または Bouncy castle fips キーストア ファイル(BCFKS)を直接インポートできます。 Import from keystore ボタンをクリックします。

証明書が生成されたら:

  • 次をクリックします: Certificate ラベル。
  • オプション Download Certificate.
  • ダウンロードした証明書をテキスト エディタで開きます。
  • コンテンツを Public key Contact Center のフィールドです。

必須対応

証明書の一意の名前

メッセージは、 Unique Name 公開キー に作成された自己署名証明書。

必須対応

準備ができた状態 ID
  • 以下を開きます。 Presence Statuses ページを [セットアップ] にします。
  • 次をクリックします: Online ステータスと Salesforce ID を URL バーからコピーします。
  • ID をこのフィールドに貼り付けます。

必須対応

受信不可状態 ID
  • 以下を開きます。 Presence Statuses ページを [セットアップ] にします。
  • 次をクリックします: Busy ステータスと Salesforce ID を URL バーからコピーします。
  • ID をこのフィールドに貼り付けます。

必須対応

デフォルトの Cisco 受信不可理由

特定のプレゼンス状態に対してマッピングが提供されない場合に、デフォルトのアイドル コードとして使用される Cisco アイドル コード ID。

必須対応

設定されたアイドル コード ID を確認するには、アイドル コード セクションを参照してください。

プレゼンス状態のマッピング

Salesforce Omni プレゼンス ステータスをシスコの受信状態と受信不可の理由コードにマッピングするために使用されます。

メッセージは、 Idle Code ステータスを追加する必要があります。

  • 以下を開きます。 Presence Statuses ページを [セットアップ] にします。
  • の 1 つをクリックします Busy ステータスと Salesforce ID を URL バーからコピーします。プレゼンス ステータス ID は次で始まります: 0N5を選択します。例 0N51X0000000AUT.
  • ID をこのフィールドに貼り付けて、コンマと CISCO アイドル コード ID を入力します。
  • 1 つ以上 Busy マッピングはカンマ区切りを使用して追加できます。

同期の問題を回避するには、 Default Not Ready ID もマッピングで設定する必要があります。

次のステータスを設定した場合 Decline および Push Timeout 内部 Presence Configurationを選択し、対応する Cisco Not Ready 状態のマッピングにも追加します。

形式:

  • ビジー マッピング:busyPresenceID1ciscoAuxCodeID1
  • デフォルトの準備ができていないマッピング:defaultNotReadyPresenceIDciscoDefaultNotReadyAuxCodeID
  • オンラインマッピング:onlinePresenceId0

すべてのマッピングをセミコロンで区切ります。

必須対応

ランチ、ミーティング、休憩用の完了アイドル コードの例を次に示します。

音声コール Id のコール変数

現在の音声コールの ID を保存するために使用されるコール変数。コール状態を正しく更新するために使用されます。

形式:Webex Contact Center フローで設定した変数名。例 SCV_VoiceCallRecordId

必須対応

デフォルト値:SCV_VoiceCallRecordId

音声通話レコード ID とベンダー コール キーを 1 つのフロー変数に組み合わせた場合は、このフィールドにその名前を設定できます。音声通話レコード ID とベンダー コール キーのフロー変数も参照してください。

ベンダーのコールキーのコール変数

現在の音声コールのベンダー コール キーを保存するために使用されるコール変数。正しい音声通話レコードを開くために使用されます。

形式:Webex Contact Center フローで設定した変数名。例 SCV_VendorCallKey

必須対応

デフォルト値:SCV_VendorCallKey

音声通話レコード ID とベンダー コール キーを 1 つのフロー変数に組み合わせた場合は、このフィールドを空のままにして、フロー変数の名前を [音声コール ID のコール変数] フィールドに音声通話レコード ID とベンダー コール キーで設定できます。音声通話レコード ID とベンダー通話キー の フロー変数も参照してください。

ダイヤル電話番号の翻訳

ダイヤル前に番号に適用される電話番号翻訳ルール。

電話番号の翻訳 を参照してください

必須未対応

Webex Contact Center の地域

テナントは、Webex Contact Center の地域を判別するために使用されます。Webex Contact Center ポータル、開発ポータル、またはデスクトップの URL で見つけることができます。次に例を示します。devportal.wxcc-eu2.cisco.com 地域を使用します eu2.

形式:eu2

必須対応

Webex Contact Center のリージョンと対応する文字列:

  • 米国:us1
  • カナダ:ca1
  • 英国:eu1
  • ドイツ:eu2
  • オーストラリア:anz1
  • シンガポール:sg1
  • 日本:jp1
Webex Contact Center WebRTC ドメイン

ドメインは正しい WebRTC 接続を確立するために使用されます。Webex Contact Center テナントのロケーションを使用します。

  • 米国:rtw.prod-us1.rtmsprod.net
  • 豪州、ニュージーランド(ANZ):rtw.prod-as1.rtmsprod.net
  • カナダ:rtw.prod-ca1.rtmsprod.net
  • 日本:rtw.prod-ja1.rtmsprod.net
  • EU1:rtw.prod-uk1.rtmsprod.net
  • EU2:rtw.prod-gm1.rtmsprod.net

必須WebRTC の場合は はい

WCCAI 議事録を有効にする

WCCAI 議事録を有効または無効にするために使用されます。

形式:True または False

必須未対応

デフォルト値:False

録画のリンクを保存

Webex 通話録音リンクを音声通話録音に保存するために使用されます。

形式:True または False

必須未対応

デフォルト値:True

4

下部に Contact Center ページ、クリック Add ボタン Contact Center Users セクションまで下方にスクロールします。

5

開いている Contact Center にアクセスできるユーザーの横にある [+] をクリックします。

ユーザーのみ、 Contact Center Agent (Partner Telephony) 権限セットで、まだ他のコンタクトセンターに割り当てられていません。このリストに表示されます。

カスタマイズ

Webex Contact Center インテグレーション用の外部クライアント アプリ

Webex Contact Center Salesforce Connector の外部クライアント アプリを構成する

Service Cloud Voice を最大限に使用するには、Contact Center のコール フローを適応して、音声通話レコードを作成し、コールが IVR 上にある間、Salesforce オムニチャネル フローを実行できます。

証明書を作成

組織のセキュリティ ポリシーに従って、すでにデジタル証明書を作成していることを確認してください。

デジタル証明書を生成するには、https://developer.salesforce.com/docs/atlas.en-us.voice_pt_developer_guide.meta/voice_pt_developer_guide/voice_pt_generate_certificate.htm の Salesforce のドキュメントを参照してください。

この例を参考にしてください。

openssl genrsa -des3 -passout pass:<password> -out server.pass.key 2048
openssl rsa -passin pass:<password> -in server.pass.key -out server.key
rm server.pass.key
openssl req -new -key server.key -out server.csr

    Country Name (2 letter code) [AU]:CH
    State or Province Name (full name) [Some-State]:
    Locality Name (eg, city) []:
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:
    Organizational Unit Name (eg, section) []:
    Common Name (e.g. server FQDN or YOUR name) []:
    Email Address []: my-api-user@my-example-org.com
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:<password>
    An optional company name []:

openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt

server.crt => Salesforce 外部クライアント アプリの証明書

server.key => Webex Control Hub の Salesforce コネクタのプライベート キー

SCV インテグレーション ユーザの権限設定

次の権限セットでは、Contact Center IVR フローと Webex Contact Center for Salesforce for SCV とのインテグレーションのために Connects で使用される Apex クラスにアクセスできます。

以下は、構成の例であり、Contact Center / IVR インテグレーションが機能するために必要な最小限の権限について説明しています。

  • [セットアップ] から、[ユーザー] | [権限セット] に移動します。
  • 次をクリックします: New ボタンをクリックします。
    • ラベルを入力します。例:SCV Apex クラスへの IVR アクセス
    • API 名が自動的に入力されます
    • ライセンス:なし
    • 次をクリックします: Save ボタンをクリックします。
  • 新しい権限セットが開きます。
  • 次のとおり、移動します Apex Class Access.
  • 次をクリックします: Edit ボタンをクリックして、次の Apex クラスを追加します。
    • cisco_wxcc_scv.ServiceRouting
  • 次のとおり、移動します System Permissions.
  • 次をクリックします: Edit ボタンを使用して、次の権限を有効にします。
    • Apex REST サービス
    • API が有効

最小アクセス - API のみのインテグレーション プロファイル

このプロファイルは、Webex Contact Center for Salesforce for SCV と統合して、音声通話レコードを作成し、IVR フローからオムニフローを実行します。

以下は、構成の例であり、Contact Center / IVR インテグレーションが機能するために必要な最小限の権限について説明しています。

これは、最小アクセス - API のみのインテグレーション プロファイルのクローンです。

  • [セットアップ] から、[ユーザー | プロファイル] に移動します。
  • プロファイル リストで、プロファイル 最小アクセス - API のみのインテグレーションを検索します。
  • プロファイル名をクリックして、 Minimum Access - API Only Integrations プロファイル。
  • で、 Minimum Access - API Only Integrations プロファイル、 Clone ボタンをクリックします。
  • 新しいプロファイル名を入力します。例:SCV 連携。
  • 次をクリックします: Save ボタンをクリックします。
  • 新しいプロファイルが開きます。
  • 最小アクセス - API のみのインテグレーション プロファイルに、プロファイル自体からすべての権限が削除されていることを確認します。
  • 次のとおり、移動します System Permissions.
  • 次の権限が有効になっていることを確認します。
    • API が有効
    • Api のみのユーザー

SCV インテグレーションユーザー

以下は、構成の例であり、Contact Center / IVR インテグレーションが機能するために必要な最小限の権限について説明しています。SCV インテグレーション ユーザーには、Salesforce Service Cloud Voice ライセンスまたは Webex Contact Center for Salesforce for SCV ライセンスは必要ありません。

  • [セットアップ] から、[ユーザー | ユーザー] に移動します。
  • 次をクリックします: New User ボタンをクリックします。
    • 名、姓、およびその他のすべての必須フィールドを入力します。
    • ユーザーライセンス:Salesforce インテグレーション
    • プロファイル: 前のステップで作成されたプロファイルを選択します (「SCV インテグレーションプロファイル」、最小アクセス - API のみインテグレーションプロファイルのクローン)
  • 次をクリックします: Save ボタンをクリックします。
  • 新しいユーザー レコードを開きます。
  • 次を指定: Permission Set 以前に作成された(「SCV Apex クラスへの IVR アクセス」)。
  • 権限セット ライセンス Salesforce API インテグレーション を割り当てます。
Salesforce 外部クライアント アプリの作成
新しい外部クライアント アプリの作成

Salesforce データをサードパーティ アプリケーションに接続するには、2 つのオプションがあります。両方 Connected Apps および External Client Apps データを統合するためのフレームワークです。 外部クライアント アプリは次世代の接続アプリです。

Cisco Webex Contact Center で使用される Salesforce 外部クライアント アプリを設定するには:

  1. 場所 Setup、次に移動します Apps | External Client Apps | External Client App Manager.
  2. 次をクリックします: New External Client App.
  3. External Client App—Basic Information
    • 外部クライアント アプリ名:WxCC - SCV
    • API 名:WxCC_SCV の
    • 連絡先メール: < あなたのメール >
    • 配信状態:ローカルを選択

    基本情報

    External Client App—API (Enable OAuth Settings)

    • 選択:OAuth を有効にする
    • アプリ設定
    • コールバック URL: http://localhost:1717/OauthRedirect をサンプルコールバック URL
    • OAuth スコープ
    • OAuth 範囲を選択:
    • API (api) でユーザー データを管理
    • いつでもリクエストを実行 (refresh_token、offline_access)

    API (oAuth 設定を有効にする)

    Flow Enablement

    • 選択:JWT ベアラー フローを有効にする
    • [ファイルのアップロード] をクリックし、 server.crt デジタル証明書を含むファイル。

    フライ イネーブル化

    Security

    チェックを外します Require secret for the Web Server Flow オプション。

    セキュリティ

  4. 次をクリックします: Create ボタンをクリックします。
  5. に変更 Tab Policies を選択し、 Edit ボタンをクリックします。
  6. ポリシー - OAuth ポリシー
    • プラグインポリシー
      • 許可されたユーザー: 管理者の承認済みユーザーを選択する
      • 変更を確認
    • アプリの認証
      • 更新トークンのポリシー: [すぐに更新トークンの期限切れ] を選択します
      • [IP リラクゼーション(IP Relaxation)]:IP 制限を強制する

    OAuth ポリシー

  7. ポリシー—アプリのポリシー
    • スタートページ - なし
    • 権限セットの選択 - 以前に作成された権限セットを割り当て (「SCV Apex クラスへの IVR アクセス」) 

    アプリのポリシー

  8. オプション Save.
  9. タブ設定に変更します。
    • [OAuth 設定] セクションで、 Consumer Key および Secret ボタン; メールを待って身元を確認します。新しいブラウザー タブで、コンシューマーの詳細を含む画面が開きます。

      OAuth 設定

    • オプション Copy を選択し、 Consumer Key.コンシューマー キーは、後で Webex Contact Center Control Hub で Salesforce Connector を作成するために使用されます。 

      外部クライアント アプリ名

音声通話記録を作成するための Webex Contact Center 構成とスクリプト

Salesforce Service Cloud Voice の完全な値を取得するには、通話がコンタクトセンターに着信するとすぐに、Webex Contact Center の通話フローを変更して、サービス クラウド音声の音声通話レコードを作成する必要があります。

オプションの Omni フローは、Salesforce のルーティングの決定と自動化に対して実行できます。

使用される API の詳細については、Service Cloud Voice API Wrapper を参照してください。

前提条件

Service Cloud Voice API Wrapper を使用するには、Salesforce IVR インテグレーション用の外部クライアント アプリ を設定する必要があります。

Webex Control Hub で Salesforce Connector を構成する

記事の https://help.webex.com/en-us/article/7fuy63/Set-Up-Integration-Connectors-for-Webex-Contact-Center#id_133211 の説明に従って、Webex Contact Center の Salesforce 統合コネクタをセットアップします。

1

https://admin.webex.com で顧客組織にログインし、[サービス] > [コンタクトセンター] > [テナント設定] > [インテグレーション] > [コネクタ] の順に移動します。

2

Salesforce カードで、[セットアップ] または [コネクタの追加] をクリックします。

  • クライアント ID:外部クライアント アプリ コンシューマー キー
  • Salesforce メール ID:「SCV インテグレーション」の SALESFORCE ユーザー名 (SCV インテグレーション ユーザーを参照)
  • URL: 本番環境用 https://login.salesforce.comまたは dev/サンドボックス用 https://test.salesforce.com
  • プライベート キー: のファイルのコンテンツ server.key

重要:定期的に秘密を回転させることでセキュリティを維持する

統合を安全に保つために、秘密キーと証明書を定期的にローテーションしてください。

Webex Hub の Contact Center Connector のプライベートキーと、Salesforce の 外部クライアント アプリの証明書を更新します。

トラブルシューティングのヒント

[完了] をクリックすると、コネクタは保存されません。

  • エントリの前/後にスペースがあるかどうかを確認します。
  • プライベート キー (server.key) が次と一致します。 server.crt.複数の組織をセットアップして証明書を切り替える場合、それらは機能しません。
  • Server.key が起動していることを確認してください。----- Begin RSA Private Key -----

Webex Contact Center のメイン フロー

Table 2. Flow variale
フロー変数説明
音声通話レコード ID のフロー変数 通話を識別するための固有の Id。音声通話レコードを作成するために必要です。

形式: wxcc_<Interaction Id>

: wxcc_fc4ec7d8-4c91-49aa-b764-081fbba344a8

  • 名前:SCV_VendorCallKey
  • タイプ:String
  • エージェントを表示可能にする:有効
通話開始時間のローカル変数

音声通話レコードの作成と音声通話を更新するときに使用します。

  • 名前:SCV_CallStartTime
  • タイプ:String
  • エージェントを表示可能にする: いいえ
キュー名/ID のローカル変数

コール ルーティングに使用される Execute Omni Flow により返されます。

表 1Omni設定オプション

  • 名前:SCV_OmniFlowQueue
  • タイプ:String
  • エージェントを表示可能にする: いいえ
エージェント名/ID のローカル変数

コール ルーティングに使用される Execute Omni Flow により返されます。

表 1Omni設定オプション

  • 名前:SCV_OmniFlowAgent
  • タイプ:String
  • エージェントを表示可能にする: いいえ

メイン フローの概要

  1. ベンダーのコールキーを生成
  2. 通話開始時間を設定
  3. HTTP リクエスト:音声通話レコードを作成
  4. 音声通話レコードを作成するための HTTP 応答の評価
  5. 音声通話レコード作成のエラー処理
  6. HTTP リクエスト:Omni フローを実行
  7. Omni フローを実行するための HTTP 応答の評価
  8. Omni フローの実行のエラー処理
  9. コール ルーティングを続行
Table 3. Main Flow
フロー説明
ベンダーのコールキーを生成

サービス クラウド 音声で処理されるすべてのコールは、Salesforce で音声通話レコードを作成し、ベンダー コール キーと呼ばれる固有の ID が必要です。Webex Contact Center で作成された音声通話レコードの場合、ベンダー通話キーを WxCC フローで定義し、フロー変数を使用してエージェントに通話とともに渡す必要があります。

vendorCallKey の値は、次のルールに準拠している必要があります。

  • 値は 255 文字の長さにする必要があります。
  • この値には、英数字とアンダースコア(_)、ダッシュ(-)、およびピリオド(.)を含めることができます。
  • 値は、文字で始まる、スペースを含まない、アンダースコアを含まない、2 つの連続したアンダースコアを含まない必要があります。

  • アクティビティ ラベル:Generate_VendorCallKey
  • 変数名:SCV_VendorCallKey
  • 変数タイプ:String
  • 変数値 - 値を設定: wxcc_{{NewPhoneContact.InteractionId}}

通話開始時間を設定

通話開始時刻の UTC タイムスタンプ。このタイムスタンプは、エージェントにルーティングされる前に発信者が電話を切った場合に音声通話レコードを作成し、音声通話レコードを更新するために使用されます。

  • アクティビティ ラベル:設定CallStartTime
  • 変数:SCV_CallStartTime
  • 変数 - 値を設定: {{now() | replace({'[UTC]': ''})}}
HTTP リクエスト:音声通話レコードを作成

この手順は、すべての通話に必要です。音声通話レコードを作成した後、音声通話レコード ID は、ベンダーのコールキーとともに変数のエージェントに渡される必要があります。Service Cloud Voice の Contact Center 構成で使用されている変数を設定します。

HTTP リクエストの設定
  • アクティビティ ラベル:CreateVoiceCall)
  • 認証済みエンドポイントを使用:有効
  • コネクタ:前のステップで作成された Salesforce Connector
  • リクエスト パス: /services/apexrest/cisco_wxcc_scv/voice/v1/createVoiceCall
  • メソッド:POST
  • リクエスト コンテンツ タイプ:アプリケーション/JSON

HTTP リクエスト:音声通話レコードを作成

この手順は、すべての通話に必要です。音声通話レコードを作成した後、音声通話レコード ID は、ベンダーのコールキーとともに変数のエージェントに渡される必要があります。Service Cloud Voice の Contact Center 構成で使用されている変数を設定します。

HTTP リクエストの設定

  • アクティビティ ラベル:CreateVoiceCall)
  • 認証済みエンドポイントを使用:有効
  • コネクタ:前のステップで作成された Salesforce Connector
  • リクエスト パス: /services/apexrest/cisco_wxcc_scv/voice/v1/createVoiceCall
  • メソッド:POST
  • リクエスト コンテンツ タイプ:アプリケーション/JSON

要求本文

音声通話レコードを作成する際に、通話データを使用して音声通話レコードのカスタム フィールドを更新することもできます。以下は、要求本文の 2 つの例です。1 つはすべての必須フィールドを含み、もう 1 つはカスタムフィールドを更新しません。

音声通話レコードのカスタム フィールドを更新しない:

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "vendorCallKey": "{{SCV_VendorCallKey}}",
  "to": "{{NewPhoneContact.DNIS}}",
  "from": "{{NewPhoneContact.ANI}}",
  "initiationMethod": "Inbound",
  "startTime": "{{SCV_CallStartTime}}",
  "participants": [
    {
      "participantKey": "{{NewPhoneContact.ANI}}",
      "type" : "END_USER"
    }
  ]
}

音声通話レコードのカスタム フィールドを更新する例:

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "vendorCallKey": "{{SCV_VendorCallKey}}",
  "to": "{{NewPhoneContact.DNIS}}",
  "from": "{{NewPhoneContact.ANI}}",
  "initiationMethod": "Inbound",
  "startTime": "{{SCV_CallStartTime}}",
  "participants": [
    {
      "participantKey": "{{NewPhoneContact.ANI}}",
      "type" : "END_USER"
    }
  ],
  "callAttributes": "{\"custfield1__c\": \"<value1>\",\"custfield2__c\": \"<value2>\",\"custfield3__c\": \"<value3>\"}"
}

パラメータ
プロパティ名
callCenterDevName Contact Center の開発者名
certDevName 証明書の API 名 (Contact Center で設定されている)
vendorCallKey 固有のコール ID:{{SCV_VendorCallKey}}
着信番号/DNIS:{{NewPhoneContact.DNIS}}
差出人アドレス 通話番号/ANI:{{NewPhoneContact.ANI}}
startTime UTC タイムスタンプ {{SCV_CallStartTime}} (スクリプトでコールが受け入れられた直後に設定する)
コール属性

音声通話レコードの追加の標準フィールドとカスタムフィールドを表します。各キーと値のペアが標準フィールドまたはカスタムフィールドとその値に対応しています。

例:

custfield1__ccustfield2__ccustfield3__c:音声通話オブジェクトのカスタム フィールドの API 名

value1value2value3:カスタム フィールドの値

解析設定
  • コンテンツ タイプ:JSON
  • 出力変数:SCV_VoiceCallRecordId
  • パス式:$.data.voiceCallId

エージェントに渡される音声通話レコード ID。

音声通話レコードを作成するための HTTP 応答の評価

Create Voice Call http リクエストの HTTP ステータスを確認します。

  • ラベル: statusCodeCreateVoiceCall
  • 変数:CreateVoiceCall.httpStatusCode

ステータス コード == 200 =>成功した else =>リクエストが失敗した場合、エラー処理

音声通話レコード作成のエラー処理

デモ/デバッグのみの場合は、http ステータス コードに応じてメッセージを再生します。

[音声コールの作成(Create Voice Call)] が成功した場合は、[Omni フローの実行(Execute Omni Flow)] を続行します。それ以外の場合は、コール ルーティングを続行します。

HTTP リクエスト:表 1Omni設定オプション

以下を実行する場合は、[Omni-Flow の実行] を使用します。

  • レコードの検索や作成など、自動タスクを実行し、レコードを音声通話レコードにリンクします
  • レコードを検索して画面ポップアップを行う
  • Salesforce と Cisco キューの同期
  • Service Cloud Voice がルーティングの決定を行う

このリクエストは、常に「キュー」または「エージェント」を返し、コールをルーティングする必要があります。

このリクエストを実行した後、エージェントによって応答される前に発信者がハングアップした場合は、[ルーティングのクリア(Clear Routing)] を送信してください。Webex Contact Center イベント フロー を参照してください。

HTTP リクエストの設定

  • アクティビティ ラベル:OmniFlow の実行
  • 認証済みエンドポイントを使用:有効
  • コネクタ:前のステップで作成された Salesforce Connector
  • リクエスト パス: /services/apexrest/cisco_wxcc_scv/voice/v1/executeOmniFlow
  • メソッド:POST
  • リクエスト コンテンツ タイプ:アプリケーション/JSON

要求本文

必須フィールド以外に、追加のデータを入力変数として Omni-Flow に渡すことができます。以下は、リクエスト本文の 2 つの例です。まず、追加のフローパラメータがない場合、必須フィールドのみ、2 つの入力変数があります。

Omni-Flow パラメータの例:

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "voiceCallId": "{{SCV_VoiceCallRecordId}}",
  "dialedNumber": "{{NewPhoneContact.DNIS}}",
  "flowDevName": "<flow api name>",
  "fallbackQueue": "<fallback queue name>"
}

音声通話レコードのカスタム フィールドを更新する例:

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "voiceCallId": "{{SCV_VoiceCallRecordId}}",
  "dialedNumber": "{{NewPhoneContact.DNIS}}",
  "flowDevName": "<flow api name>",
  "fallbackQueue": "<fallback queue name>",
  "flowInputParameters": 
  {
    "param1": "value1",
    "param2": "value2"
  }
}

パラメータ
プロパティ名
callCenterDevName Contact Center の開発者名
certDevName 証明書の API 名 (Contact Center で設定されている)
voiceCallId 前のステップで作成された音声通話レコードの ID: {{SCV_VoiceCallRecordId}}
dialedNumber 着信番号/DNIS:{{NewPhoneContact.DNIS}}
flowDevName 実行する Omni-Flow の開発者名
フォールバックキュー フォールバック Salesforce キューのキュー ID またはキュー API 名
flowInputParameters

オムニチャネル フローへの追加入力(キーと値のペア)。

例:

param1param2:Omni-Flow 入力パラメータの名前

value1value2:パラメータの値

解析設定

キュー

  • コンテンツ タイプ:JSON
  • 出力変数:SCV_OmniFlowQueue
  • パス式:$.data.queue

Execute Omni-Flow から返された「キュー」は、ルーティングに使用できます。

エージェント
  • コンテンツ タイプ:JSON
  • 出力変数:SCV_OmniFlowAgent
  • パス式:$.data.agent

Execute Omni-Flow から返された「Agent」は、ルーティングに使用できます。

Omni フローを実行するための HTTP 応答の評価

以下に設定ディレクティブの簡単な説明を示します。

  • ラベル: statusCodeExecuteOmniFlow
  • 変数:ExecuteOmniFlow.httpStatusCode

ステータス コード == 200 =>成功した else =>リクエストが失敗した場合、エラー処理。

Omni フローの実行のエラー処理

デモ/デバッグのみの場合は、http ステータス コードに応じてメッセージを再生します。

Omni フローの実行が成功した場合、変数 SCV_OmniFlowQueue および SCV_OmniFlowAgent は設定されません。通話フローでのルーティングの決定。

コール ルーティングを続行

コール フローで続行し、コールをエージェントにルーティングします。オプションで、SCV_OmniFlowQueue および SCV_OmniFlowAgent を使用して、キューとエージェントを選択します。

Webex Contact Center のイベント フロー

エージェントが応答する前に発信者がコールを切断した場合、サービス クラウド音声を更新してコールを終了する必要があります。

  • [オムニフローの実行(Execute Omni-Flow)] が使用された場合は、クリアルーティングを送信して、保留中のサービス ルーティング(PSR)を削除します
  • 音声コールの更新を送信して、音声通話レコードの開始と終了時間を更新し、ステータスを新規から完了済みに変更します

  1. PhoneContactEnded - このイベントは、ライブコールが切断され、すべての参加者が削除されたときにトリガーされます。
  2. HTTP リクエスト:ルーティングをクリア
  3. HTTP リクエスト:音声通話を更新
HTTP リクエスト:ルーティングをクリア

  • ラベル:クリアルーティング
  • 認証済みエンドポイントを使用:有効
  • コネクタ:前のステップで作成された Salesforce Connector
  • リクエスト パス: /services/apexrest/cisco_wxcc_scv/voice/v1/clearRouting
  • メソッド:POST

リクエスト コンテンツ タイプ:アプリケーション/JSON

要求本文

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "voiceCallId": "{{SCV_VoiceCallRecordId}}"
}

パラメータ

プロパティ名
callCenterDevName Contact Center の開発者名
certDevName 証明書の API 名 (Contact Center で設定されている)
voiceCallId 前のステップで作成された音声通話レコードの ID:SCV_VoiceCallRecordId

解析設定

ありません。

HTTP リクエスト:音声通話を更新

  • ラベル:UpdateVoiceCall の
  • 認証済みエンドポイントを使用:有効
  • コネクタ:前のステップで作成された Salesforce Connector
  • リクエスト パス: /services/apexrest/cisco_wxcc_scv/voice/v1/updateVoiceCall
  • メソッド:POST
  • リクエスト コンテンツ タイプ:アプリケーション/JSON

要求本文

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "voiceCallId": "{{SCV_VoiceCallRecordId}}",
  "startTime": "{{SCV_CallStartTime}}",
  "endTime": "{{now() | replace({'[UTC]': ''})}}",
  "disconnectReason": { "value": "Abandoned in queue", "isError": true }
}

パラメータ

プロパティ名
callCenterDevName Contact Center の開発者名
certDevName 証明書の API 名 (Contact Center で設定されている)
voiceCallId 前のステップで作成された音声通話レコードの ID:SCV_VoiceCallRecordId
startTime 通話開始の UTC タイムスタンプ {{SCV_CallStartTime}} (音声通話レコードの作成に使用される)
終了時刻 現在の UTC タイムスタンプ `{{now()
disconnectReasonとは 通話を切断した理由。ホテル isError に設定する必要があります true を適切に表示します。

解析設定

ありません。

基本設定

言語翻訳

(オプション) 翻訳ワークベンチを有効にする

この設定は、翻訳言語の設定を使用している場合にのみ適用されます。

1

[セットアップ] → [翻訳ワークベンチ] → [翻訳言語設定] の順に移動します。

2

オプション Enable 翻訳言語を選択します。

(オプション) プラットフォームのみの言語を有効にする

この設定は、EN-US 以外の言語にのみ適用されます。

1

[セットアップ] → [会社設定] → [言語設定] の順に移動します。

2

必要な言語を選択します。

3

次のチェックボックスを選択します。

  • エンドユーザー言語を有効にする - ヘルプとセットアップはエンドユーザーの言語に翻訳されません
  • プラットフォームのみの言語を有効にする - プラットフォームのみの言語には、デフォルトの翻訳は提供されません
4

変更を保存します。

言語をアクティベートしてユーザーを選択 (タスク)
1

[セットアップ] → [翻訳ワークベンチ] → [翻訳言語設定] の順に移動します。

2

言語を選択し、翻訳するユーザーを選択します。

3

変更を保存します。

多言語設定
カスタム ラベルを翻訳
1

[セットアップ] → [カスタム ラベル] に移動します。

2

開くカスタム ラベルの名前を選択します。

3

関連する翻訳リストで、 New 新しい翻訳を入力するか、または編集 (言語の横にある)、翻訳を編集します。

4

翻訳する言語を選択します。

5

変換された値を [変換テキスト(Translation Text)] フィールドに入力します。ユーザーのデフォルト言語が翻訳言語である場合、このテキストは、ラベルの [値] フィールドで指定された値を上書きします。

6

変更を保存します。

ユーザー機能により要求される Salesforce 権限

Webex Contact Center SCV エージェント権限セットには、Webex Contact Center ガジェットとエージェント用に開発されたインテグレーションで動作するために必要なすべての権限が含まれています。

Apex クラス アクセス(セクション)

  • cisco_wxcc_scv.CiscoScvWxcc
  • cisco_wxcc_scv.ServiceResponseHandler
  • cisco_wxcc_scv.ServiceRouting
  • cisco_wxcc_scv.TelephonyIntegrationHandler

カスタム メタデータ タイプ アクセス (セクション)

  • cisco_wxcc_scv.WxCC 接続

Visualforce Page Access(セクション)

  • cisco_wxcc_scv.CiscoScvLoginWxCC
  • cisco_wxcc_scv.CiscoScvMainWxCC
  • cisco_wxcc_scv.CiscoScvOAuthRedirect
  • cisco_wxcc_scv.CiscoScvSwLoader

サービス Cloud Voice API ラッパー

前提条件

Service Cloud Voice API Wrapper を使用するには、Salesforce IVR インテグレーション用の外部クライアント アプリ を設定する必要があります。

サービス クラウド音声 API ラッパーの使用

Salesforce 向け Service Cloud Voice(SCV)は、Telephony Integration REST API を使用して、VoiceCalls の作成と更新、オムニチャネル フローの実行、VoiceCall に関連付けられた PendingServiceRouting レコードの削除を行います。このサービスには、JWT 認証と PATCH HTTP メソッドの使用が必要です。このメソッドは、現在 Cisco IP Interactive Voice Response(IVR)ではサポートされていません。

IVR システムでの SCV 用の Telephony Integration REST API の使用を簡素化するために、既存の API をラップし、Webex Contact Center for Service Cloud Voice パッケージがインストールされている Salesforce 組織から直接アクセスできる、新しい API セットが利用できるようになりました。

Service Cloud Voice API ラッパー では、JWT トークンを認証する必要がなくなり、Salesforce API に必要なデータに対する追加のチェックが実装され、応答オブジェクトが改善されます。

Access_Token を取得する

https://<your-domain-name>.my.salesforce.com/services/oauth2/token への POST リクエストを実行します

以下のパラメータを本文に送信します。

{
 "grant_type": "client_credentials",
 "client_id": "<consumer key of the connected app>",
 "client_secret": "<consumer secret of the connected app>"
 }
If the request is successful, the following JSON response will be returned:
{
 "access_token": "<your-access-token>",
 "instance_url": "<your-org-base-url>",
 "id": "https://login.salesforce.com/id/<id>/<id>",
 "token_type": "Bearer",
 "issued_at": "<timestamp>",
 "signature": "<unique-signature-code>"
 }

リクエストを実行

インスタンス URL には、次のものが必要です。 my.salesforce.com.

正しいインスタンス URL の例: https://abc-123.my.salesforce.com

他のドメインをインスタンス URL として使用すると (例: https://abc-123.lightning.force.com )、401未承認のステータスと INVALID_SESSION_ID errorCode が返されます。

音声コールの作成 (セクション)

VoiceCall レコードの参加者(つまり、発信者と受信者)を含む VoiceCall レコードを作成します。VoiceCall レコードを作成すると、Salesforce で会話が作成されます。この API はリアルタイムのコンテキストでのみ使用してください。つまり、コールが開始されたときにのみこの API を呼び出す必要があります。この API は、リクエストのペイロードに parentVoiceCallId パラメータを含めて、転送および電話会議の VoiceCall レコードを作成するためにも使用できます。

エンドポイント URI

<instance_url>/services/apexrest/cisco_wxcc_scv/voice/v1/createVoiceCall

HTTP メソッド

POST

ヘッダー

認証:ベアラー <access_token>

Content-Type: application/json

パラメータ

{
 "callCenterDevName": "contactCenterDevName123",
 "certDevName": "certDevName123",
 "vendorCallKey": "5324881f-1e84-4367-8930-f69a74b30ca6",
 "to": "8002345678",
 "from": "4081456688",
 "initiationMethod": "Inbound",
 "startTime": "2019-07-02T17:32:28Z",
 "participants": [
 {
 "participantKey": "4081456688",
 "type" : "END_USER"
 }
 ],
 "callAttributes": "{\"devscv24__AAA_Test__c\":\"field value\",\"Other_Field__c\":\"other value\"}",
 "parentVoiceCallId": "fsdfzuhsdfsa-43556fgef3-56g44gv4ew",
 "callOrigin": "Preview",
 "queue": "queue123"
 }

このリクエストで承認されたパラメータの詳細については、「パラメータ」セクションの Salesforce 公式ドキュメント を参照してください。

応答 (成功)

{
 "data": {
 "voiceCallId": "00X000012345abc"
 },
 "errors": null,
 "success": true
 }

応答 (エラーあり)

 
{
 "data": null,
 "errors": ["Error message 1", "Error message 2"],
 "success": false
 }

音声通話を更新

コールが終了したら、VoiceCall を更新します。この API を使用して、VoiceCall の作成ステージ中に使用できないコール関連パラメータを更新します。Update VoiceCall API は非同期操作です。API コールのステータスを照会することはできません。

このエンドポイントを使用して、コールが終了した後でも、VoiceCall を作成することもできます。この動作は、放棄または不在着信について Salesforce にレコードを記録したい場合、または VoiceCall がまだ作成されていない他のシナリオで役立ちます。

エンドポイント URI

<instance_url>/services/apexrest/cisco_wxcc_scv/voice/v1/updateVoiceCall

HTTP メソッド

POST

ヘッダー

認証:ベアラー <access_token>

Content-Type: application/json

パラメータ

{
 "callCenterDevName": "contactCenterDevName123",
 "certDevName": "certDevName123",
 "voiceCallId": "00X000012345abc",
 "startTime": "2020-08-26T21:21:14Z",
 "endTime": "2019-08-26T21:21:34Z",
 "isActiveCall": true,
 "fromNumber": "1234",
 "callOrigin": "Preview",
 "enqueueTime": "2019-08-26T21:21:34Z",
 "acceptTime": "2019-08-26T21:21:24Z",
 "numberOfHolds": 20,
 "queue": "queue123",
 "agent": "agent123",
 "agentInteractionDuration": 12,
 "longestHoldDuration": 10,
 "totalHoldDuration": 21,
 "recordingLocation": "Bern",
 "totalRecordingDuration": 55,
 "callAttributes": "{\"devscv24__AAA_Test__c\":\"field value\",\"Other_Field__c\":\"other value\"}",
 "disconnectReason": {
 "value": "TELECOM_PROBLEM",
 "isError": true
 }
 }

このリクエストで承認されたパラメータの詳細については、「パラメータ」セクションの Salesforce 公式ドキュメント を参照してください。

応答 (成功)

{
 "data": {
 "status": "pending"
 },
 "errors": null,
 "success": true
 }

Update VoiceCall API は非同期操作です。API コールのステータスを照会することはできません。

応答 (エラーあり)

{
 "data": null,
 "errors": ["Error message 1", "Error message 2"],
 "success": false
 }

Omni-flow を実行

コールをルーティングするために、オムニチャネル フローを実行します。コール ID(Salesforce VoiceCallId またはテレフォニーベンダーの ContactId)をパラメータとしてフローに渡し、エージェントまたはキューのルーティング手順を連絡先フローに返します。デフォルトでは、サービス クラウド音声は、ダイヤル番号に一致する電話チャネルに指定されたオムニチャネル フロー(またはフォールバック キュー)を使用します。ダイヤル番号が既存の電話チャネルと一致しない場合、オプションで、この API コールへの入力パラメータとして、新しいダイヤル番号、オムニチャネル フロー、およびフォールバック キューを設定できます。

Service Cloud Voice は、次の優先順位を使用してコールをルーティングします。

  1. ダイヤル番号に一致する電話チャネルに対して、オムニチャネル フローとフォールバック キューの設定を使用します。フローが優先されます。フローが失敗した場合、フォールバック キューが使用されます。
  2. Execute Omniflow API コールで指定された flowDevName と fallbackQueue パラメータを使用します。

エンドポイント URI

<instance_url>/services/apexrest/cisco_wxcc_scv/voice/v1/executeOmniFlow

HTTP メソッド

POST

ヘッダー

認証:ベアラー <access_token>

Content-Type: application/json

パラメータ

{
  "callCenterDevName": "contactCenterDevName123",
  "certDevName": "certDevName123",
  "voiceCallId": "00X000012345abc",
  "dialedNumber": "+18445791189",
  "flowDevName": "Route_VoiceCall",
  "fallbackQueue": "00G111222333444",
  "flowInputParameters":
  {
    "Input1": "one",
    "Input2": "two"
  }
}

  • voiceCallId パラメータは、Salesforce voiceCallId またはテレフォニー ベンダーの連絡先 ID です。
  • このリクエストで承認されたパラメータの詳細については、「パラメータ」セクションの Salesforce 公式ドキュメント を参照してください。

応答 (成功)

{
  "data": {
    "queue": "queue info",
    "agent": "agent info"
  },
  "errors": null,
  "success": true
}

AGENT_INFO と QUEUE_INFO は、CallCenterRoutingMap の ExternalId フィールドに対応しています

応答 (エラーあり)

{
 "data": null,
 "errors": ["Error message 1", "Error message 2"],
 "success": false
 }

ルーティングをクリア

音声コールの PendingServiceRouting(PSR)レコードを削除します。ほとんどのシナリオでこの API を呼び出す必要はありません。コールがルーティングされなくなったときに、PSR レコードは自動的に削除されます。ただし、パートナーのテレフォニー システムを使用する場合、PSR レコードをクリアするためにこの API を明示的に呼び出す必要がある場合など、一部のシナリオがあります。

エンドポイント URI

<instance_url>/services/apexrest/cisco_wxcc_scv/voice/v1/clearRouting

HTTP メソッド

POST

ヘッダー

認証:ベアラー <access_token>

Content-Type: application/json

パラメータ

{
 "callCenterDevName": "contactCenterDevName123",
 "certDevName": "certDevName123",
 "voiceCallId": "00X000012345abc"
 }

  • voiceCallId パラメータは、Salesforce voiceCallId またはテレフォニー ベンダーの連絡先 ID です。
  • このリクエストで承認されたパラメータの詳細については、「パラメータ」セクションの Salesforce 公式ドキュメント を参照してください。

応答 (成功)

{
 "data": {
 "status": "Success"
 },
 "errors": null,
 "success": true
 }

応答 (エラーあり)

{
 "data": null,
 "errors": ["Error message 1", "Error message 2"],
 "success": false
 }

電話番号の翻訳

Service Cloud Voice と Webex Contact Center の間のさまざまなインタラクションは、電話番号の翻訳によって異なります。国際的違いや顧客固有のアプリケーションにより、A 形式から B 形式に電話番号を転送するには、カスタマイズ可能なツールが必要です。

Webex Contact Center for Service Cloud Voice ソリューションは、番号、ハッシュタグ(#)、アスタリスク(*)、カンマ(、)、および先頭のプラス記号(+)を除くすべての文字を自動的に削除します。また、(0) の最初の 1 回も削除されます。これは、 前に実行されます。

このガイドでは、電話番号の翻訳を設定する方法について説明します。

フィールド

電話番号の翻訳は [名前値(Name-Value)] フィールドに保存されます。これにより、機能ごとに無制限の数のルールを設定できます。

設定は JSON 文字列として保存されます。

バックスラッシュはエスケープする必要があります。例: \d+ は \\d+ になります。

{"Remove all characters but digits":"[1,17]->[^\\d]+","To internal number":"[7,17]->(\\d{7})(\\d{4})->$2"}

フィールド名は技術的には使用されません。このルールの目的をすばやく特定するために、人間の読み取り可能な文字列を追加する必要があります。良い名前の例:先頭のゼロをすべて削除先頭のプラスを追加など。

翻訳ルールの作成

ルールは正規表現として提供されます。より正確には:正規表現の JavaScript の実装。

まず、MDN Web docs から RegExp ドキュメントを読み取ることです。

ただし、複雑な正規表現を作成することはしばしば面倒です。そのため、できるだけ簡単に構成できるようにシンタックスを追加しました。

次の図は、電話番号変換ルールの全般的な構文を示しています。

予測する

予測値は、一致する数値の長さを定義する間隔を指定するために使用されます。

上の予測値は、7 ~ 11 文字の長さ (エッジとスペースを含む) のすべての数字が一致するように指定します。

予測は常に数字の元の長さに一致します。これは、内部/外線番号のルールを衝突させるリスクを減らすことで、設定を簡素化するのに役立ちます。

パターン(Pattern)

パターンには、一致する番号の形式を指定します。

上のパターンは、番号は数字のみで構成され、選択する必要があることを示しています。

セレクター

セレクタは、番号の最終形式を定義します。元々存在していなかった文字/数字を追加する必要がある場合は、これを行う場所です。

セレクタは番号を作成する最後のステップです。パターンの出力に基づいて、セレクタは新しい番号を構築します。

例 1

次の例は、0319175200 の形式でコンタクトセンターから受信した番号を Swiss E164 形式 +41 31 917 52 00 に転送する方法を示しています。

この例では 2 つの翻訳ルール (1. および 2) を使用します。

この例の最初のルールは、実際には番号を変更しません。長さ 1 ~ 17 文字の数字の場合、数字以外のすべてが削除されます。数字以外の番号がないため、何も変更されません。

2 番目のルールは、正確に 10 文字の長さ (オリジナル) の数字に適用されます。 0319175200 が一致するため、ルールが適用されます。このパターンは、番号が 1 桁のグループ (\d{1}) で始まり、2 桁のグループ (\d{2})、3 桁のグループ (\d{3}) で終わらなければならないよう指定します。

セレクタは、パターングループにアクセスして、新しい番号文字列を定義します。これは、$2 が最初の (\d{2}) を参照しているため、31 を含みます。

例 2

次の例は、コンタクトセンターから受信した番号を +14693150217 の形式で米国の E164 形式 +1 469 315 0217 に転送する方法を示しています。

この例では 2 つの翻訳ルール (1. および 2) を使用します。

  1. この番号は正確に 12 文字の長さであるため、「米国番号にスペースを追加」のルールが適用されます。
  2. (\+1) は、番号の先頭が +1 であることを示しています。番号の長さが 12 文字で、+1 で始まらない場合、ルールはキャンセルされ、何も変更されません。
  3. (\d{3}) は +1 の後に 3 桁の数字を指定する必要があります。
  4. (\d{3}) は、最後の 3 桁の後に別の 3 桁を加える必要があります。
  5. (\d{4}) は最後の 3 桁の後に 4 桁が必要であることを示しています。

一致しない場合、番号は変更されません。

したがって、すべてのルールは「+14693150217」に適用されます。したがって、番号は「$1 $2 $3 $4」によって変更されます。

  1. $1 はグループ (\+1) を参照し、Service Cloud Voice に送信する番号は +1 のように表示されます。
  2. $2 は 2 つのうち最初の (\d{3}) を参照し、Service Cloud Voice に送信する番号は +1 469 のように表示されます。
  3. $3 は 2 つのうちの 2 番目 (\d{3}) を参照し、Service Cloud Voice に送信する番号は +1 469 315 のように表示されます。
  4. $4 は最後のグループ (\d{4}) を参照し、Service Cloud Voice に送信する番号は +1 469 315 0217 のように表示されます。

ルール「$1 $2 $3 $4」の置換部分にあるスペースは直接使用されます。そのため、「$1-$2-$3-$4」を使用すると、数字は次に変換されます:+1-469-315-0217

また、グループを削除することもできます。[12、12]->(\+1)(\d{3})(\d{3})(\d{4})->$2$3$4は4693150217に変換されます。[12、12]->(\+1)(\d{3})(\d{3})(\d{4})->$3$4は315 0217に変換されます。

また、[12, 12]->(\+1)(\d{3})(\d{3})(\d{4})->($2)$3-$4 のようにローカル番号に変換することもできます。

次に、着信番号「+14693150217」は (469) 315-0217 に変換されます。

例 3

次の例は、コンタクトセンターから受信した番号を +491515555531 の形式でドイツの E164 形式 +49 151 5555 531 に転送する方法を示しています。

この例では 2 つの翻訳ルール (1. および 2) を使用します。

  1. この番号は正確に 13 文字の長さであるため、「ドイツ番号にスペースを追加」のルールが適用されます。
  2. (\+49) は、番号の先頭が +49 であることを示しています。番号の長さが 13 文字で、+49 で始まらない場合、ルールはキャンセルされ、何も変更されません。
  3. (\d{3}) は +49 の後に 3 桁の数字を指定する必要があります。
  4. (\d{4}) は最後の 3 桁の後に 4 桁が必要であることを示しています。
  5. (\d{3}) は最後の 4 桁の後に 3 桁が必要であることを示しています。

一致しない場合、番号は変更されません。

したがって、すべてのルールは「+491515555531」に適用されます。したがって、番号は「$1 $2 $3 $4」によって変更されます。

  1. $1 はグループ (\+49) を参照し、Service Cloud Voice に送信する番号は +49 のように表示されます。
  2. $2 は 2 つのうち最初の (\d{3}) を参照し、Service Cloud Voice に送信する番号は +49 151 のように表示されます。
  3. $3 は 2 つのうちの 2 番目 (\d{4}) を参照し、Service Cloud Voice に送信する番号は +49 151 5555 のように表示されます。
  4. $4 は最後のグループ (\d{3}) を参照し、Service Cloud Voice に送信する番号は +49 151 5555 531 のように表示されます。

同じことがルール 1 にも適用されます。交換部品 $1 $2 $3 $4 を使用して、番号から使用するものを選択できます。

その他の翻訳正規表現の例

説明 翻訳正規表現数
数字以外のすべての文字を削除します [1,17]->[^\d]+
数字 + 以外のすべての文字を削除 [1,17]->[^+\d]+
説明 翻訳正規表現数
+ を削除1 [12,12]->(.{1})(\d{1})(\d{10})->$3
+ を削除1 [10,12]->(^\+1+)(\d+)->$2
+ を削除49 [10,15]->(^\+49+)(\d+)->$2
+ を削除49 [10,15]->(.{1})(\d{2})(\d{9})->$3
+ を削除41 [10,13]->(^\+41+)(\d+)->$2
+ を削除41 [10,13]->(.{1})(\d{2})(\d{9})->$3
+XX を削除 [10,14]->(^\++)(\d{2})(\d+)->$3
説明 翻訳正規表現数
+ を削除し、それを 0 US E に置き換えます164 [10,12]->(.{1})(\d{1})(\d{10})-> 001 $3
+1 を削除し、それを 0 US E に置き換えます164 [10,12]->(^\+1+)(\d+)-> 001$2
+ を取り去り、それを 0 DE E に置き換えます164 [12,15]->(.{1})(\d{2})(\d{10})-> 0049 $3
+49 を削除し、それを 0 の E に置き換えます164 [10,12]->(^\+49+)(\d+)-> 0049$2
+ を削除し、それを 0 CH E に置き換えます164 [10,13]->(.{1})(\d{2})(\d{9})-> 0041 $3
+41 を削除し、0 CH E に置き換えます164 [10,12]->(^\+41+)(\d+)-> 0041$2
説明 翻訳正規表現数
スペースのある米国番号 [12,17]->(\d{1})(\d{3})(\d{3})(\d{4})->+1} $2$3} $4
スペースのある米国番号 [12,17]->(\+1)(\d{3})(\d{3})(\d{4})->$1$2} $3$4
スペースを含む DE 番号 [12,17]->(\d{2})(\d{3})(\d{4})(\d{3})->+49} $2$3} $4
スペースを含む DE 番号 [12,17]->(\+49)(\d{3})(\d{4})(\d{3})->$1$2} $3$4
スペースの CH 番号 [12,17]->(\d{2})(\d{2})(\d{3})(\d{2})(\d{2})->+41$2} $3$4
スペースの CH 番号 [12,17]->(\+41)(\d{2})(\d{3})(\d{2})(\d{2})->$1$2}$3$4

VoiceCall ページの設定

VoiceCall レコードページを設定する

VoiceCall レコード ページは、デフォルトで事前設定されており、3 列のレイアウトと以下のコンポーネントがあります。

  • アクションと推奨事項
  • 通話メモ
  • 通話の詳細
  • 録画

ビジネスニーズに応じて、コンポーネントを自由に削除したり、ページに追加したりできます。異なるページレイアウトを使用することもできますが、通話録音プレーヤーや会話本文などの一部のコンポーネントは、テンプレートの中規模領域と大規模領域にのみ適合できます。

後処理理由コンポーネントを表示

コール中および後処理中に後処理理由コンポーネントを表示する必要があります。

Cisco Wrap-Up Reason コンポーネントを VoiceCall レコードページに追加します。

  1. ドラッグします Cisco Wrap-Up Reason Lightning コンポーネントリストの [カスタム(Custom)] 領域から [VoiceCall Record] ページへの Lightning Web コンポーネント。
  2. オプション Save.
  3. オプション Activate.
  4. オプション Assign as Org Default.
  5. オプション Save.
  6. オプション Save をもう一度クリックします Back arrow ページに戻ります。

メッセージは、 Cisco Wrap-Up Reason コンポーネントは、コール中および後処理中に自動的に表示されます。

ページに追加すると、Cisco Contact Center でラップアップが設定されていない場合でも、すべてのコールに対して Cisco Wrap-Up Reason コンポーネントが表示されます。

通話録音プレーヤーの表示

対応する音声通話の録音リンクが保存されている場合、通話録音プレーヤーが表示されます。

コール録音プレーヤーコンポーネントを VoiceCall 録音ページに追加するには、次の手順に従います。

  1. コール録音プレーヤー ライトニング Web コンポーネントを VoiceCall 録音ページにドラッグする
  2. オプション Save.
  3. オプション Activate.
  4. オプション Assign as Org Default.
  5. オプション Save.
  6. オプション Save を再度クリックし、[戻る] 矢印をクリックしてページに戻ります。

Webex 管理者

フローの構成

スクリーンポップアップ

「画面ポップアップ」ノードは、Webex Contact Center フローで使用できます。Service Cloud Voice 内または別のウィンドウでスクリーンポップをトリガーするために使用できます。

この機能の詳細については、 Flow Designer のドキュメント を参照してください。

別のウィンドウで画面ポップアップ

別のウィンドウでスクリーンポップを開くには、「スクリーンポップ」ノードに 絶対 URL を指定する必要があります。queryParameters は、検索パラメータとして URL に追加されます。

次のモードがサポートされています。

  • 新しいブラウザー タブ - 常に新しいブラウザー タブを開きます。
  • 既存のブラウザ タブ - 最初の [既存のブラウザ] タブ画面ポップアップで、新しいブラウザ タブが開きます。そのタブは、後続の既存のブラウザー タブのスクリーンポップの専用タブとなり、URL はその特定のブラウザー タブ内で更新されます。
  • デスクトップ内 - 新しいブラウザー タブと同じように処理されます。

現在開いているページでは、リダイレクトを防ぐことができます。この場合、既存のブラウザタブ画面ポップアップが新しいブラウザタブで開きます。

この投稿記事は役に立ちましたか?
この投稿記事は役に立ちましたか?