Salesforceのイベント

注意:この記事は、Salesforce向けGenesys Cloudに適用されます。

あなたは火に統合を設定するかのいずれかでイベントをリッスンすることができますSalesforce コンソールでSalesforceクラシックまたは(のpostMessage APIやライトニング・メッセージ・サービス付き)雷の経験のすべてのバージョンインチイベントの種類とそれらを起動またはリスンする方法は、使用するSalesforceユーザーインターフェースによって異なります。

注意:この記事は、Salesforceに精通している開発者を対象とした高度なカスタマイズのトピックです。

重要: Genesysでは、Lightning Experienceの新しい開発では、postMessage APIではなく、Lightning Message Service(LMS)を使用することをお勧めします。SalesforceはLMSをSummer ’20にリリースする予定です。Genesysは、postMessage Web APIの使用を最終的に廃止します。

Salesforce Console Integration Toolkitのイベントモデルを介して、統合は以下の項目に関連して発生するイベントを起動およびリッスンします。

  • ステータスの変更(利用可能、ビジー、退席中、不在、待機中など)
  • 通話アクティビティ(接続、切断、ACWが必要、ACWが完了)
  • インタラクション状態の変更(ピックアップ、切断、ミュート、ホールド、セキュア一時停止、blindTransfer、consultTransfer、finishTransfer、secureSession)

開発者はこれらのイベントを使用するVisualforceページを作成できます。コードの例については、以下を参照してください。 Salesforce Classic Consoleアプリのイベント (GitHub)。

Salesforceコンソールについては、を参照してください。 Salesforceクラシックのカスタムコンポーネントでコンソールをカスタマイズする Salesforceドキュメントにあります。

イベントモデルの使用については、 Salesforce Salesforceクラシック用コンソール統合ツールキット Salesforceドキュメントにあります。

統合により、次のイベントを起動してSalesforce送信できます。

注意:これらのイベント名は inin.salesforce.constants.consoleevent.pc。、リストの名前が後に続く、例えば、 inin.salesforce.constants.consoleevent.pc.UPDATE_STATUS.

ACW_COMPLETED

ACWが完了しました。

パラメーター

データ・タイプ 説明 メモ
reason 文字列 イベントのタイプ。
interactId 文字列 インタラクションのID。

{
    "reason": "acw_completed",
    "interactionId": "44560c74-5e84-4062-94b6-5680cdeb54d5" 
}

ACW_REQUIRED

ACWが必要です。

パラメーター

データ・タイプ 説明 メモ
reason 文字列 イベントのタイプ。
interactId 文字列 インタラクションのID。

{ 
    "reason": "acw_required",
    "interactionId": "44560c74-5e84-4062-94b6-5680cdeb54d5"
}

INTERACTION_EVENT

インタラクション状態変化。

パラメーター

データ・タイプ 説明 メモ
reason 文字列 アクションのタイプ。
data オブジェクト 見る データオブジェクト.

データオブジェクト

アクションを定義します。

パラメーター

データ・タイプ 説明 メモ
category 文字列 イベントのタイプ。 有効な値:変更、追加。
data オブジェクト

{
    "reason": "interaction",
    "data": {
	"category": "change",
	"data": { }
    }
}

INTERACTION_CONNECTED

インタラクション接続されました。

パラメーター

データ・タイプ 説明 メモ
reason 文字列 イベントのタイプ。
interactId 文字列 インタラクションのID。

{
    "reason": "connected",
    "interactionId": “44560c74-5e84-4062-94b6-5680cdeb54d5″
}

INTERACTION_DISCONNECTED

対話が切断されました。

パラメーター

データ・タイプ 説明 メモ
reason 文字列 イベントのタイプ。
interactId 文字列 インタラクションのID。

{
    "reason": "disconnected",
    "interactionId": “44560c74-5e84-4062-94b6-5680cdeb54d5″
}

LOGGED_OUT

ユーザーがログアウトしました。

パラメーター

データ・タイプ 説明 メモ
reason 文字列 イベントのタイプ。

{
    "reason": "logged_out"
}

UPDATE_STATUS

ユーザーがログアウトしました。

パラメーター

データ・タイプ 説明 メモ
reason 文字列 イベントのタイプ。
ステータス 文字列 エージェントのステータス 。
id 文字列 選択したステータス ID(プライマリまたはセカンダリ)。
sub_status 文字列 エージェントのセカンダリステータス 。 統合は二次の状態を使用している場合は、 応答二含んステータス情報を。

{
    "reason": "status_updated",
    "status": "AVAILABLE",
    "id": "44560c74-5e84-4062-94b6-5680cdeb54d5",
    "sub_status":"Available Work At Home"
}

統合により、 ステータス変更とエージェントのステータス変更に関する次のアクションが公開されます。

注意:これらのアクションは inin.salesforce.constants.consoleevent.、リストの名前が続きます。たとえば、 inin.salesforce.constants.consoleevent.changestatus.

addCustomAttributes

インタラクションにカスタム属性を追加します。

パラメーター

データ・タイプ 説明 メモ
data オブジェクト 見る データオブジェクト.

データオブジェクト

アクションを定義します。

パラメーター

データ・タイプ 説明 メモ
id 文字列 インタラクションのID。
属性 オブジェクト カスタムインタラクション属性のキーと値のペア。

{ 
    "data": {
        "id": "1234-1234-1234-1234",
        "attributes": {
            "record_url": "/0000413456"
        }
    }
}

状態を変える

インタラクションの状態を更新します。

パラメーター

データ・タイプ 説明 メモ
data オブジェクト 見る データオブジェクト.

データオブジェクト

アクションを定義します。

パラメーター

データ・タイプ 説明 メモ
action 文字列 相互作用の望ましい状態。

値:ピックアップ、切断、ホールド、ミュート、securePause、blindTransfer、consultTransfer、finishTransfer、secureSession。

使用のみ 終了転送 相談の転送および セキュアセッション 安全なIVRフローを実現します。

id 文字列 インタラクションのID。
participantContext オブジェクト 見る participantContextオブジェクト. 使用のみ 参加者コンテキスト いつ アクション は に設定されます ブラインド転送 または consultTransfer(コンサルテーション.
secureSessionContext (セキュアセッションコンテキスト) オブジェクト 参照 secureSessionContext オブジェクトsecureSessionContext object. 使用のみ secureSessionContext (セキュアセッションコンテキスト) いつ アクション は に設定されます セキュアセッション.

participantContext object

転送を受信するエンティティを定義します。

パラメーター

データ・タイプ 説明 メモ
transferTarget 文字列 外部転送のエージェントまたはキューのID、フロー名、フローID、または電話番号。

フロー名またはフロー ID に sip: のプレフィックスを付けます (例: sip:AuditorSecureFlow)。

特殊文字を encodeURIComponent() エンコードURIコンポーネント() メソッド。

transferTargetType 文字列 転送エンティティのタイプ。

値:userId、queueId、address。

使用 住所 フロー名、フローID、または外部転送用の電話番号 転送ターゲット.

secureSessionContext オブジェクトsecureSessionContext object

転送を受信するエンティティを定義します。

パラメーター

データ・タイプ 必須またはオプション 説明 メモ
フローID 文字列 必須 転送されたインタラクションを受信するセキュアフローの ID。
ユーザーデータ 文字列 必須 顧客が提供するデータ。

へのマップ Flow.InvocationData 安全なフローの変数です。

警告: セキュアまたはPCIデータを ユーザーデータ.

[切断] ブール値 オプショナル セキュアセッションの作成後にインタラクションを切断する (true)、またはセキュアセッションの作成後にインタラクションを切断しない (false)。

次の例は、エージェントまたはキューにコンサルテーションなしで転送されたインタラクションを示しています。

{
    "data": {
        "action": "blindTransfer",
        "id": "1234-1234-1234-1234",
        "participantContext": {
            "transferTarget": "3175550123",
            "transferTargetType": "address"
        }
    }
}

次の例は、安全なIVRフローに転送されたインタラクションを示しています。

{
    "data": {
        "action": "secureSession",
        "id": "1234-1234-1234-1234",
        "secureSessionContext": {
            "flowId": "741f4f39-7a94-470d-a1dd-dd68d01e0dd8",
            "userData": "hello",
            "disconnect": false
        }
    }
}

ステータスを変更する

アップデートユーザー ステータス 。

パラメーター

データ・タイプ 説明 メモ
data オブジェクト 見る データオブジェクト.

データオブジェクト

アクションを定義します。

パラメーター

データ・タイプ 説明 メモ
id 文字列 インタラクションのID。

例 

{
    "data": {
        "id": "1234-1234-1234-1234"
    }
}

postMessageのWeb APIを介して、統合が発射できると周り提起されているイベントをリッスンステータスの変更、 インタラクション状態の変化、およびサブスクリプションへのインタラクション 、通知、またはUserActionsイベント。

コードの例については、以下を参照してください。 Salesforce Lightningアプリのイベント (GitHub)。

イベント名 説明
ハンドシェーク IF Window.postMessage API クライアント・イベント設定で選択されます。統合は、クライアントが負荷するときにハンドシェイク・イベントを提起します。ハンドシェイクイベントは、LightningコンポーネントがSalesforceクライアントに対してGenesysクラウドにイベントを発行できるようにするためのコンテキストを提供します。
インタラクション

インタラクション状態の変更を起動します。

可能な値: add、change、connect、disconnect、accw、deallocate、callbackPlaced、callbackCallEnded、blindTransfer、consultTransfer、completeConsultTransfer、secureSession。

通知

通知状態の変更を起動します。

可能な値:interactionSelection、chatUpdate、interactionWindow。

UserAction

ユーザーアクション状態の変更を起動します。

可能な値:ログイン、ログアウト、 ステーション 、 ステータス 、モーダル、routingStatus、ビュー。

詳細については、以下を参照してください。 購読タイプごとのイベント (Genesys Cloud Developer Center)を参照してください。

注記:Genesys Cloud Embeddable Frameworkマニュアルに記載されているすべてのコールバック・パラメータは、追加されたルート・タイプとともにpostMessageデータ・ペイロードで利用できます。以下を参照してください。 Salesforce向けGenesys Cloudとの通信 セクション。

管理者は、統合が起動してイベントを待機するようにコールセンター設定を構成します。

  1. Salesforceで、をクリックします セットアップ
  2. 検索する インストール済みパッケージ
  3. 下で ビルド、クリック インストール済みパッケージ
  4. インストール済みパッケージ ページをクリックし、 設定 [Genesys Cloud for Salesforce]パッケージの隣に表示されます。
  5. 下で クライアントイベント設定次の項目を構成します。 クライアントイベントメッセージ:
  6. クライアントイベントメッセージタイプ、選択 Window.postMessage API

    この設定により、クライアントがロードするたびに統合によってハンドシェイクイベントが発生します。

  7. (オプション) クライアントイベントタイプその他のイベント(インタラクション、通知、およびユーザーアクション)を選択して登録します。クリック 矢印  下に追加します 選ばれた
  8. (オプション)選択 チャット通知を展開 チャット通知イベントの拡張ペイロードを受信します。
  9. 保存するをクリック。

注意:LightingコンポーネントをユーティリティアイテムとしてLightningアプリに追加する場合は、必ず選択してください自動的に開始. 詳細については、 照明アプリにユーティリティバーを追加する Salesforceドキュメントにあります。

詳細については、 クライアント イベントの構成

Salesforceクライアント用Genesys Cloudは、postMessage Web APIを通じて生成された次のアクションを公開します。

Interaction.addCustomAttributes

インタラクションにカスタム属性を追加します。

パラメーター

データ・タイプ 説明 メモ
タイプ 文字列 アクションのタイプ。 PureCloud 。 +アクション名。
data オブジェクト 見る データオブジェクト.

データオブジェクト

アクションを定義します。

パラメーター

データ・タイプ 説明 メモ
id 文字列 インタラクションのID。
属性 オブジェクト カスタムインタラクション属性のキーと値のペア。

{
    "type": "PureCloud.Interaction.addCustomAttributes", 
    "data": {
        "id": "1234-1234-1234-1234",
        "attributes": {
            "record_url": "/0000413456"
        }
    }
}

Interaction.updateState

インタラクションの状態を更新します。

パラメーター

データ・タイプ 説明 メモ
タイプ 文字列 アクションのタイプ。 PureCloud 。 +アクション名。
data オブジェクト 見る データオブジェクト.

データオブジェクト

アクションを定義します。

パラメーター

データ・タイプ 説明 メモ
action 文字列 相互作用の望ましい状態。

値:ピックアップ、切断、ホールド、ミュート、securePause、blindTransfer、consultTransfer、finishTransfer、secureSession。

使用のみ 終了転送 相談の転送および セキュアセッション 安全なIVRフローを実現します。

id 文字列 インタラクションのID。
participantContext オブジェクト 見る participantContextオブジェクト. 使用のみ 参加者コンテキスト いつ アクション は に設定されます ブラインド転送 または consultTransfer(コンサルテーション.
secureSessionContext (セキュアセッションコンテキスト) オブジェクト 参照 secureSessionContext オブジェクトsecureSessionContext object. 使用のみ secureSessionContext (セキュアセッションコンテキスト) いつ アクション は に設定されます セキュアセッション.

participantContext object

転送を受信するエンティティを定義します。

パラメーター

データ・タイプ 説明 メモ
transferTarget 文字列 外部転送のエージェントまたはキューのID、フロー名、フローID、または電話番号。

フロー名またはフロー ID に sip: のプレフィックスを付けます (例: sip:AuditorSecureFlow)。

特殊文字を encodeURIComponent() エンコードURIコンポーネント() メソッド。

transferTargetType 文字列 転送エンティティのタイプ。

値:userId、queueId、address。

使用 住所 フロー名、フローID、または外部転送用の電話番号 転送ターゲット.

secureSessionContext オブジェクトsecureSessionContext object

転送を受信するエンティティを定義します。

パラメーター

データ・タイプ 必須またはオプション 説明 メモ
フローID 文字列 必須 転送されたインタラクションを受信するセキュアフローの ID。
ユーザーデータ 文字列 必須 顧客が提供するデータ。

へのマップ Flow.InvocationData 安全なフローの変数です。

警告: セキュアまたはPCIデータを ユーザーデータ.

[切断] ブール値 オプショナル セキュアセッションの作成後にインタラクションを切断する (true)、またはセキュアセッションの作成後にインタラクションを切断しない (false)。

次の例は、エージェントまたはキューにコンサルテーションなしで転送されたインタラクションを示しています。

{
    "type": "PureCloud.Interaction.updateState", 
    "data": {
        "action": "blindTransfer",
        "id": "1234-1234-1234-1234",
        "participantContext": {
            "transferTarget": "3175550123",
            "transferTargetType": "address"
        }
    }
}

次の例は、安全なIVRフローに転送されたインタラクションを示しています。

{
    "type": "PureCloud.Interaction.updateState", 
    "data": {
        "action": "secureSession",
        "id": "1234-1234-1234-1234",
        "secureSessionContext": {
            "flowId": "741f4f39-7a94-470d-a1dd-dd68d01e0dd8",
            "userData": "hello",
            "disconnect": false,
        }
    }
}

User.updateStatus

アップデートユーザー ステータス 。

パラメーター

データ・タイプ 説明 メモ
タイプ 文字列 アクションのタイプ。 PureCloud 。 +アクション名。
data オブジェクト 見る データオブジェクト.

データオブジェクト

アクションを定義します。

パラメーター

データ・タイプ 説明 メモ
id 文字列 インタラクションのID。

{
    "type": "PureCloud.User.updateStatus", 
    "data": {
        "id": "1234-1234-1234-1234"
    }
}

Salesforceがコールセンター設定で選択されたイベントをリッスンしてSalesforceできるように、照明コンポーネントを作成します。

  1. Apex、コンポーネント、およびJavaScriptファイルをSalesforce開発者コンソールに追加します。

    サンプルファイルは次からダウンロードできます。 PureCloud for Salesforce Einsteinの例 GitHubリポジトリ。

    詳細については、 開発者コンソールのファイルメニュー Salesforceドキュメント。

  2. をセットする タイプ そして id JavaScriptファイルのソース用。

    この設定により、クライアントのステータスを変更できます。

    source.postMessage({
        type: 'PureCloud.User.updateStatus',
        data: { id: status },
    }
  3. 管理者がインタラクション、通知、またはUserActionsイベントを起動するように統合を構成した場合、JavaScriptファイルでこれらのイベントをサブスクライブします。

    詳細については、 購読 メソッドを Genesysクラウド組み込み可能フレームワーク ドキュメンテーション(Genesys Cloud Developer Center)。

ライトニングメッセージサービスを通じて、統合が発射できると周り提起されているイベントをリッスンステータスの変更、 インタラクション状態の変化、およびサブスクリプションへのインタラクション 、通知、またはUserActionsイベント。

コードの例については、以下を参照してください。 Salesforce Lightningアプリのイベント (GitHub)。

イベント名 説明
インタラクション

インタラクション状態の変更を起動します。

可能な値: add、change、connect、disconnect、accw、deallocate、callbackPlaced、callbackCallEnded、blindTransfer、consultTransfer、completeConsultTransfer、secureSession。

通知

通知状態の変更を起動します。

可能な値:interactionSelection、chatUpdate、interactionWindow。

UserAction

ユーザーアクション状態の変更を起動します。

可能な値:ログイン、ログアウト、 ステーション 、 ステータス 、モーダル、routingStatus、ビュー。

詳細については、以下を参照してください。 購読タイプごとのイベント (Genesys Cloud Developer Center)を参照してください。

注記:Genesys Cloud Embedable Frameworkマニュアルに記載されているすべてのコールバックパラメータは、追加されたルートタイプとともにLightning Message Serviceデータペイロードで利用できます。以下を参照してください。 Salesforce向けGenesys Cloudとの通信 セクション。

管理者は、統合が起動してイベントを待機するようにコールセンター設定を構成します。

  1. Salesforceで、をクリックします セットアップ
  2. 検索する インストール済みパッケージ
  3. 下で ビルド、クリック インストール済みパッケージ
  4. インストール済みパッケージ ページをクリックし、 設定 [Genesys Cloud for Salesforce]パッケージの隣に表示されます。
  5. 下で クライアントイベント設定次の項目を構成します。 クライアントイベントメッセージ:
  6. クライアントイベントメッセージタイプ、選択 Lightningメッセージチャネル

    この設定により、統合はメッセージチャネルでメッセージを送信します。

  7. (オプション) クライアントイベントタイプその他のイベント(インタラクション、通知、およびユーザーアクション)を選択して登録します。クリック 矢印  下に追加します 選ばれた
  8. (オプション)選択 チャット通知を展開 チャット通知イベントの拡張ペイロードを受信します。
  9. 保存するをクリック。

注意:LightingコンポーネントをユーティリティアイテムとしてLightningアプリに追加する場合は、必ず選択してください自動的に開始. 詳細については、 照明アプリにユーティリティバーを追加する Salesforceドキュメントにあります。

詳細については、 クライアント イベントの構成

Salesforceクライアント用Genesys Cloudは、Lightning Message Serviceから提起された次のアクションを公開します。

Interaction.addCustomAttributes

インタラクションにカスタム属性を追加します。

パラメーター

データ・タイプ 説明 メモ
タイプ 文字列 アクションのタイプ。 PureCloud 。 +アクション名。
data オブジェクト 見る データオブジェクト.

データオブジェクト

アクションを定義します。

パラメーター

データ・タイプ 説明 メモ
id 文字列 インタラクションのID。
属性 オブジェクト カスタムインタラクション属性のキーと値のペア。

{
    "type": "PureCloud.Interaction.addCustomAttributes",
    "data": {
        "id": "1234-1234-1234-1234",
        "attributes": {
            "record_url": "/0000413456"
        }
    }
}

Interaction.updateState

インタラクションの状態を更新します。

パラメーター

データ・タイプ 説明 メモ
タイプ 文字列 アクションのタイプ。 PureCloud 。 +アクション名。
data オブジェクト 見る データオブジェクト.

データオブジェクト

アクションを定義します。

パラメーター

データ・タイプ 説明 メモ
action 文字列 相互作用の望ましい状態。

値:ピックアップ、切断、ホールド、ミュート、securePause、blindTransfer、consultTransfer、finishTransfer、secureSession。

使用のみ 終了転送 相談の転送および セキュアセッション 安全なIVRフローを実現します。

id 文字列 インタラクションのID。
participantContext オブジェクト 見る participantContextオブジェクト. 使用のみ 参加者コンテキスト いつ アクション は に設定されます ブラインド転送 または consultTransfer(コンサルテーション.
secureSessionContext (セキュアセッションコンテキスト) オブジェクト 参照 secureSessionContext オブジェクトsecureSessionContext object. 使用のみ secureSessionContext (セキュアセッションコンテキスト) いつ アクション は に設定されます セキュアセッション.

participantContext object

転送を受信するエンティティを定義します。

パラメーター

データ・タイプ 説明 メモ
transferTarget 文字列 外部転送のエージェントまたはキューのID、フロー名、フローID、または電話番号。

フロー名またはフロー ID に sip: のプレフィックスを付けます (例: sip:AuditorSecureFlow)。

特殊文字を encodeURIComponent() エンコードURIコンポーネント() メソッド。

transferTargetType 文字列 転送エンティティのタイプ。

値:userId、queueId、address。

使用 住所 フロー名、フローID、または外部転送用の電話番号 転送ターゲット.

secureSessionContext オブジェクトsecureSessionContext object

転送を受信するエンティティを定義します。

パラメーター

データ・タイプ 必須またはオプション 説明 メモ
フローID 文字列 必須 転送されたインタラクションを受信するセキュアフローの ID。
ユーザーデータ 文字列 必須 顧客が提供するデータ。

へのマップ Flow.InvocationData 安全なフローの変数です。

警告: セキュアまたはPCIデータを ユーザーデータ.

[切断] ブール値 オプショナル セキュアセッションの作成後にインタラクションを切断する (true)、またはセキュアセッションの作成後にインタラクションを切断しない (false)。

次の例は、エージェントまたはキューにコンサルテーションなしで転送されたインタラクションを示しています。

{
    "type": "PureCloud.Interaction.updateState", 
    "data": {
        "action": "blindTransfer",
        "id": "1234-1234-1234-1234",
        "participantContext": {
            "transferTarget": "3175550123",
            "transferTargetType": "address"
        }
    }
}

次の例は、安全なIVRフローに転送されたインタラクションを示しています。

{
    "type": "PureCloud.interaction.updateState", 
    "data": {
        "action": "secureSession",
        "id": "1234-1234-1234-1234",
        "secureSessionContext": {
            "flowId": "741f4f39-7a94-470d-a1dd-dd68d01e0dd8",
            "userData": "hello",
            "disconnect": false,
        }
    }
}

User.updateStatus

アップデートユーザー ステータス 。

パラメーター

データ・タイプ 説明 メモ
タイプ 文字列 アクションのタイプ。 PureCloud 。 +アクション名。
data オブジェクト 見る データオブジェクト.

データオブジェクト

アクションを定義します。

パラメーター

データ・タイプ 説明 メモ
id 文字列 ステータス ID。

{
    "type": "PureCloud.User.updateStatus",
    "data": {
        "id": "1234-1234-1234-1234"
    }
}

メッセージチャンネルをサブスクライブするには、バージョン3.12をインストールしますまたはそれ以降の PureCloud for Salesforce Managed パッケージ これらのバージョンの管理パッケージには、 purecloud__ClientEvent__c すべてのメッセージを受信するチャネル。購読した後 purecloud__ClientEvent__c、 Salesforceはコールセンターの設定で選択されたイベントをリッスンしてSalesforceできます。

実装方法は、使用するコンポーネントによって異なります。次のコード例は、Lightning AuraコンポーネントでLMSを使用する方法を示しています。

でLightningメッセージを購読する purecloud__ClientEvent__c Auraコンポーネントのチャネル。

<lightning:messageChannel type="purecloud__ClientEvent__c" aura:id="clientEventMessageChannel" onMessage="{!c.onClientEvent}" scope="APPLICATION"/>

Lightningメッセージを受信するには、 onClientEvent.

({
    onClientEvent: function (component, message, helper) {
        var eventData = message.getParams();
        if (eventData) {
            if(eventData.type === 'Interaction' && eventData.data.id) {
		console.log(‘Interaction ID: ‘ + eventData.data.id);
            }
        }
    }
})

Lightningメッセージを送信するには、Salesforceクライアント用Genesys Cloudがリッスンするイベントを公開します。イベントのリストについては、 Salesforce向けGenesys Cloudとの通信 セクション。

component.find('clientEventMessageChannel').publish({
    type: 'PureCloud.User.updateStatus',
    data: { id: status }
});

他の例については、 Lightningメッセージサービス[開発者プレビュー] Salesforce Developers Blogをご覧ください。

統合の詳細については、以下を参照してください。Salesforce向けGenesys Cloudについて.