From a chatbot design point of view, best practices say that the response messages should not all go at the same time like a machine-gun.
Lets look to an example. The below example could be a welcoming dialog (or monolog) as the bot introduces himself. What would be better, the 4 lines all displayed at the same time, or having a small half-second delay between each line?
- Hello, I am Asimov, your SiFi bot
- You can ask me about SiFi books and movies
- I have a big source of data at my hand
- What do you want to know?
Now the main question is: How to implement this?
The answer, is by using the Bot Node SDK to create a custom component.
I am not a Nodejs expert, so probably there are better ways of doing this. I did however stayed with the basics and used a SetTimeout function that executes once the timeout finalizes.
Then we can invoke this component from the dialog flow with the below code. I am not making use of the available transitions defined in the custom component, so you can ignore that part!
delay1:
component: "delay_dt"
properties:
milliseconds: 5000
transitions:
next: message2
Quite simple and very handy – it gives a completely different feel to the chatbot!