---
sourceDocument: Australia Conversational Interfaces
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/conversational-interfaces

 Release :

    - australia

ft:locale :

    - de-DE

ft:publication_title :

    - Australia Conversational Interfaces

ft:clusterId :

    - convint

bundleId :

    - convint

workflow :

    - Platform


---

# Formula override example

# Formula override example {#ariaid-title1}

* Freigeben Version: Australia
* 
* Aktualisiert 12. März 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 Minute Lesedauer

Use the following formula override example to craft your own formula
overrides.

## Group End State definitions {#formula-override-examples-pae__section_i43_xfh_f4b}

The end state of a conversation specifies how a conversation ended. For example, it could end with the user not responding, or the user closed the chat window. There are 12 default definitions of end state. For more information on conversation end states, see [Virtual Agent interaction records](https://servicenow-prod.fluidtopics.net/4W2Ed2c1cbvENbIcWYvIKw "Each time a Virtual Agent conversation occurs, an interaction record captures the entire conversation in the Interactions [interaction] table. The record includes all topic elements used in the conversation, as well as live agent transfers."). The following script groups them as follows:

* VA closed the chat session
  * 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
  {#formula-override-examples-pae__ul_nr5_4hw_d4b}
* Live agent closed the chat session
  * System Closed LA -- User No Response
  * System Closed LA -- Chat Complete
  * Agent Closed LA -- Clicked End/X
  * System Closed LA -- Before Agent Engagement
  {#formula-override-examples-pae__ul_dzn_qhw_d4b}
* User closed the chat session
  * User Closed LA -- Clicked End/X
  * User Closed VA -- Clicked End/X
  * User Closed LA - Before Agent Engagement
  {#formula-override-examples-pae__ul_cbr_rhw_d4b}
{#formula-override-examples-pae__ul_wrc_chw_d4b}

To create these groupings of the 12 end states, follow the instructions for [creating a formula override](https://servicenow-prod.fluidtopics.net/YbS7yET6rmPbbD_McHDiMg "Use scripts to override the default formulas used to create the analytics on the Conversational Analytics Dashboard.") and use the following script.  

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


