I’m amazed that the Fred Bot Engine has basically the same underlying structure (and even naming and terms) — well, Finite State Machines anyway. Except that states and actions are defined dynamically and come from the database and not hand typed / customized in the code. We also have user Sessions in the way: one session per bot room (company + user id) + current state and action + data history.
I feel compelled to share our diagrams as well in the way that you did :) Once we launch I may prepare a post.
Thanks for the nice writeup!