Chatfuel Dialogflow Integrator in Python for Facebook Messenger Bot

Chatbots, Python Development, Machine Learning, Natural Language Processing (NLP)

If you want to use Dialogflow agent in facebook messenger then it can be done easily using Dialogflow integrations. But the catch is that you need to create a Facebook App and get it verified. The verification process not only checks for chatbot functioanlity but also requires Business Verification. In business verification process you need to upload proof of business registration. So it gets difficult to publish a chatbot without a registered business.

Solution Using Chatfuel

One work around to bypass business verification is to use chatfuel bot. Chatfuel bot doesn’t require verification on messenger. You can create a bot on chatfuel and simply connect your facebook page with it. The bot starts workings instantly.

But in our case the chatbot is developed using Dialogflow so we need to integrate Dialogflow with Chatfuel. We have created this simple script in Python using Flask which is an integration between Chatfuel and Dialogflow. It works as a bridge between Chatfuel and Dialogflow converting response from Dialogflow and turn it into chatfuel compatible JSON. So, now your chatbot can work on Facebook Messenger.

You can download the script from our GitHub Repository.

Steps to setup the script:

1. Get your Agent Project Id from Dialogflow console

Chatfuel Dialogflow Integrator in Python for Facebook Messenger Bot

2. Download Service Account Credential file from GCP.

3. Enter the file path downloaded above in the app.py file on line number 16.

4. Run your code using Ngrok if you are using this integrator from local machine and copy the Ngrok url.

5. Go to Chatfuel Dashboard and open your existing chatbot or create a new chatbot.

6. Go to the Default Answer block and remove all existing cards and add a new JSON API card. In the JSON API card URL textbox, enter the Ngrok URL.

7. That’s it, now you can test your NLU powered chatbot on messenger.

Demo:

Using this integrator we made our Railway Buddy chatbot work on Facebook Messenger without business approval. You can check the bot at Railway Buddy on Facebook Messenger.

Special Notes

  • There are already some free/paid services available which offers Dialogflow-chatfuel integration. Each has their own way of connection. Benefit of using this script is full control over your integration. Additionally, you don’t need to share your Service Account Credential File with any third party website.
  • Currently the script converts Text Response, Basic Card and Quick Replies into chatfuel compatible JSON. It doesn’t support Image and Custom Payload from Dialogflow yet. Feel free to contribute to the repository for Image and Custom Payload response conversion.

Do let us know if you face any issue in setting up or using the script. We would be happy to help! Contact us or post your query in the comments.

 

Leave a Reply

Your email address will not be published. Required fields are marked *