Conversation sessions are defined as an uninterrupted interaction between the bot and the user. These sessions are used in multiple analytics dashboards in Bot Builder as well as Bot Admin Console platforms.
Kore.ai virtual assistant platform allows you to customize how these Conversation Sessions are to be created and closed.
Conversation Sessions are different from Billing Sessions, refer here for more on Billing Sessions.
Overview
A Conversation Session is defined as an uninterrupted volley between the end-user and the bot.
- Before the release of v7.2 of the platform – a new session was created after the inactivity duration (set as 15 mins) has elapsed since the end-users’ last interaction.
- Post v7.2 – after the inactivity duration (set as 15 mins) has elapsed
- if the end-user comes back and continues with the same intent, then the current session continues;
- if the end-user comes back with a new intent or with an invalid input for the existing intent, a new session is created.
- Post v8.0 platform gives you an option to:
- Proactively close the sessions after inactivity – for details on Manage Sessions refer here.
- Not proactively close the sessions after inactivity – retain the v7.2 behavior described above;
Conversation Sessions are created for all interactions with the virtual assistant or bot. These include:
- All conversations that include one or more messages from the user marked as interactive sessions. These include all end-user interactions across all channels and events including providing authorization details.
- All bot initiated conversion sessions like onConnect event messages are recorded as non-interactive sessions. These sessions will be updated as Interactive sessions as soon as a user message is received. Non-interactive sessions are not considered for calculating the billing sessions.
- Developer interactions are also included as conversation sessions. A flag differentiates the user sessions from developer sessions and billing sessions are not created for these developer sessions.
Note: inclusion of non-interactive and developer interactions in conversation sessions was done with ver8.0.
Manage Sessions
This feature was released with v8.0 of the platform.
Using the Manage Sessions option from Settings -> Config Settings, you can define the Conversation Session Behavior:
- Do not proactively close the sessions after inactivity – this option will close the session only when the user returns after 15 minutes of inactivity and provides a new intent. This was the default behavior before the release of ver8.0 of the platform. This option will be deprecated in future releases.
- Proactively close the sessions after inactivity – this option will close the session after a defined duration of inactivity. You can set the following parameters:
- Inactivity Duration – this is set to 15 minutes by default and decides when the session should close. You can set it to any value between 5-60 minutes.
- Pre-closure Behavior – you can choose to close the session without informing the user or inform the user about the session closure by sending out a message. This message can be customized using the Manage response link.
Implementation
When does a Conversation Session start?
Conversation Sessions will be created for all interactions:
- All end-user interactions across all channels and events – Conversation sessions will be created for On_connect – Run a script, Run a Message, Trigger a Dialog scenario. There are two categories of these conversation sessions:
- Interactive sessions are conversations that include one or more messages from the user.
- Non-interactive sessions are conversations with no messages from the user. All bot initiated conversion sessions will start as ‘Non-interactive’. These sessions will be updated as Interactive sessions as soon as a user message is received. The non-interactive sessions will not be considered for calculating the billing sessions.
- Developer interactions will also be considered for creating conversation sessions but these will be marked as different from the user sessions and will not be considered for Billing Sessions.
When does a Conversation Session close?
- The platform will proactively close inactive sessions after the specified time of inactivity as set in the Manage Sessions option described above.
- When the following utterances are detected – “Discard”
- When the chat window is refreshed ie “refresh: true” is detected.
What happens when a Conversation Session closes?
- Post-session closure, the following information or variables will be cleared:
- Conversation session;
- Bot User Session (developer-defined variables without custom TTL)
- Dialog Context (Topic File and Conversation Details)
- If configured, before closing the conversation session, the platform will proactively send a session closure message to the users on supported channels.
- For “refresh: true”:
- Complete session information is cleared;
- A new conversation session is created.
- For “discard all”
- The Dialog context, Current and Historic Tags are cleared;
- The Sentiment Tones are reset;
- The same Conversation Session will be continued
- For “discard”
- The current Dialog context will be cleared;
- The Current Tags will be replaced with the last updated ‘tags’ in the Historic Tags, and the Historic Tags would be cleared;