CustomEvent
This help page is for Desktop Studio. This information is also available for CXone Studio.
|
고유한 데이터를 전달할 수 있는 사용자 정의 이벤트를 만듭니다. 사용자 정의 이벤트를 사용하면 사용자가 특정 상담원에게 문자열을 전달할 수 있습니다. OnAnswer와(과) 같은 상담원 관련 작업에 대한 응답으로 생성될 수 있습니다. 이 작업의 속성에 TargetAgent이(가) 채워져 있으면 상담원이 할당되기 전에 생성될 수도 있습니다. 생성된 사용자 정의 이벤트는 상담원 이벤트 스트림에 들어갑니다. 사용자 정의 이벤트를 수신하려면 상담원 세션에 가입하여 이벤트를 수신합니다 (예: get-next-event 패러다임 사용). 기존 이벤트가 사용 사례에 맞지 않는 경우 사용자 정의 이벤트가 유용합니다. |
지원되는 스크립트 형식
|
|
|
|
|
|
|
일반 |
이메일 | 채팅 | 전화 | 음성 메일 | 워크 아이템 | SMS |
입력 속성
이러한 속성은 실행할 때 작업이 사용하는 데이터를 정의합니다.
속성 |
설명 |
---|---|
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 API를 사용하려면 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 | 문자열 | 데이터의 문자열. |