I have had the idea to create a coach in Telegram for the last few years, thinking about ways to coach people every day, students, workers, parents helping them improve their life with a free unlimited coach.
In the last 14 days I tried building something really basic to evolve this
In the mean time I was able to start understand PHP Laravel development plus being able to integrate a really simple middleware talking to Dialogflow Natural Language Processing agents, baked by Machine Learning to became better on the long run, with more interactions.
Problem: developing a chat-bot is much more different than an app or a website or a product because people are keen to get distracted or change topic or action in every moment and a bot might be confused or not able to understand at what part of the dialogue a person is referring to with a reply.
Solution: having a possible chat flow diagram can help you design the user history and possible paths but you won’t be always sure of where the conversation is going. Even more than those problem everyone speaks in a different way, using shorter version or slang. To prevent this even more I focused on imposing a few simple commands to help the user such as:
- /begin enable daily questions
- /help list all the possible commands, even the most specific
- /stop disable daily questions, receiving a notification even after telling the bot to “Stop spamming me” won’t always work so a shutdown command is much more useful and simple.
Choosing a framework was better than building my own solution from the bottom-up cause I have been able to interact with Botman maintainers and contributors giving tips or asking suggestion that will benefit future users/programmers.
I didn’t want to create a perfect code because I was more interested in making it work, understanding more of Laravel and of Dialogflow development.
The whole project is open source, find it here.
The central part of the app is inside BotManController.php.
You can even get the simple agent that I made on Dialogflow here to bootstrap your bot development.