Bottender + Dialogflow
This is my story about how I created a chatbot on Bottender with Dialogflow as an NLU (Natural Language Understanding). You can go to this article to learn more about a chatbot. There is a little explanation there.
Bottender is a tool to create a chatbot on JavaScript (NodeJS). Dialogflow is an NLU platform, it also lets you create a chatbot then integrate it to multiple platforms. It is easy to build a chatbot on Dialogflow rather than Bottender. Dialogflow has all stuff that you need to create a chatbot easily. Bottender only lets you create a chatbot programmatically using JavaScript and it requires another third party for NLU. I picked Dialogflow at that moment.
There is a lot of NLU services. The reason I picked Dialogflow because it has Bahasa Indonesia. You can go to other services if you want to build a chatbot in English, that will be no problem.
Refer to this article if you want to build a chatbot on Bottender with Dialogflow. What you need to do on Bottender is to create intents then train them. I suggest you name them with camel cases, so you can map that intents to responses easily on Bottender. After that, you need to connect the agent that you create on Dialogflow to Bottender. It requires a GCP (Google Cloud Platform) project ID and a credential. Go to Service Accounts then Keys to generate a key then you will get the JSON file which is the credential as I mentioned before.
The benefits of creating a chatbot using Bottender is because it is fully custom. So you can customize how responses will be, store them to the database, call other third party functions, etc. The benefits of using Dialogflow as NLU for Bottender because it is mature, multiple languages available, easy to use. That is all from my experiences.
There is Fulfillment in Dialogflow to customize the progress or responses programmatically using JavaScript. But I never research how far that could be.