DialogFlow Plugin


For more information, refer to GitHub.


What Does This Plugin Do?

This plugin uses Dialogflow as NLU service. The variables intent, confidence, entities, defaultFallback, dialogflowResponse are automatically available inside the input object.

Setup

Install the Plugin

To integrate your bot with Dialogflow, you must use the intent template, which comes with @botonic/plugin-dialogflow by default.

  1. Install Botonic.
  2. Run botonic new test-bot intent.

Get a Service Account key in DialogFlow

  1. Click on the gear icon, to the right of the agent name.

  2. Under the GOOGLE PROJECT section, click on the name of the Service Account.

    Service Account

  3. This will take you to the Google Cloud Platform Service Accounts page, but you first need to update the Service Account's role.

  4. Click on the menu button in the upper left-hand corner and click on IAM & admin.

  5. Click on Service Accounts in the left-hand menu.

  6. Click on the Create Service Account button at the top of the page.

  7. In the pop up, enter a name for the service account.

  8. Click on Role. Under the Dialogflow category, select the desired role.

    Role

Generate a JSON key

  1. Check the Furnish a new private key option and make sure JSON is selected for Key type.

  2. Click the Create button.

    Create Service Account![](https://botonic-doc-static.netlify.com/images/dflow/dg3.png)
  3. The JSON file is downloading. Select a location to save it and confirm.

Note: You can only download this JSON file once, so make sure to save the file and keep it somewhere safe. If you lose this key or it becomes compromised, you can use the same process to create another one.

Use

Add the intent

Add the intent in the route.js file:

export const routes = [
{ path: 'hi', intent: 'Default Welcome Intent', action: Hi },
]

Add the JSON content file

Under resolve: require("@botonic/plugin-dialogflow"),, add the JSON content key.

Note: This is case-sensitive so make sure to paste exactly what you copied.

You should obtain something like this:

export const plugins = [
{
id: 'dialogflow',
resolve: require('@botonic/plugin-dialogflow'),
options: {
type: '',
project_id: '',
private_key_id: '',
private_key: '',
client_email: '',
client_id: '',
auth_uri: '',
token_uri: '',
auth_provider_x509_cert_url: '',
client_x509_cert_url: '',
},
},
]

Run and Deploy

Finally run botonic serve to test your intents locally, or botonic deploy to deploy the bot.

Note: Refer to Dialogflow to migrate your agents to V2 and to get the JSON key.

The fallback content to display on prerendering