CustomEvent
This help page is for Desktop Studio. This information is also available for Studio.
|
创建可用于传递唯一数据的自定义事件。 自定义事件可使用户将字符串传递给特定坐席。 它们可在响应与坐席相关的操作时生成,例如 OnAnswer。 只要在此操作的属性中填充 TargetAgent,它们还可以在分配坐席之前生成。 生成的自定义事件会进入坐席事件流。 要接收自定义事件,请加入坐席会话以侦听事件,例如使用 get-next-event 范式。 如果现有事件不太适合您的用例,则自定义事件非常有用。 |
支持的脚本类型
|
|
|
|
|
|
|
通用 |
电子邮件 | 聊天 | 电话 | 语音信箱 | 工作项目 | 短信 |
输入属性
这些属性定义操作在执行时使用的数据。
属性 |
说明 |
---|---|
Caption |
输入在脚本中唯一标识此操作的短语。 标题显示在脚本画布上的操作图标下方。 |
TargetAgent |
自定义事件所针对的坐席的 ID。 Studio 脚本在呼入呼叫的 OnAnswer 事件之后填充 AgentId 变量。 自定义事件仅在填充 AgentId 时执行。 如果您想在坐席分配之前发送自定义事件,则必须向 TargetAgent 字段提供坐席 ID。 |
EventName |
输入您为自定义事件命名的名称。 同名的多个事件会相互覆盖。 只会保留该名称最近的事件。 该字段区分大小写。 |
PersistInMemory |
如果在坐席注销时执行事件,并且您希望他们在重新登录后接收该事件,则将此值设置为 true。 否则,设置为 false。 |
Data |
此事件的数据有效负载。 |
结果分支条件
结果分支条件允许您在脚本中创建分支,以在执行操作时处理不同的结果。
条件 |
说明 |
---|---|
Default | 除了脚本满足条件要求其接受其他分支的情况之外,所要采用的路径。 如果未定义操作的其他分支,也会执行此操作。 |
OnAgentNotConnected | 未连接目标坐席时所采用的路径。 |
脚本示例
在此脚本示例中,这些分支举例说明了您衍生自定义事件的三种场景:
-
分支 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 创建自定义事件
您还可以使用自定义事件 API 创建自定义事件。 如果 CustomEvent 操作不符合您用例的要求,这可能是必要的。 由于服务一般已经使用坐席事件流,因此这可能是一种共享数据的便捷方法,其无需实施您自己的自定义端点。 这对于小范围应用程序或微服务尤为相关。

您在 IVR 自动电话菜单,允许呼叫者通过语音命令、按键输入或两者进行交互,以获得信息、路由呼入的语音呼叫或两者。 中询问联系人最喜欢的颜色。 您将此选择打包并作为名为 FavoriteColor 的自定义事件进行传递。 您还有一个与 坐席应用程序 一起运行的配套服务,用于侦听 FavoriteColor 事件。 这可使您将联系人的颜色选择传递给该配套服务。 然后该服务显示 坐席应用程序 内的颜色。
使用该 API 与 Studio 操作类似,只不过您使用参数而不是属性。 使用 CXone Mpower API 还要求您实施 API 身份验证。 使用 API 时,请务必:
-
命名该事件。
- 在 agentId 参数或 Studio 操作的目标坐席属性中分配目标坐席。 您可以使用 AgentId 变量中的 ID。 这是在 OnAnswer 事件之后自动填充的。 如果您想在分配坐席之前发送自定义事件,则仍必须提供坐席 ID。
- 设置 persistInMemory 字段。 如果坐席已注销,这将确定他们重新登录后是否会收到此事件。
- 填充 Data 字段,这是字符串形式的有效负载。
- 使用采用 get-next-event API
或获取下一个事件 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 | 字符串 | 数据的任何字符串。 |