Hi Andrew,
I’ll break down the pizza bot for you because it should hopefully answer your questions and give you an insight to how it’s all working.
I have one flow to start the bot. I’ve used the Bot - New Conversation trigger but using the Bot - New Message would be fine. This is the only flow that the user can trigger.
This flow greets the user and starts the pizza order process off by using a Flow task at the end of the flow to start the second flow.
2nd Flow - This flow is triggered using the Flow trigger and this flow lets the user select the type of pizza. You’ll notice that the user can change their selection. It’s the Flow trigger that makes this possible because you aren’t relying on the user giving a keyword to trigger the flow. But if they don’t want to change their selection, a Flow task runs which triggers the 3rd Flow.
3rd Flow - This flow is again triggered using the Flow trigger and this one lets the user choose the base for the pizza. Again, the user can change their section (the flow is triggered again using a Flow task) but if they don’t a flow task is used to start the 4th Flow.
4th Flow - Triggered again using the Flow trigger. This flow lets them choose toppings. There’s a fair bit going on this one but the key tasks are the Attributes. I’m storing the user’s selections using attributes. And what’s really good about attributes is that they are shared across all flows so you can set or get them from any flow.
I just use the Flow task to re-start the flow each time the user wants to choose another topping and when they’re done I get the attribute where I’ve stored the selections and use it in a new message to confirm what they’ve selected.
I’ve given each flow a name that describes the section of the process that it handles and used that for the keyword. That way all my keywords are unique and I can easily remember what keyword I used.
Hopefully, this answers all your questions?