CustomEvent
This help page is for Desktop Studio. This information is also available for Studio.
|
一意のデータを提供するためのカスタムイベントを作成します。 カスタムイベントを使用すると、ユーザーは特定のエージェントに文字列を渡すことができます。 これらは、OnAnswerなどのエージェント関連のアクションに応じて生成できます。 TargetAgentがこのアクションのプロパティに入力されている限り、エージェントが割り当てられる前に生成することもできます。 生成されたカスタムイベントはエージェントイベントストリームに入ります。 カスタムイベントを受信するには、たとえばget-next-eventパラダイムを使用して、エージェントセッションに参加し、イベントをリッスンします。 既存のイベントがユースケースに完全に適合しない場合は、カスタムイベントが役立ちます。 |
サポートされているスクリプトタイプ
|
|
|
|
|
|
|
一般 |
Eメール | チャット | 電話 | ボイスメール | ワークアイテム | SMS |
入力プロパティ
これらのプロパティは、アクションが実行時に使用するデータを定義します。
プロパティ |
説明 |
---|---|
Caption |
スクリプト内でこのアクションを一意に識別できる、短いフレーズを入力します。 アクションアイコンにカーソルを合わせるとキャプションが表示されます。 |
TargetAgent |
カスタムイベントが対象とするエージェントのID。 Studioスクリプトは、インバウンドコールのOnAnswerイベント後にAgentId変数を設定します。 カスタムイベントは、AgentIdが入力された場合にのみ実行されます。 エージェントの割り当て前にカスタムイベントを送信する場合は、TargetAgentフィールドにエージェントIDを指定する必要があります。 |
EventName |
カスタムイベントの名前を入力します。 同じ名前のイベントが複数あると、互いに上書きされます。 最新のイベント名のみが保持されます。 このフィールドでは大文字と小文字が区別されます。 |
PersistInMemory |
エージェントがログアウトしたときにイベントが実行され、エージェントが再度ログインしたときにイベントを受信するようにする場合は、この値をtrueに設定します。 それ以外の場合はfalseとして設定します。 |
Data |
このイベントのデータペイロード。 |
結果分岐条件
結果の分岐条件を使用すると、アクションが実行されたときにさまざまな結果を処理できるように、スクリプトにブランチを作成できます。
条件 |
説明 |
---|---|
Default | スクリプトが他のブランチのいずれかを取る必要がある条件を満たさない限り、パスが取られます。 他のブランチが未定義の場合にも使用されます。 |
OnAgentNotConnected | 宛先エージェントが接続されていない場合に使用されるパス。 |
スクリプトの例
このスクリプトの例では、ブランチはカスタムイベントを生成する3つのシナリオを例示しています。
-
ブランチ1:エージェントとのインタラクションの前にカスタムイベントを開始して受信します。 コンタクトが1を押すと、get-custom-eventループによってカスタムイベントを受信します。
ペイロードの例を見る
{ "sessionId": "aUF6WkZJeW1nNno4NUp1eEhwZkxGdVgzaUJIRjIyMWlkaUQ2NkN0ejN0VkFyODQ4UFBZV3BiOVhRUT09", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 1" } ] }
-
ブランチ2:エージェントとのインタラクションの前にカスタムイベントを開始して受信します。 コンタクトが2を押すと、get-custom-eventループによってカスタムイベントを受信します。 また、Reqagentが発生した後、エージェントがコールに応答する前に、別のカスタムイベントが生成されます。
ペイロードの例を見る
エージェントとのインタラクション前のペイロード:
{ "sessionId": "NGVFOEd4UmJIdnlGWCtLblFEanRRSldtU2hDcXgxc1JhSUVHZ0NKNXdBSVRxa0F3MjhiOCtQM2E=", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 2" { ] }
Reqagentが発生した後、エージェントがコールに応答する前のペイロード:
{ "sessionId": "NGVFOEd4UmJIdnlGWCtLblFEanRRSldtU2hDcXgxc1JhSUVHZ0NKNXdBSW4xeThiR0M2R1FBYlBhZz09", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 2 and post reqAgent" { ] }
-
ブランチ2および3:エージェントがコールに応答した後にカスタムイベントを開始および受信します。
ペイロードの例を見る
{ "sessionId": "aktmZEY1aFpDWlVwM0FzenhzTHZ2TnhJanpsZjR5SXhsekYwaUN2TjFYbUcwOW82cjRsZVdIc1FKdz09", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "Type": "CallContactEvent", "ContactID": "510965166955", "MasterID": "510965166955", "Status": "Active", "OriginalState": "False", "CallType": "Regular", "DNIS": "", "ANI": "", "Skill": "23097992", "IsInbound": "True", "StartTimeUTC": "2024-07-12T15:46:38.000Z", "StartTime": "2024-07-12T15:46:38.000Z", "LastStateChangeTimeUTC": "2024-07-12T15:47:11.000Z", "LastStateChangeTime": "2024-07-12T15:47:11.000Z", "ScreenPopUrl": "", "DisconnectCode": "NA", "IsLogging": "False", "Timeout": "", "AllowDispositions": "True", "Label": "", "IsLinked": "False", "TimeZones": "", "FinalState": "False", "OtherInformation": "", "OtherInformationNewFormat": "", "BlendingToSkillName": "", "DeliveryType": "None", "CustomData": "", "ComplianceRecord": "False", "ConfirmationRequired": "False", "ParentContactId": "0", "OmniGroupId": "0", "ExternalId": "", "AnsMachineOverride": "False", "AnsMachineOverrideEndTime": "", "CustomerCardUrl": "", "InteractionId": "6a006eee-03d3-49fd-8aa9-614482684721", "IsRequireManualAccept": "False", "PhoneCallRefusalTimeOut": "45", "FaxMachineOveride": "False" }, { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "This is a sample message after onAnswer" }, { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "Type": "Mute", "AgentMuted": "True" } ] }
API経由でカスタムイベントを作成する
custom-event APIを使用してカスタムイベントを作成することもできます。 CustomEventアクションがユースケースの要件を満たしていない場合にこれが必要になることがあります。 通常、サービスはすでにエージェントイベントストリームを消費しているため、これは独自のカスタムエンドポイントを実装する必要なくデータを共有できる便利な方法です。 これは、小規模なアプリケーションやマイクロサービスに特に当てはまります。

IVR 音声コマンド、キー入力、またはその両方を使用して発信者が情報を取得したり、着信音声通話をルーティングしたり、またはその両方を行うことができる自動電話メニュー。でコンタクトに好きな色を尋ねます。 この選択をFavoriteColorという名前のカスタムイベントとしてパッケージ化して渡します。 また、FavoriteColorイベントをリッスンする、エージェントアプリケーションで実行されるコンパニオンサービスもあります。 これにより、コンタクトの色の選択をコンパニオンサービスに渡すことができます。 サービスはエージェントアプリケーション内部の色を表示します。
APIの使用はStudioアクションと似ていますが、プロパティの代わりにパラメーターを使用する点が異なります。 CXone MpowerAPIを使用するには、API認証を実装する必要もあります。 APIを使用するときは、必ず以下を行ってください。
-
イベントに名前を付けます。
- StudioアクションのagentIdパラメーターまたはターゲットエージェントプロパティにターゲットエージェントを割り当てます。 AgentId変数のIDを使用できます。 これは、OnAnswerイベント後に自動的に入力されます。 エージェントが割り当てられる前にカスタムイベントを送信する場合にも、エージェントIDを指定する必要があります。
- persistInMemoryフィールドを設定します。 エージェントがログアウトしている場合、これにより再度ログインした後にイベントを受信するかどうかが決まります。
- ペイロードを文字列としてDataフィールドに入力します。
- get-next-event API
またはGet Next Event Studioアクションを使用してカスタムイベントを使用します。
以下は、API経由でカスタムイベントを作成する例です。
curlの例:
curl -X PUT "https://api-$AREA.$DOMAIN/incontactapi/services/v30.0/agents/$AGENT_ID/custom-event?eventName=From_Postman&persistInMemory=false&data=Sent_from_Postman"
リクエストタイプ:PUT
フィールド:
パラメーター | タイプ | 詳細 |
---|---|---|
agentId | 文字列 | ターゲットエージェントを識別するエージェントID値。 |
eventName | 文字列 | イベントの名前。 これは、イベントのすべての消費者が使用する必要があります。 |
persistInMemory | ブーリアン | agentIdによって識別されるエージェントが現在ログインしていない場合、イベントは無視されるか、エージェントが再度ログインするとそのまま残ります。 |
data | 文字列 | 任意のデータの文字列。 |