Here is a link to part 1.
The first thing I have noticed in building a bot is you need to think a lot about state management, even for a basic bot.
The original app we built had 5 or 6 entry fields on a form and you did not need to think about state at all. With the chat bot I now need to think about the state of the interaction between bot and user as it moves from step 1 to step 2 to step 3.
At this point I am going to allow the user to skip ahead with some smart text analysis, and I've accounted for that in my state document. But I am not yet allowing the user to move backward or change an answer.
For our basic bot we have developed a simple flow chart on a white board that describes the 5 steps and where we allow skipping, and what are the criteria for the skip.
For anything more complicated you would need to write something up and spend time thinking those requirements through. As it is for our bot, we are going to release an MVP and get some user feedback from power users, then we will look at possible expansion and feature addition. And I will likely need a real flow chart for that.
Here is a link to part 3.