Fulfillment: How to Integrate Dialogflow with Google Calendar

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
PRIYANKA VERGADIA: Welcome to Deconstructing Chatbots. I'm Priyanka Vergadia. And in this episode, we will learn how to integrate a Dialogflow agent with a back end system like a database, calendar, or a CRM. [MUSIC PLAYING] Any chatbot you build will need to connect to a back end to transfer information to and from the business logic. Within Dialogflow, we are able to make that connection using fulfillment. Fulfillment is a piece of code which is deployed as a web hook and lets your Dialogflow agent call the business logic on a per intent basis. During a conversation, this allows you to use the information extracted from Dialogflow's natural language processing to generate a dynamic response or to trigger action on your back end. Let's take our appointment scheduler chatbot from previous episodes and implement a fulfillment for scheduling appointments. Well, currently, our agent identifies the user's intent of scheduling an appointment and provides a static response indicating that the appointment is set up. Now, in a real world scenario, we need to set up that appointment on a calendar and also check for any scheduling conflicts, which requires us to integrate with the calendar. So let's jump into our Dialogflow console and see how it is all set up. Click on the gear icon near your agent name to open Settings. Look at the Google Cloud Project ID and click on it to open the project in GCP console. Navigate to the hamburger menu icon and locate APIs and Services. Click on Enable APIs and Services and look for Google Calendar API. Once you find it, enable the API on your cloud project. Now under the same APIs and Services within Credentials, click on Create credentials dropdown to select Service account key. Under Create service account key, select the New service account from the dropdown and enter an account name. Make sure JSON is the key type and then click Create. In the popup, select Create without role. A JSON file will be downloaded to your computer. And you will need this later, so take note of its location. Before we close it out though, copy the client email. Now open Google Calendar. And on the left, click the plus sign and select New Calendar. Enter AppointmentCalendar for the name of the calendar and select Create Calendar. Next, go to the AppointmentCalendar that will appear on the left. Click Add People and paste the email copied from that JSON file. Then select Make changes to events in the Permission dropdown and click Send. At this point, we are ready to go back to our Dialogflow agent and set the fulfillment. Click on Fulfillment and enable the inline editor. Check out the link in the description below to get the required code for package.json and index.js. Open package.json file and copy and paste the dependencies into fulfillment. Do the same for index.js as well. Grab the Calendar ID from the Google Calendar. We just create it and replace that in index.js. Next, copy the contents of the JSON file downloaded in the Service Account Setup section and paste it into the empty object, ServiceAccount. Check out the rest of the code. Make appointment function contains the responses to the user. And create calendar event function takes care of grabbing the entities like date, time, and appointment type, and creates the calendar invite. It also looks for the calendar conflicts and throws exceptions. Once you're done, click Deploy at the bottom of the page. Now, we have one more thing to do before we can start testing. Click on Intents and go to the Schedule Appointment intent. Scroll down to Fulfillment and enable webhook and save. Now we're ready to test. In the simulator on the right, query your Dialogflow agent with something like, set an appointment at 4:00 PM tomorrow. And then respond to the follow up queries. After getting the required information, you will see that the appointment is added to the appointment calendar. You can verify that if you ask for another appointment at the same time slot, your agent will respond back with an appropriate message since that slot is not free. All right. So that was a lot. Let's summarize what we learned today. We enhanced our appointment scheduler chatbot by creating a fulfillment through inline editor, enabled Google Calendar API for the GCP project and used those APIs credentials to connect our fulfillment Cloud Function with Google Calendar. And finally, we were able to test our agent by creating appointment request on the calendar. Don't miss the next episode of Deconstructing Chatbots to learn more about conversational AI. Please like and subscribe to our channel for more such content. [MUSIC PLAYING]
Info
Channel: Google Cloud Tech
Views: 41,795
Rating: 4.9252872 out of 5
Keywords: fulfillment, fulfillment dialogflow, google calendar, google calendar api, appointment scheduler chatbot, build a chatbot, chatbots, dialogflow, dialogflow fulfillment, conversation ai, conversation assistant, actions on google, integrate dialogflow with google calendar, crm, Deconstructing chatbots, gcp, google cloud platform, google cloud, Priyanka Vergadia, how to integrate dialogflow with google calendar, what is dialogflow fulfillment, GDS: Yes;
Id: 4_MvIf_ULgc
Channel Id: undefined
Length: 5min 49sec (349 seconds)
Published: Fri Jun 21 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.