Exemplo de substituição de fórmula.

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 2 min. de leitura
  • Use o exemplo a seguir para criar suas próprias substituições de fórmula.

    Definições do estado final de grupo

    O estado final de uma conversa especifica como a conversa terminou. Por exemplo, isso pode terminar com o usuário não respondendo ou com o usuário fechando a janela de bate-papo. Existem 12 definições padrão de estado final. Para mais informações sobre estados finais de conversa, consulte Registro de interação do Virtual Agent. O script a seguir os agrupa da seguinte forma:
    • O VA encerrou a sessão de bate-papo
      • VA encerrado pelo sistema - Usuário sem resposta
      • VA encerrado pelo sistema - Tópico concluído
      • VA encerrado pelo sistema - Saiu com a Pesquisa com IA
      • VA encerrado pelo sistema - Encerrado automaticamente
      • VA encerrado pelo sistema - Usuário nunca interagiu
    • O atendente encerrou a sessão de bate-papo
      • LA encerrado pelo sistema - Usuário sem resposta
      • LA encerrado pelo sistema - Chat concluído
      • LA encerrado pelo agente - Clicou em Encerrar/X
      • LA encerrado pelo sistema - Antes do compromisso do agente
    • O usuário encerrou a sessão de bate-papo
      • LA encerrado pelo usuário - Clicou em Encerrar/X
      • VA encerrado pelo usuário - Clicou em Encerrar/X
      • Usuário encerrou LA - antes do compromisso do agente

    Para criar esses agrupamentos dos 12 estados finais, siga as instruções para criar uma substituição de fórmula e use o script a seguir.

    (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);