Home / DialogFlow / Conversation Design / 3 ways to pass parameters between intents in Dialogflow ES
Conversation Design | DialogFlow

3 ways to pass parameters between intents in Dialogflow ES

One of the big advantages of Dialogflow is that you can build contextual chatbots using it.

What are contextual chatbots?

My simple definition would be:

The chatbot should keep track of what the user said before, and the conversation should flow accordingly.

By the way, this is surprisingly hard to do. So much so that the Dialogflow team has created an entirely new version of Dialogflow called Dialogflow CX which has a pretty sharp learning curve.

As you build contextual chatbots, you would have to keep track of parameters (user inputs such as their name, location etc) so that you can pass them between your intents.

There are three primary ways to pass parameters between intents.

1 Use followup intents

Followup intents are helpful for keeping track of what happened in the conversation till now. As a bonus, they also help you pass parameters between intents, provided you use the parameter within the next 2 conversation turns (from when the user provides the value).

You should also remember that there are some scenarios where you should avoid using follow up intents.

Followup intents handle the context management. You don’t have to explicitly declare contexts if you use followup intents, which might be helpful for very simple followup intent trees.

On the other hand, the context names used inside followup intents are autogenerated and generally hard to use.

2 Mimic followup intents

You can also mimic followup intents by defining your own input and output contexts.

This has the major benefit of providing you with much greater flexibility in the way you design your conversation. For example, you can implement a while loop if you define your own input and output contexts.

3 Use session variables

Another option is to declare something called a session variable in each of your Dialogflow entry intents.

This has the added benefit of being able to pass parameters between intents even if the conversation takes an unexpected turn.


Related Posts