One of the things I always like to do is cook on the weekends and try new dishes in my favorite places. However, due to the problem we have with the pandemic caused by COVID-19, all establishments are closed. In addition, as a result of the social distancing we have to maintain, birthdays, parties, celebrations can no longer be attended. So being at home all day can be an overwhelming situation that even your appetite for food can lose. In addition, there are people who do not have culinary skills and find it difficult to know what type of food to eat for breakfast, lunch and dinner. Therefore, a bot has been created to help those people create their own meals by following simple step-by-step instructions. It is important to note that the recipes of the dishes proposed are not difficult to achieve. At the same time, it is a fun activity since you can combine multiple flavors to later enjoy your food and share it with your social networks. And you could even become a chef and food lover to surprise your friends and family at the next social gathering they have.

What it does

What the bot does is that it gives users recipe options that can be prepared very easily. For this, it asks the user if they want to prepare a Breakfast, Lunch or Dinner, depending on the time of day. In addition, through the implementation of the Handover Protocol, users can interact with professional chefs to ask for advice or answer questions if the user has any or even ask for specific recipes.

When the user requests to have a conversation with someone, the bot tells him in a message that he will be transferred to a person. It is at that moment that I send an inbox message to the facebook page that was created. That message can be read by the administrator of the page or by someone who has an assigned role. For the user to return to the conversation with the bot, just type: stop, stop the conversation, finish or finish the conversation. And again it will be returned to the bot just in case you want to do something else.

Something new is that we decided to include in a single project Handover Protocol, Quick replies and One-Time Notifications. In this way we consider that we could have more important elements to have a more fluid and interesting conversation.

How I built it


The first thing to do was read the reference documentation provided by facebook on their developer help site. In addition, published videos related to Messenger were consulted on YouTube channels.

Then I proceeded with the creation of a facebook page using my registered account. Then, I proceeded to install messenger for my page. In the configuration section, the permissions to receive messenger messages on the page were selected. This in order that users when they find the page can use the messenger option and thus interact with the bot.

In the page configuration options, the following parameters were searched: APP ID, APP SECRET, TOKEN, PAGE ID. This information is vital to establish the connection with the Facebook API and to allow the transfer of messages with the chatfuel tool.


In this part the chatfuel tool was used. In it, the previously saved parameters of our page were used to allow a link between our bot with the previously created facebook page. In chatfuel, the conversation options and the handover protocol were configured. To be able to integrate the facebook page with chatfuel, it was necessary to register chatfuel as the first response option for the user when interacting with the page's message button.

Once the integration between the facebook page and chatfuel was done, I proceeded to create a website. For that, heroku, nodejs was used for the creation of a web server and with the help of the magic of git create a tunnel between local development to be able to put the web page in a publicly stored heroku way. The parameters APP ID, APP SECRET, TOKEN and PAGE ID were used. Finally, with the help of a little HTML code and providing CSS layout we were able to create a quick design for our website.

Challenges I ran into

Integrating several protocols into a single project was quite a challenge. We know they are not perfect. However, the idea we are trying to convey is very simple and the way we exemplify it helped us develop more knowledge.

Another challenge was to achieve the integration of Heroku and the messenger SDK to be able to put that integration into production and do the tests.

Accomplishments that I'm proud of

We managed to put a representation of a web page on Heroku. Then we attached the facebook messenger SDK to be able to do the tests and verify that the bot could work in the best way being in an HTTPS protocol. We are also proud to be able to incorporate several protocols that were requested in a single project. The website is available at the following link:

What I learned

I learned that the advantage of using the Git terminal to make changes is very useful for production processes. Going from localhost to a web server with internet access. Heroku is an excellent platform where developers can make their projects available for testing. The exchange controls provided by the code editors are very important. The advantage of having a facebook page for small businesses because now users have created a way to do business through the social network. Implementation protocols can be useful for handling large volumes of information requests. In addition, it helps the administration and attention as customer service. Facebook is a network that has no limits to growth and every day is innovating with better applications, codes, tools for developers.

What's next for MyChefai

Design a nice website with responsive design Establish a DNS so that users can enter securely using the HTTP protocol Add more information to the facebook page such as: image gallery, videos. Define AI rules to restrict offensive and vulgar out-of-context expressions. Establish better AI rules to capture user-supplied information to generate new conversations. Conduct content publishing campaigns and make video recipes for novel, easy and inexpensive foods.

Built With

+ 2 more
Share this project: