Ever wished you had a CRM for Dialogflow? We did too, so we built one. This is a best practices article for using Rocketbots as a Dialogflow CRM. We'll discuss things like creating a Dialogflow Human Handoff, how to integrate dialogflow with your website and popular integrations like our Chatbase Dialogflow Integration. Check out the table of contents below to skip to what you're looking for:
- What is Dialogflow
- Why You Need A Dialogflow CRM
- Connecting Dialogflow to Rocketbots
- Connecting Messaging Channels to Rocketbots
- Connecting Chatbase & Zapier to Rocketbots
5 Simple Ways To Use Rocketbots with Dialogflow Integration
- Record, Attribute & Export Dialogflow History with Rocketbots
- Use Dialogflow To Automatically Tag Contacts
- Send a Dialogflow Broadcast
- Unsubscribe Dialogflow Contacts from Broadcasts
- Create Custom Dialogflow Notifications
Build Hybrid Human + AI Sales & Support Messaging Using Rocketbots as A Dialogflow CRM
- Use Rocketbots Automations to Onboard New Contacts
- Handling FAQs & Using Rocketbots As A Dialogflow CMS
- Fallbacks & Building a Dialogflow Human Handoff
What is Dialogflow
Ever since Facebook announced bot integration on it's Facebook Messenger platform, the idea of using bots to talk to humans has gained traction. At the same time, the use of messaging apps has become more prevalent among businesses for messenger marketing and messenger customer support.
The most popular tools for the messenger marketing have been bot builders like Chat Fuel & ManyChat. These tools work decently for high volume, low margin marketing efforts but aren't exactly suave conversationalists. They present users with clickable buttons in a messenger, and that's about it.
That is where Dialogflow comes in. Dialogflow is a Natural Language Processor (NLP). Although Dialogflow can give users options to click, like other bot builders, the true beauty of the tool is that a Dialogflow Chatbot can recognize natural language and decide how to respond to the human using Artificial Intelligence.
Dialogflow allows you to create a series of responses, then add training phrases to these responses. So when a user sends a message, Dialogflow uses machine learning to process the text sent, decide which response is the best match, and sends the response. Each of these responses are called intents.
The Basics: Dialogflow Intents
The buildings blocks of a Dialogflow agent are intents. Each intent contains training phrases and a response. Think about each Dialogflow intent as an answer your bot can deliver. If you want to build a Dialoglow chatbot that can give seven different answers, you're going to need seven intents.
To trigger a response, the user is going to have to send a message that is close to one of the training phrases you have entered. This is where artificial intelligence and machine learning come in. Because the message sent doesn't have to be an exact match. Dialogflow will check in real time if the message the user sends is similar to any of the training phrases you have created. If it matches closely, Dialogflow sends the response to the user.
Advanced Dialogflow: Entities and Fulfilment
You might be thinking. If I need seven different intents for seven different answers, I'm going to need hundreds of intents to build the chatbot I am thinking of. This is where Dialogflow Entities & Dialogflow Fulfilment come into play.
Dialogflow Entities
Dialogflow Entities allow you to recognize and pick out key pieces of information, data like colors, cities, product names, and more. So if your bot is asking a person about their favorite color, you're won't need to create a dozen intents to recognize a dozen colors, you'll need one.
Dialogflow Entities
How is that possible? Dialogflow has built-in system entities to recognize the most common items like countries, phone numbers, emails, etc. If you want Dialogflow to recognize your product names, you'll be able to create a list of custom entities.
Using custom entities, you'll be able to create one intent that recognizes that a user is asking about the price of a product, and you'll know which product they're asking about. The question then becomes, where do you put the response? There is no place in responses to add different answers for different entities. This is where Fulfilment comes in.
Dialogflow Fulfillment
Dialogflow Fulfillment enables you to connect a service to your Dialogflow agent to does things like retrieve dynamic responses or trigger an action in your ERP.
To enable Dialogflow Fulfillment, you'll need to connect your service using a webhook and activate fulfillment for the intents that require it. The fulfillment logic should be built in the service you connect.
Dialogflow is a very powerful tool. You might even be thinking, what do I need Rocketbots for?
Why You Need A Dialogflow CRM
Dialogflow is an extremely powerful Natural Language Processor (NLP), that is where it excels. Creating an interface for business is where it lets you down. Dialogflow does not provide:
- a conversation history
- a way to save user information
- a way to hand over a conversation to a human
- or a way of showing your clients how well your bot is performing.
In short, Dialogflow sees users, but businesses want to know about their contacts.
Dialogflow Training
Dialogflow allows you to see conversations history on the Training screen. The Training screen is optimized to a chatbot. This is where you can let the agent know if the responses it delivered were correct or incorrect, and if the entities were extracted correctly.
Training is a fantastic feature, but it doesn't give much information about the conversations of any individual contact because the chats are anonymous and session based. From the training screen, you won't be able to tell if it is the same contact that had ten different conversations or ten contacts that had ten conversations.
Dialogflow History
Dialogflow also provides a history screen. The history screen is a slight improvement over training. It can show sessions filtered by dates and displays the responses that were sent instead of the intent that was activated as the Training screen does.
Once again, this information is sessions based and anonymous, so there is no way of knowing which contact the agent was having a conversation with.
Dialogflow Analytics
Dialogflow Analytics are designed to provide information in aggregate. You'll be able to find out the number of sessions and queries, the most popular intents and the session flow all for a given period of time.
These figures are a little better to show a client. However, the essential items remain unfulfilled. There is no way to see a single users chat history, no way to turn users into contacts by collecting and saving information about them and no way to message a user back if the bot fails.
In the next few sections, we'll be going over strategies and integrations that make it easier to fit a Dialogflow agent into your business activities by using Rocketbots as a Dialogflow CRM.
Using Rocketbots as a Dialogflow CRM
The way you use you configure Rocketbots and Dialogflow is going to depend on what you would like Dialogflow to do for you. In the next few sections we're going to how to best connect Dialogflow, your channels and your integrations.
Then we will present a few very simple use cases for Dialogflow and finally we will discuss how to set up an advanced agent that can handle tons of queries, capture information about contacts, record that information and hand off to a human when the Dialogflow agent cannot handle the query.
The Setup: Connecting Dialogflow, Messaging Apps and Integrations with Rocketbots
Rocketbots is designed to be at the center of your chatbot infrastructure. Once you've created your Rocketbots account, you can connect Dialogflow, messaging channels, as well as Chatbase & Zapier integrations.
Dialogflow CRM Setup: Connecting Dialogflow to Rocketbots
To set up a Dialogflow CRM infrastructure, connect Dialogflow to the Rocketbots Space first. To connect Dialogflow, retrieve the Dialogflow Integration JSON file from the Dialogflow Console, then upload it to your Rocketbots Space. Here is a step by step guide:
To navigate to your service account open settings in the Dialogflow console > click the service account link.
To create the JSON key, find the Dialogflow Integrations row in the service accounts table > open the action menu > click Create key.
Then choose the JSON key type > press Create.
To upload the key to Rocketbots navigate to Settings > Connect Dialogflow.
Then drag and drop the JSON key.
Congrats, the Rocketbots Space is now connected to your Dialogflow Agent.
Pro Tip: You can use the Rocketbots Space to test your Dialogflow agents, automations and surveys by simulating a conversation in the messaging module.
Dialogflow CRM Setup: Connecting Messaging Channels
The next step in setting up a Dialogflow CRM is to connect messaging channels. Once the messaging channels are connected, users will be able to chat with the connected Dialogflow Agent, a contact will be created for every user that chats and their chat history will be saved under their contact details. Below we've listed the channels we support and directed you to the relevant documentation for connecting each channel.
To Integrate Dialogflow With A Website through Rocketbots, use our Web Chat widget. Since there is no Web Chat option provided directly by Dialogflow, we created a Dialogflow website integration of our own by providing a web chat to our users. Docs are available here.
To Connect Facebook Messenger check out our Facebook Messenger docs here. Although there is a direct Dialogflow Facebook Messenger integration, you'll want to connect through Rocketbots to see your chat history. To connect to Facebook Messenger you'll need a Facebook page, you can check out our guide on creating a Facebook page here.
To Connect WhatsApp choose between two of our Dialogflow Integrations with WhatsApp. Each works a little differently. Please review both Dialogflow WhatsApp integration options, Chat API, and Twilio WhatsApp before proceeding.
To Connect WeChat check out our WeChat docs here. To use our Dialogflow WeChat integration, you'll need a WeChat Official Account. You can check out our guide to creating a WeChat Official Account here.
To Connect LINE check out our LINE docs here. To use our Dialogflow LINE integration, you'll need a LINE Official Account. You can check out our guide to creating a LINE Official Account here.
To Connect Telegram check out our Telegram docs here. To use our Dialogflow Telegram integration, you'll need a Telegram Bot. You can check out our guide to creating a Telegram Bot here.
To Connect Viber check out our Viber docs here. To use our Dialogflow Viber integration, you'll need a Viber Bot. You can check out our guide to creating a Viber Bot here.
To Connect Skype check out our Skype docs here.
To Connect SMS check out our Twilio SMS docs here. To use our Dialogflow Twilio integration, you'll need to buy a number on the Twilio platform.
To Connect Twitter DM check out our Twitter docs here. To use our Dialogflow Twitter DM integration, you'll need to set up an app on Twitter. There are detailed instructions in the docs.
To Connect Slack check out our Slack docs here. To use our Dialogflow Slack integration, you'll need to set up an app on Slack. There are detailed instructions in the docs.
Phew, that was a lot of channels
Now that your messaging channels are connected let's connect some additional integrations that will help to improve your agent and move the data you collect to an outside CRM.
Dialogflow CRM Setup: Chatbase & Zapier Integrations
Although you could stop with channels, Chatbase and Zapier will power up your Dialogflow agent even more.
With Chatbase, you'll be able to see in-depth analytics regarding your Dialogflow agent sessions flow. It's a fantastic tool to help improve your agent over time.
With Zapier, you'll be able to push data you collect about contacts in Rocketbots to an outside CRM with simple one-click integrations.
Dialogflow CRM Setup: Connecting Chatbase to Rocketbots
We're not sure why there isn't a one-click Dialogflow Chatbase integration as both are Google products ¯_(ツ)_/¯. So we made a straightforward integration ourselves. To connect Chatbase, you'll need to create an account, create a bot on Chatbase, and copy the API key to your Rocketbots space.
To create a bot on Chatbase create an account on Chatbase then press add new bot.
Then fill in the information required by Chatbase.
Keep in mind the reporting paths for sites feature will be deprecated by Chatbase, so Rocketbots does not currently support it.
To retrieve the API key press continue and it will become available on the next screen.
To paste the API key navigate to Settings > Chatbase > Connect.
Then paste the key > Connect.
Congrats, you've just completed your Dialogflow Chatbase integration via Rocketbots.
Now you'll be able to see a detailed set of aggregate analytics about your Dialogflow Agent, similar to the Analytics that can be found on Google Analytics.
Now that you've mastered the art of Dialogflow Agent aggregate analytics time to zoom in to contact data.
Dialogflow CRM Setup: Connecting Zapier to Rocketbots
The beauty of chat, whether with automation or live chat, is that you can collect a fair amount of data about your contacts over time. At some point, you'll want to move that data to another system. Since there is no Dialogflow Zapier integration, we created a Zapier integration with Rocketbots.
To connect Rocketbots to Zapier, you'll need to create a Zap.
To create a Zap log in to your Zapier account > then use our early access link to find the Rocketbots app on Zapier.
Then select a trigger.
The New Contact trigger will pass the information to Zapier when a new contact is created. The New or Updated Custom Field trigger will pass information to Zapier every time a value in the custom field of your choice is changed or added.
Now that you've selected your trigger you'll need to connect Zapier to your Rocketbots account.
To retrieve the Zapier integration token from your Rocketbots Space navigate to Settings > Integrations > Zapier > Connect.
Then paste the token > press Yes, Continue.
If you've selected the new or updated custom field trigger, you can select additional data to be passed. Along with the value of the updated custom field, you can pass data from other custom fields and tags.
To select additional fields chose them from the dropdown.
Done, now you can create the Zap action. The action will determine the service you pass the data to and how the data is passed.
If you've got any questions our Zapier integration documentation here.
Now that you've got you're Dialogflow CRM set up it's time the explore different use cases and the magic you can create with them.
5 Simple Ways To Use Rocketbots with Dialogflow Integration
We've always wondered why Dialogflow hasn't considered business needs like the need to know, understand, and further interact with customers or even be alerted when something goes wrong. Here are five simple ways to increase the power of your customer chats with Rocketbots and Dialogflow:
- Use Dialogflow To Automatically Tag Contacts
- Send a Dialogflow Broadcast
- Unsubscribe Dialogflow Contacts from Broadcasts
- Create Custom Dialogflow Notifications
1 Record, Attribute & Export Dialogflow History with Rocketbots
The first time we fired up Dialogflow, back in the API.AI days, we noticed even if we built the best chatbot ever, it would be nearly impossible to show a client the success we had achieved. Furthermore, it would be even more difficult to explain when something went wrong.
The critical question was, how can we provide clients with Dialogflow agent performance transparency? It's easy with Rocketbots. Create a space, connect Dialogflow, then connect the clients messaging app business accounts.
With Rocketbots connected, there is no need for a Dialogflow export history function.
With our Dialogflow & messaging app integrations, the entire Dialogflow chat history is recorded and attributed to the relevant contact. All you need to do is invite your clients to the platform.
Since all our plans have unlimited users, and the Dialogflow integration included, creating transparency for clients is as easy as a few clicks.
To invite your clients navigate to Settings > Users > Add User.
Then chose their access level.
That's all, now that you've created a user account for your client, there is no longer a need to export Dialogflow chat history. Now your client can access any conversation your Dialogflow agent has had with the user and even know which contact they had the conversation with.
2 Use Dialogflow To Automatically Tag Contacts
Now it's one thing to allow your client to sift through all the conversations, but that takes a long time, especially if you have a successful Dialogflow agent. Wouldn't it be fantastic if you could automatically add tags to contacts based on their interests?
With Dialogflow Developer Entities & Rocketbots Dialogflow Parameters, you can do just that.
To create Dialogflow Develop Entities navigate to the Dialogflow Console > Entities > +.
I've used custom entities to list the cars that my dealership client sells. Now let's create an intent with relevant training phrases.
I've added some training phrases and annotated my entities. Now, I'll use the RB_ADDTAGSto send that tag in Rocketbots.
Now, let's test our conversation.
It's as simple as that. If a contact chats about one of the products, a tag will be added to their profile in Rocketbots. Enabling your client to receive robust contact interest analytics on the Rocketbots dashboard, something that can't be done with Dialogflow Analytics.
One last thing, if you don't want to use Dialogflow Developer Entities, simple tags can be used as below.
In this case, two tags will be added to your Rocketbots contact: BMW X5 & Pricing.
Now that your chatbot client is automatically tagging their contacts based on product interests, wouldn't it be great if you could send mass messages to contacts based on their tagged interests?
3 Send a Dialogflow Broadcast
You've used Dialogflow to tag all your contacts with their product interests, now wouldn't it be great if you could send mass messages to contacts tagged with BMW X5? Too bad Dialogflow Broadcasts don't exist. Rocketbots to the rescue, send the broadcast from Rocketbots.
To send a broadcast navigate to the Broadcast Module > Add Broadcast > fill in your broadcast preferences.
Using a Rocketbots broadcast, you'll reengage the users tagged by your Dialogflow agent. This way, you can send contact that is specifically tailored to encourage that contact segment to respond.
The broadcast content builder allows a message which includes text, images, files, multiple choice questions, or even surveys. To learn more about the capabilities of chat broadcasts on Rocketbots, check out our broadcast documentation.
4 Unsubscribe Dialogflow Contacts from Broadcasts
Now that you have a way to create Dialogflow Broadcasts you'll want to manage the user experience of your contacts. Even though you're sending perfectly targeted messages to small groups of contacts, some users will still want to stop receiving broadcasts, and they will type "STOP".
We've created an easy way for you to make sure these users never receive another broadcast using the Subscription Parameter. The Subscription Parameter allows you to unsubscribe a Rocketbots contact from all future broadcasts.
To use the Subscription Parameter navigate to the Dialogflow Console > open a Dialogflow Intent > add "STOP" to your training phrases > add RB_SUBSCRIBE to Dialogflow Parameters > set the value to false.
Once the contact has sent "STOP" they will be unsubscribed from all broadcasts, but they will still be able to converse with the Dialogflow Agent.
Here's a tip. Create a custom field for subscription status, so you can check if a contact has unsubscribed. Alternatively, you can create a custom notification to notify you when someone unsubscribes.
5 Create Custom Dialogflow Notifications
A very successful Dialogflow Agent will have hundreds or thousands of contacts chatting daily. In some situations, you'll want to be alerted when an intent is triggered. A contact completely unsubscribing from broadcasts could be one of these cases.
Using the Notification Parameter, you can send a notification to the Rocketbots Platform with a specific message.
To create a custom Dialogflow Notification navigate to the Dialogflow Console > open a Dialogflow Intent > add RB_NOTIFY to Dialogflow Parameters > set the value to the notification you want to send.
When creating a notification message, you can use dynamic variables to send the contacts name, phone, email, and other custom fields you create in the Rocketbots platform.
We've covered a few simple ways to power up your business messaging with Dialogflow and Rocketbots.
Now, let's see how a fully fledged hybrid human + AI sales and support business messaging system would look like with Dialogflow and Rocketbots CRM.
Build Hybrid Human + AI Sales & Support Messaging Using Rocketbots as A Dialogflow CRM
Building reliable hybrid human + AI sales & support business messaging involves a few moving parts, including humans. In the next section, we'll describe how to get everything working well together by exploring a car dealership user case.
We'll show you how to reliably onboard contacts, guide them, achieve a human handoff to a clients staff member:
- Use Rocketbots Automations to Onboard New Contacts
- Handling FAQs & Using Rocketbots As A Dialogflow CMS
- Fallbacks & Building a Dialogflow Human Handoff
1 Use Rocketbots Automations to Onboard New Contacts
We've tried building contact onboarding using Dialogflow before, and everything works well when using a simple greeting message. However, when collecting data, it's simpler to make a rules-based automation on Rocketbots.
You can build an onboarding conversation in Rocketbots by creating a survey to collect email and phone. Then create an automation to trigger the survey for every new contact.
To create the onboarding questions navigate to Surveys > Add Survey > add the questions.
We've created a simple survey asking a contact for their email, phone number, and set them to be collected in the relevant field. Now, let's automatically send the survey to every new contact.
To automate the onboarding survey navigate to Automations > Add Rule > use Conversation Start as a Trigger > add 3 Actions: send message, send survey, and send message.
Above, we've created an automation rule that helps with a few things. First, it will welcome the contact with a greeting. Then it will serve the survey to the contact. Lastly, it will give them a multiple choice question.
We've left the last part as multiple choice (instead of survey) because we don't need to collect the data nor force them to answer the question. We want the answer to the multiple choice question to be sent to Dialogflow.
If the contact clicks show me cars or service appointment, they will trigger the appropriate intent. These types of questions are the perfect opportunity to use Dialogflow Fulfilment to reach our to an outside service and bring back a carousel of cars or allow the contact to book an appointment.
Let's say the contact doesn't cooperate and asks a question instead. Let's say it's a FAQ too. What's the best way to handle it when using Rockebots as a Dialogflow CRM.
2 Handling FAQs & Using Rocketbots As A Dialogflow CMS
If you're familiar with Dialogflow, you've probably used it to answer frequently asked questions. Remember, every time a contact sends a new message, Rocketbots will automatically mark that contact as pending until a human, an automation or Dialogflow marks the contact done.
To mark a contact as done from Dialogflow navigate to the Dialogflow Console > open the intent > add RB_MARKDONE to Parameter > set the value to false.
To keep contacts organized in Rocketbots add the Marked Done Parameter to the intents which successfully answer contact questions. That way, contacts who have been successfully answered not to pollute the pending list.
Another benefit of using Rocketbots as a Dialogflow CRM is the ability to have a simple Dialogflow CMS. When building a Dialogflow Agent for a client you'll want your client to be able to change the response for some intents. This can be achieved by creating a Snippet in Rockebots, then using the Snippet Parameter in Dialogflow.
To create a snippet in Dialogflow navigate to Snippets > Add Snippets > create the Snippet > save > then copy the Snippet ID from the Snippet table.
Each Snippet you create has a permanent ID but Rocketbots users with the manager access level can change the message it delivers. If your client needs to change the opening hours they are sending to users, they can do so from the Snippets module.
For a Dialogflow Intent to send this Snippet you'll need to add the Snippet ID as a parameter.
To add the Snippet Parameter and ID navigate to the Dialogflow Console > open an intent > add RB_SNIPPET to the Parameter > set the value to the Snippet ID.
Excellent, now you've got yourself a miniature Dialogflow CMS where you can edit the Dialogflow Agent for your client, and they can change responses when needed.
3 Fallbacks & Building a Dialogflow Human Handoff
Initiating a Dialogflow human handoff is quite easy when using Rocketbots. If you want to build a human handover you'll need to add a talk to human prompt in fallback. Then build a talk to human intent using the Bot Status and Notification Parameters.
To create a talk to human prompt navigate to the Dialogflow Console > open the Fallback Intent > add talk to human as a quick reply in the response.
Once you've added this prompt to your fallback Intent, create an intent where the handover can happen. The Intent should include Talk to Human in the training phrases and contain your Bot Status and Notification Parameters.
To add Bot Status & Notification Parameters navigate to Dialogflow Console > open the Intent> Add RB_BOTSTATUS to Parameters with false as the value > Add RB_NOTIFY to Parameters with the desired notification message as the value.
It's best to add a response to this intent that tells the contact what is going on. Something like, someone will be right with you. Once this intent is triggered, a notification will be sent to platform users in the dashboard and as an email notification.
Once the platform user has been notified and helped the contact, they can turn the bot on again from the messaging module.
Phew, we're finished. Using the techniques described in this post, you'll be able to build a fantastic agent with Dialogflow Human Handoff capabilities.