Recently Dialogflow announced (rather, provided) a new library for helping people get started with building out a NodeJS webhook in very quick time. It is called the Dialogflow Fulfillment library and it is intended to help you build a NodeJS webhook inside your inline webhook editor.
While the library is super helpful, the documentation on the GitHub page misses a few things. This article is intended to fill those gaps. Here are the steps to make use of the library to deploy your NodeJS based webhook.
1 Create an intent in your agent
In my case, I am building a calculator app. The first intent is an intent which adds two numbers and this is how I have defined my intent.
Note that I have toggled the "Enable webhook call for this intent" switch at the bottom of the intent.
2 Copy code from GitHub to inline editor
Copy the code from index.js in the GitHub library located here and paste it into your inline webhook editor.
3 Add a handler function for AddIntent
In your inline editor, add the following code.
4 Map the code to the newly added intent
In index.js, right below the other mappings, add a mapping from the name of the intent you just created to the add function.
5 Deploy the inline webhook
Click on the blue Deploy button at the bottom of the inline editor to deploy the code to Cloud Functions for Firebase.
6 Test the webhook in the console
Now test if the webhook is working by invoking the intent to add two numbers in your Dialogflow test console.
Congratulations! Your NodeJS webhook now works.
Some things to note:
- the inline webhook cannot be used (to the best of my knowledge) to save data to a DB. You need to use the Google Cloud CLI (Command Line Interface) on your dev machine to enable that
- the code works with both v1 and v2 API
- there is a lot of sample code in the same project which helps you understand how to extract relevant information from the JSON coming from Dialogflow, as well as how to send back rich responses
By learning how to deploy webhook code using the inline webhook editor, you can get started with your webhook very quickly. Once you understand the basic structure of the code, you will be able to do more complex business logic in your webhook (for this you will most likely need to use the Google Cloud CLI).