This site is no longer updated.Go to new Conversational Cloud docs

function newSession(arg)


The method is designed to explicitly create a new session from a script.


Parameters

  • message — kick-off message, by which a new session is set. If it is not defined a system will execute only reactions of a root theme.
$reactions.newSession({message: $context.request.query, data: $context.request.data});

  • session — data for a new session. Empty object by default.
{ timezone: "GMT+3" }

  • client — client’s data. The current ones can be either reset or modified during a new session.
theme: /
    init:
        bind("postProcess", function($context) {
            if ($context.session.startNewSession) {
                $reactions.newSession({message: 'newSessionMessage', client: {}});
            }
        });
    state:
        q!: test
        script:
            $session.startNewSession = true;
            $context.client.clientCustomData = 'testClientQuery';
        a: Test answer
    state:
        q!: newSessionMessage
        a: Message from new session request {{ $client.clientCustomData }}

  • request — source request can be modified in a new session. For example, by changing/setting an event or query: {event: 'new event'}.
theme: /
    init:
        bind("postProcess", function($context) {
            if ($context.session.startNewSession) {
                var $request = $context.request;
                $request.event = 'newSessionEvent';
                $reactions.newSession({request: $request});
            }
        });
    state:
        q!: test
        script:
            $session.startNewSession = true;
        a: Test answer
    state:
        event: newSessionEvent
        script:
        a: Event from new session request

  • data — data for the new session, for example client request data $request.data. By default, it's an empty object.
$reactions.newSession({message: $context.request.query, data: $context.request.data});

How to use

script:
    if (!$context.testContext && !$request.data.newSession) {
        if ($parseTree) {
            $reactions.newSession({message: $parseTree.text, data: {newSession:true}});
            } 
        else {
            $reactions.newSession({message: "/start", data: {newSession:true}});
            }
        }
state: reset
    q!: reset
    script:
        $reactions.newSession({message: "/start", data: $request.data});