Home / DialogFlow / Conversation Design / Managing session-vars
Conversation Design | DialogFlow

Managing session-vars

When you are collecting a set of inputs from the user, you should use a context with a very large lifespan as a sort of a “session variable”. I refer to this as session-vars in many of my videos.

There are three things you should remember when using session variables.

1 You should not add the session-vars to all intents

For example, suppose you collect a set of inputs.

You will add the session-vars as output context to the first intent which collects a single input value.

And once you are done collecting the relevant information, you will send the data across to a webhook to process the collected data.

2 You should add a session-vars to all intents which “start” collecting data

For example, in the chart above, the intent where user says “I want to book a flight” is the starting point of that conversation flow. So it should have session-vars set as the output context.

3 Remember to clear session vars after all input is collected

In other words, in the image above, after the data is sent to the webhook, be sure to clear the session-vars lifespan to zero. This will help if user tries to reinitiate the whole flow (otherwise your old values may interfere with the new ones)

I show an example of this in my quickstart template which explains the “Start Over” patten.

4 Use different variable names if you are collecting different values of the same data type

For example, in the chart above you will collect two different dates – one for departure date and one for return date.

Make sure you use different params for these dates inside your intent. Otherwise the second value will overwrite the first value. 

Summary

If you make sure you follow these guidelines, you will be able to use the session-vars context without much difficulty.

FREE COURSES

Related Posts

  • Hello Aravind!
    Your blog is great! Thanks for all the tutorials.
    I´d like to submit a question to you. If possible in your time, to help with this.

    I´m building a demo for a Whatsapp Bot + Dialogflow.
    Getting the name of user and saving on a context-var in life span of 50 as you proposed in another post.

    But if the user keeps quiet and returns after a longer time, say 1 hour, Dialogflow seems to forget the name/variable, and asks for it again. Should it work that way? Or should I bould a user id?

    I thought about saving the session-id (in this case, the phone number) with the name on Firebase. Is it possible?

    What do you recomend?

    Thanks in advance

  • Good post. I never thought about the usefulness of having more than one session variable or the need to clear it at the end of the process.