수식 무효화 예

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기3분
  • 다음 수식 무효화 예제를 사용하여 고유한 수식 무효화를 만들 수 있습니다.

    그룹 종료 상태 정의

    대화의 종료 상태는 대화가 종료되는 방식을 지정합니다. 예를 들어 사용자가 응답하지 않거나 사용자가 채팅 창을 닫는 것으로 끝날 수 있습니다. 종료 상태에는 12가지 기본 정의가 있습니다. 대화 종료 상태에 대한 자세한 내용은 다음 문서를 참조하십시오 가상 에이전트 상호작용 기록. 다음 스크립트는 다음과 같이 그룹화합니다.
    • VA가 채팅 세션을 종결했습니다.
      • 시스템 종결 VA - 사용자 응답 없음
      • 시스템 종결 VA - 주제 완료
      • 시스템 종결 VA - AI 검색으로 남음
      • 시스템 종결 VA - 자동 종결됨
      • 시스템 종결 VA - 사용자 참여 안 함
    • 라이브 에이전트가 채팅 세션을 종결했습니다.
      • 시스템 종결 LA - 사용자 응답 없음
      • 시스템 종결 LA - 채팅 완료
      • 에이전트 종결 LA - 클릭 종료/X
      • 시스템 종결 LA - 에이전트 참여 전
    • 사용자가 채팅 세션을 종결했습니다.
      • 사용자 종결 LA - 클릭 종료/X
      • 사용자 종결 VA - 클릭 종료/X
      • 사용자 종결 LA - 에이전트 참여 전

    이러한 12개 종료 상태 그룹을 만들려면 수식 재정의 만들기 지침을 따르고 다음 스크립트를 사용합니다.

    (function calc(convGr) {
        // Returns 'System Closed VA', 'System Closed LA', 'User Closed' states.
        function getFinalEndState(state) {
            var arrayUtil = new global.ArrayUtil();
            VA_END_STATE = ['System Closed VA – User No Response',
                'System Closed VA – Topic Complete',
                'System Closed VA – Left With AI Search',
                'System closed VA – Auto Closed',
                'System Closed VA – User Never Engaged'
            ];
            LA_END_STATE = ['System Closed LA – User No Response',
                'System Closed LA – Chat Complete',
                'Agent Closed LA – Clicked End/X',
                'System Closed LA – Before Agent Engagement'
            ];
            USER_CLOSED_END_STATE = ['User Closed LA – Clicked End/X',
                'User Closed VA – Clicked End/X',
                'User Closed LA - Before Agent Engagement'
            ];
            if (state) {
                if (arrayUtil.contains(VA_END_STATE, state))
                    return 'System Closed VA';
    
                if (arrayUtil.contains(LA_END_STATE, state))
                    return 'System Closed LA';
    
                if (arrayUtil.contains(USER_CLOSED_END_STATE, state))
                    return 'User Closed';
            }
            return state;
        }
    
        var conversationId = convGr.getValue('sys_id');
        var interactionGr = new GlideRecord('interaction');
        interactionGr.addQuery('channel_metadata_document', conversationId);
        interactionGr.addQuery('channel_metadata_table', 'sys_cs_conversation');
        interactionGr.query();
        if (interactionGr.next()) {
            var state = interactionGr.getValue('state');
            var reason = interactionGr.getValue('state_reason');
            var isVAChat = interactionGr.getValue('virtual_agent');
            var isLAChat = interactionGr.getValue('agent_chat');
            var endState = new CAUtil().getEndState(state, reason, isVAChat, isLAChat);
            return getFinalEndState(endState);
        }
    })(convGr);