Reading BotUserSession in SmartAssist

Hi all,

I’m calling a bot from SmartAssist. The bot sets some values in BotUserSession.

Now I want SmartAssist to branch conditionally based on the values the bot set. Is there a way to read them in SmartAssist?

Hi @eeskildsen,

You can read BotUserSession values in SmartAssist Experience Flow. Here’s some sample code showing this:

setCallFlowVariable('caller', context.BotUserSession.channels[0].handle.Caller);
var caller = getCallFlowVariable('caller');


1 Like

Thanks @ashish.sankhala!

Is this documented anywhere? There are 0 search results for BotUserSession at Want to make sure I’m looking in the right place…

You are looking at the right place. We are working on getting this and other related documentation uploaded

@ashish.sankhala, this isn’t working for me…What am I doing wrong?

Steps To Reproduce

  1. In a BotBuilder:
    1. In a dialog task, add a Script node. Definition: BotUserSession.put('favoriteKoreEmployee', 'Ashish Sankhala');
  2. In SmartAssist:
    1. Add a Run Automation node. Have it call the dialog task.
    2. Add a Script Task node. Definition: context.favoriteKoreEmployee = context.BotUserSession.get('favoriteKoreEmployee');

Expected Behavior

context.favoriteKoreEmployee is set to Ashish Sankhala in SmartAssist.

Actual Behavior

SmartAssist says:

We’re having trouble processing your request. Please call us after some time.

Then the call ends.

Hi Erik,

I believe you should go through this link to get a high level understanding of how SmartAssist integrates with the XO platform - Introduction to SmartAssist – SmartAssist. This might help as a starting point.

Coming to your exact use case, it appears you are trying to pass a value from your BotUserSession to use within the Experience Flow.

You will need to

  1. Retrieve the automation (or the child) bot’s context using getChildBotContextById()

Sample Usage cbCtx = getChildBotContextById("st-123bd11e-247e-58ec-bfe4-81e0f8b3e0fc”)

You can get your bot’s ID by navigating to Bot → Build → Configuration → General Settings

  1. You can then refer to favoriteKoreEmployee using the following fully qualified name cbCtx.session.BotUserSession.favoriteKoreEmployee

Hope this helps (and works!)


@ashish.sankhala Very cool! I feel like I’m learning the secrets of the sages here. Thanks, I’ll give it a try.