Salesforce Agentのカスタマイズタスク

オプションのタスクには、 オムニチャネルの設定とクイック返信の作成が含まれます。

一般的なSalesforce Agentの設定の管理

1回の通話で許可される最大人数を変更したり、エージェントがコミットメントを削除できるかどうかを変更したりできます。

  1. アプリセレクターをクリックして、次を選択します:ACD
  2. ACD設定 > 事業単位に移動します。

  3. 詳細タブで、 編集をクリックします。
  4. Salesforce Agentセクションまでスクロールします。
  5. カンファレンス当事者の最大数(エージェントを含む)を変更する必要がある場合は、ドロップダウンから数を選択します。
  6. エージェントがコールバックコミットメントを削除できるかどうか、およびメモが必要かどうかを変更する場合は、コミットメントの削除フィールドを削除不可削除可能-メモあり、または削除可能-メモなしに設定します。
  7. [完了]をクリックします。

スクリーンポップ設定

NICE CXoneIVR閉じた 音声コマンド、キー入力、またはその両方を使用して発信者が情報を取得したり、着信音声通話をルーティングしたり、またはその両方を行うことができる自動電話メニュー。スクリプト変数を使用してクエリを作成し、Salesforce SoftPhone レイアウトとデータ マッピングで特定の設定を指定することにより、エージェントが現在接続しているコンタクトに関するスクリーン ポップまたは情報のウィンドウを構成およびカスタマイズできます。

スクリーンポップは以下の4つの段階を経て表示されます。

  1. Salesforceでソフトフォンレイアウトを設定します。 以下を指定します:

  2. 連絡先の既存のSalesforceケース番号を開くスクリプトをStudioで作成します。 スクリプトはケースを検索し、ケースが存在する場合は、電話番号と通話メタデータをSalesforce拡張機能に送信します。 ケース番号が存在しない場合、スクリプトは発信者の電話番号(ANI閉じた 発信者IDとも呼ばれます。 着信音声通話のリストに表示される電話番号です。)を内線に送信し、内線番号は発信者の連絡先記録を検索して開きます。

  3. 拡張機能に送信するスクリプトの制御変数を作成します。 これを行うには、Studioを使用してScreenPopプロパティをTRUEに設定し(詳細については、スクリプトのAssignアクションを参照)、次のメソッドの1つまたは両方を使用して制御変数クエリを作成します。

    クエリ変数を作成しない場合、 Salesforce Agentはデフォルトのクエリ、またはSalesforce SoftPhone Layout設定にリストされているオブジェクトを検索するクエリを実行します。 Salesforce Agentはこれらのオブジェクトの電話番号フィールドでANIのデフォルトクエリを実行します。

    スクリプトによって提供されるすべての変数は、クエリ変数および他のすべての公開変数を含め、クエリ文字列としてVisualForceページに渡されます。 Salesforceは、公開変数のすべてを、カスタムJavaScriptコード、VisualForce、およびApexページがアクセスできるUserオブジェクトのカスタムフィールドに保存します。

    カスタムフィールドにはカスタムコードでアクセスできますが、そこからのアクセスは読み取りのみにする必要があります。 更新または削除は行わないでください。 その場合、Salesforce Agentで予期しない動作が発生する可能性があります。

  4. Studioで、ReqagenスクリプトアクションのScreenPopSourceプロパティをスキルからのデフォルトに設定します。

  5. CXoneで、クエリを実行するACDスキル閉じた エージェントのスキル、能力、知識に基づいてインタラクションの配信を自動化するために使用されますごとにスクリーンポップを使用オプションを有効にします。 詳細については、「スクリーンポップ設定」を参照してください。

カスタムボタンの設定

Salesforceでは、アプリケーション内のエージェントのエクスペリエンスをカスタマイズできます。たとえば、エージェントが特定のページを開くことができるように、Salesforceのカスタムボタンを設定できます。 ただし、CXoneがSalesforceと統合される場合、カスタマイズを行う前に、CXoneプラットフォームの特定のロジックと情報を考慮する必要があります。 この機能により、連絡先に関する情報またはメタデータをキャプチャ、取得、または生成するために必要なIVR閉じた 音声コマンド、キー入力、またはその両方を使用して発信者が情報を取得したり、着信音声通話をルーティングしたり、またはその両方を行うことができる自動電話メニュー。スクリプトにロジックを作成し、それを使用して、Salesforce内の実際のカスタマイズされたエクスペリエンスの要素を維持しながら、Salesforce内のカスタマイズされたエクスペリエンスを推進できます。 つまり、Salesforceに送信する情報またはメタデータに変数を割り当てて公開する必要があります。 それらを公開するには、変数ScreenPopプロパティをTRUEに設定する必要があります。 Salesforce拡張機能は、これらの変数をパイプ区切りのリストとしてユーザーオブジェクトのカスタムフィールドに格納し、Salesforce環境の任意のカスタムコードで使用できます。 コードの使用例は、タスクの説明の後にあります。

  1. カスタムボタンを作成し、ページレイアウトに追加します。 たとえば、連絡先のオブジェクトとページレイアウトの上に配置します。 ボタンはJavaScriptを実行するように設定できます。

  2. NICE CXoneUser.Custom_Screenpop_cフィールドから変数にアクセスできるコードを作成します。 次のコードは、このフィールドのデータにアクセスし、JavaScriptで使用する変数名と値のコレクションに解析する方法を示しています。

    {!REQUIRESCRIPT("/soap/ajax/20.0/connection.js")} // get the contents of the field var userVal = "{!User.Custom_Screenpop__c}"; // create an array that splits on the “|” symbol var splitVals = userVal.split("|"); // each element of the splitVals array will be in the // format of “varName=value”, where “varName” is the variable // name published from NICE CXone .
  3. JavaScriptコードで使用するIVRスクリプトの変数を公開します。

Studioアクションでインターフェイスをカスタマイズ

StudioindicateMessagePage 、およびRunappなどのアクションを使用して、Salesforce Agentインターフェイスをカスタマイズし、通話中のエージェントをガイドすることができます。

  • Indicateアクションを使用して、エージェントがウェブページまたはアプリケーションへのハードコーディングされたリンクを起動できるようにすることができます。 これらは、エージェントがSalesforce Agentインターフェイスから直接アクセスできる一般的な参照またはリソースです。 Indicateアクションを使用して、エージェントがクリックしてウェブページを開くことができるカスタムボタンを生成することもできます。 通話がアクティブなときに、連絡先を処理するエージェントを受信者として選択した場合、ボタンは電話のコントロールパネルの下部に表示されます。 他の受信者を選択すると、ボタンがSalesforce Agentの上部に表示されます。

  • Messageアクションを使用して、エージェントメッセージをSalesforce Agentの上部バーとメッセージウィンドウに表示するように設定できます。 単一のエージェント、チーム、すべてのエージェント、またはスキル閉じた エージェントのスキル、能力、知識に基づいてインタラクションの配信を自動化するために使用されますにメッセージを送信できます。 マーキーのアイコンは、メッセージの数が表示されます。

    CXoneエージェントメッセージを設定して、でメッセージを作成することもできます。

  • Pageアクションを使用すると、Studio特定のイベントがで発生Salesforce Agentしたときに作成したページを自動的に開くことができます。
  • Runappアクションを使用して、特定のアクションが発生したときにウェブページを自動的に開くことができます。 SoftPhoneレイアウト設定に従ってSalesforceページが開きます。 ボタンが外部ウェブページを開く場合、これらの設定は無視され、ページは新しいウィンドウで開きます。

ロケール設定

Salesforceのロケール設定は、Salesforce Agentの数値、通貨、日付の表示方法を制御します。 場所に応じて日付と数値の形式を変更するには、Salesforceでユーザーのロケール設定を変更する必要があります。 これらの設定では、Salesforce Agentのローカライズを有効にすることもできます。 Salesforceのユーザー言語の選択によってSalesforce Agentの言語選択が制御されますが、ユーザーが言語を適用するには、その言語を有効にする必要があります。 Salesforceは次の言語をサポートしています:

  • 中国語(簡体字)
  • 中国語(繁体字)
  • 英語
  • フランス語
  • ドイツ語
  • イタリア語
  • 日本語
  • 韓国語
  • ポルトガル語
  • ロシア語
  • スペイン語

CXoneで適切な言語を使用して入力しない限り、固有名詞や使用できないカスタムコードの名前はローカライズされません。

  1. 右上隅の設定をクリックします。

  2. 検索ボックスを使用してユーザーを検索し、ユーザーをクリックします。

  3. 変更するユーザーの横にある編集をクリックします。 氏名をクリックしないでください。

  4. ロケール設定で、ロケールおよび言語フィールドを希望のロケールおよび言語に更新します。

  5. [保存]をクリックします。

Service Cloudユーザーを有効にする

Service Cloudユーザーを有効にすると、エージェントインターフェイスが最小化されたバーとして画面の右下隅に配置されます。 コンタクトの着信を示すためにバーが点滅します。

このオプションは、Service Cloudコンポーネントを使用しているユーザーのみが使用できます。 エージェントの[Service Cloudユーザー]オプションが表示されない場合は、以下の手順に従って、独自のプロファイルでService Cloudユーザーを有効にしてください。

  1. ユーザー名の横にあるドロップダウン矢印をクリックし、設定を選択します。

  2. 検索ボックスを使用してユーザーの管理を検索し、ユーザーをクリックします。

  3. ユーザーの追加または編集をクリックして、ユーザークォータを設定します。

  4. Service Cloudユーザーで有効にするユーザーの横にある編集をクリックします。 氏名をクリックしないでください。

  5. Service Cloudユーザーの横にあるチェックボックスを選択します。

  6. [保存]をクリックします。

Personal Connectionを有効化

  1. CXoneアカウント担当者に連絡して、事業単位閉じた CXone環境におけるテクニカルサポート、請求、およびグローバル設定を管理するために使用される上位レベルの組織グループPCを有効にしてください。
  2. CXonePC発信電話ACDスキル閉じた エージェントのスキル、能力、知識に基づいてインタラクションの配信を自動化するために使用されますを作成します。 スキルでスクリーンポップを有効にし、PCを使用するエージェントにスキルを割り当てます。
  3. CXoneまたはプロアクティブXSを介して通話リストをアップロードします。 SalesforceのデフォルトのANI閉じた 発信者IDとも呼ばれます。 着信音声通話のリストに表示される電話番号です。クエリではなく、一意の外部IDからスクリーンポップを生成できるように、Salesforce IDを使用してコールリストを生成します。 または、IVR閉じた 音声コマンド、キー入力、またはその両方を使用して発信者が情報を取得したり、着信音声通話をルーティングしたり、またはその両方を行うことができる自動電話メニュー。スクリプトでクエリ変数を使用して、クエリでSalesforce Agentの検索対象を制御することもできます。
  4. CXoneでスキルコントロールに移動し、PCスキルを開始します。 エージェントはPCダイヤルを開始することを選択する必要があります。

カスタム着信音をアップロード

アップロードできる最大ファイルサイズは、Salesforceファイルの設定に基づいています。 通常、最大サイズは2MBから25MBの間です。 ファイルサイズが大きいほど、エージェントが通話を受信したときのパフォーマンスへの影響が大きくなります。 デフォルトの着信音は3KBです。

  1. アプリランチャー(ドットグリッドで示される)をクリックして、ファイルを検索します。

  2. ライブラリ>アセットライブラリ>アセットファイルのアップロードをクリックします。

  3. ファイルのアップロードをクリックしてアップロードするMP3ファイルを選択します。 [OK]をクリックします。

  4. アセット名フィールドで、着信音に一意の名前を割り当てます。 API名フィールドで、Ringで始まる一意の名前を割り当てます。 [保存]をクリックします。
  5. 新しい着信音を選択するようにエージェントに指示します。

インバウンドコールの動的データ表示の設定

必要な権限: スクリプト 作成権限。

動的データの表示は、Salesforce Agent Lightning内でのみ使用できます。

Salesforce Agentは、エージェントが着信コールを受信すると、お客様の発信者ID、スキル、およびタイマーを自動的に表示します。 動的データ表示では、Studioスクリプトを使用して、着信コールを受信するエージェントに追加のお客様のデータを表示することができます。 他のアプリケーションからお客様のデータを取得することもできます。 エージェントは、お客様からそれらの情報を収集する必要はありません。

動的データの表示は、スクリプトで使用するインバウンドスキルを持つエージェントに対してのみ機能します。

動的データ表示を設定する場合、Studioでテンプレートのスクリプトを変更する必要があります。 このスクリプトは、 CustomEventアクションを使用します。これは、Studioのフレームワークタブにあります。 このタブは通常は非表示ですが、動的データ表示を使用する場合タブを表示する必要があります。 このタブはCXoneアカウント担当者のみが有効にできます。

CustomEventアクションには、2048文字までの制限があります つまり、ペイロード配列の要素がそれ以上の文字数を含む場合、複数のCustomEventアクションに分割する必要があります。 要素を分割しないと、結果は無効なJSONとなり、 Salesforce Agentには何も表示されません。

  1. テンプレートスクリプトを含むZIPファイルIB_Phone_AFSFDynamicData.zipをダウンロードします。

  2. ZIPファイルからテンプレートスクリプトを抽出します。

  3. Studioで、IB_Phone_AFSFDynamicData.xmlファイルをインポートします。

  4. スクリプトの目的を示す名前を付けて、新しいフォルダーに保存します。 たとえば、IBCustomScriptという名前を付けることも、連絡先の名前を指定することもできます。

  5. スクリプトに関連付けるインバウンドスキルを使用して、Reqagentアクションのスキルプロパティを構成します。

  6. OnHoldOnreskillOntransferなどのイベント時に渡すデータを追加したい場合は、OnAnswerのスクリプト内のアクションをすべて選択してから、スクリプトにコピー&ペーストして、正しいイベントアクションに接続 します。 テンプレートスクリプトに含まれるデフォルトイベントの1つを使用したくない場合は、それを削除します。

  7. スクリプト内のブランチごとに、エージェントに表示されるデータをカスタマイズします。 渡すデータが2048文字より大きい場合は、手順に従い、 追加のCustomEventアクションを追加し、スクリプトを終了します。

    1. Set Field ValuesSnippetアクションをダブルクリックして、デフォルトのグローバル変数を変更し、エージェントに対し表示されるテキストの外観をカスタマイズします。 特定のフィールドをデフォルト値で上書きすることができます。

    2. スニペットコードには、reqPayloadFieldというダイナミック変数が含まれています。 含めたいフィールドごとにコピーしてカスタマイズします。 最大10個のフィールドを追加できます。

      スクリプトにフィールドを追加するための変数の配列

      	
      reqPayloadField[1].id="Field1"
      reqPayloadField[1].text="<Your dynamic text goes here>"
      reqPayloadField[1].style.fontSize="{defaultFontSize}"
      reqPayloadField[1].style.fontWeight="{defaultFontWeight}"
      reqPayloadField[1].style.fontStyle="{defaultFontStyle}"
      reqPayloadField[1].style.align="center"
      reqPayloadField[1].style.backgroundColor="#FF0000"
      reqPayloadField[1].style.fontColor="#FFFFFF"	
      
  8. OnHoldOnReskillまたはOnTransferイベントでは、エージェントにデータを渡す方法に従って、recPayloadField変数のフィールドに番号を付ける必要があります。 以下の操作が可能です。

    • イベントアクションからイベントアクションへとフィールドナンバリングを増やし続けます。 このオプションを選択した場合、以前のイベントのすべてのフィールドが後続のイベントに渡されます。

    • 次回のイベントからフィールドナンバリングを「1」で再開します。 そのイベントのSet Field ValuesSnippetアクションで定義されたフィールドのみがエージェントに渡されます。

  9. スクリプト内のすべてのCustomEventアクションについて、以下のプロパティが指定された値を持つことを確認します。 いずれかの値が異なっている場合、スクリプトは動作しません。

    • TargetAgent{__agentId}

    • EventNameContact_CustomMessages

    • Data{reqPayload}

複数のCustomEventアクションを追加する

Salesforce Agentに渡すペイロード配列の要素が2048文字以上ある場合は、追加のCustomEventアクションを追加して、要素を分割する必要があります。 そうしないと、データは切り捨てられます。 この結果、無効なJSONとなり、 Salesforce Agentは、エージェントに何も表示しません。

  1. CustomEventアクションの必要数を決定し、スクリプトに追加します。 例えば、渡すべき文字数の合計が3016文字であれば、 CustomEventアクションが2つ必要になります。
  2. CustomEventアクションをSet Custom Event PayloadSnippetアクションの右側に並べ、Default分岐条件を用いて接続します。
  3. CustomEventアクションのキャプションプロパティを CustomEvent#に変更します。ここで、# は、アクションを追加するたびに順次増加する番号とします。 例えば、最初のアクションは CustomEvent1、2番目は CustomEvent2、といった具合になります。
  4. スクリプトで CustomEventのアクションごとに Set Field ValuesSnippet を1つずつ追加していき、次いで:

    1. Set Custom Event PayloadSnippetアクションの左側に隣同士に並べます。
    2. CustomEventアクションで行ったように、各Set Field ValuesSnippetアクションのキャプションプロパティに数字を追加してください。
    3. Defaultの分岐条件で接続します。

    CustomEventアクションを2つ追加した場合、スクリプトは以下の画像例のようになります。

  5. Set Field ValuesSnippetアクションを、渡したいデータでカスタマイズします。 各スニペットで使用されるサフィックスとインデックス番号が以下のガイドラインに従っていることを確認してください。

    • Suffix for reqPayloadField variable- reqPayloadField変数は、フィールドの各セットを個別に識別するための数値サフィックスを必要とします。 これにより、CustomEventアクションの各自にセットを割り当てることができます。 例えば、最初のSet Field ValuesSnippetでは、変数はreqPayloadField1、2番目では reqPayloadField2、といった具合になります。
    • IDサブフィールドreqPayloadField変数のIDサブフィールドは、すべてのSet Field ValuesSnippetアクションにわたって連続的に増加する必要があります。 最初のSet Field ValuesSnippetが8フィールドの場合、2番目のSet Field ValuesSnippetの最初のフィールドはid="Field9"で始まります。
    • reqPayloadFieldのインデックス値reqPayloadField配列のインデックス値は、各新しいSet Field ValuesSnippetでは1で始まる必要があります。
    • 例:

      Set Field Values Snippet #1: 
      reqPayloadField1[1].id="Field1"
       ...
      reqPayloadField1[8].id="Field8"
      Set Field Values Snippet #2:
      reqPayloadField2[1].id="Field9"
       ...
      reqPayloadField2[5].id="Field13"

  6. 以下の手順で、グローバル変数を変更し、各Set Field ValuesSnippetのフィールドのフォーマットを変更します。

    1. Set Field ValuesSnippetアクションをダブルクリックして、デフォルトのグローバル変数を変更し、エージェントに対し表示されるテキストの外観をカスタマイズします。 特定のフィールドをデフォルト値で上書きすることができます。

    2. スニペットコードには、reqPayloadFieldというダイナミック変数が含まれています。 含めたいフィールドごとにコピーしてカスタマイズします。 最大10個のフィールドを追加できます。

      スクリプトにフィールドを追加するための変数の配列

      	
      reqPayloadField[1].id="Field1"
      reqPayloadField[1].text="<Your dynamic text goes here>"
      reqPayloadField[1].style.fontSize="{defaultFontSize}"
      reqPayloadField[1].style.fontWeight="{defaultFontWeight}"
      reqPayloadField[1].style.fontStyle="{defaultFontStyle}"
      reqPayloadField[1].style.align="center"
      reqPayloadField[1].style.backgroundColor="#FF0000"
      reqPayloadField[1].style.fontColor="#FFFFFF"	
      
  7. 以下の手順で、 Set Custom Event PayloadSnippetを変更します:

    1. CustomEventアクションを追加するごとに、 Set Custom Event PayloadSnippetに、これらのコードの1セットが必要です。

      
      DYNAMIC payloadJSON
      payloadJSON.contactId = "{contactid}"
      payloadJSON.messages = reqPayloadField
      ASSIGN reqPayload = '{payloadJSON.AsJson()}'
                              

    各セットを以下のように修正します。

    • payloadJSON—この変数は、追加した行セットごとに一意である必要があります。 各行で表示されるすべての場所について、この変数の末尾に数字のサフィックスを追加してください。 追加した行セットごとに数字を1ずつ増やします。 例えば、セット1はpayloadJSON1、セット2はpayloadJSON2、といった具合です。
    • reqPayloadField—各行セットで、この変数の名前を照応するSet Field ValuesSnippetの変数名と一致するように変更します。 例えば、最初のSet Field ValuesSnippetでは、この変数はreqPayloadField1という名前になっているので、Set Custom Event PayloadSnippetの最初の行のセットでは、変数名はreqPayloadField1となるはずです。
    • reqPayload—各行セットで、この変数の末尾にサフィックスを追加してください。 各行セットの他の変数と一致するようにサフィックスを増やします。 例えば、最初の行セットでは、この変数はReqPayload1となります。

    例えば、 2つのCustomEventアクションがある場合、次のようになります。

    
    DYNAMIC payloadJSON1
    payloadJSON1.contactId = "{contactid}"
    payloadJSON1.messages = reqPayloadField1
    ASSIGN reqPayload1 = '{payloadJSON1.AsJson()}'
    DYNAMIC payloadJSON2
    payloadJSON2.contactId = "{contactid}"
    payloadJSON2.messages = reqPayloadField2
    ASSIGN reqPayload2 = '{payloadJSON2.AsJson()}'
                        

  8. CustomEventアクションのデータプロパティを、アクションのキャプションと同じサフィックス番号を持つreqPayload# 変数に変更します。 例えば、 CustomEvent1 というキャプションのついたアクションは、rePayload1という変数を使用します。

  9. スクリプト内のすべてのイベントアクション (OnAnswerOnHoldOnReskillOnTransfer)について、このタスクの手順を繰り返します。 recPayloadField変数のIDサブフィールドの番号付けを増やすために、ステップ5を実行すると、次のことが可能です。

    • イベントアクションからイベントアクションへとフィールドナンバリングを増やし続けます。 このオプションを選択した場合、以前のイベントのすべてのフィールドが後続のイベントに渡されます。

    • 次回のイベントからフィールドナンバリングを「1」で再開します。 そのイベントのSet Field ValuesSnippetアクションで定義されたフィールドのみがエージェントに渡されます。

  10. スクリプト内のすべてのCustomEventアクションについて、以下のプロパティが指定された値を持つことを確認します。 いずれかの値が異なっている場合、スクリプトは動作しません。

    • TargetAgent{__agentId}

    • EventNameContact_CustomMessages

    • Data{reqPayload#}、ここで#はアクションの各インスタンスでの異なる番号です。

スクリプトのインポートまたは保存で問題が発生した場合は、NICE CXone Implementation Teamまでお問い合わせください。