Google Assistant (Dialogflow)

Integration published by Jovo | 9,720 downloads

Build apps for Google's Assistant platform using Dialogflow

Google Assistant Platform Integration

Learn more about Google Assistant specific features that can be used with the Jovo Framework.

Introduction

Installation

Import the installed module, initialize and add it to the app object:

Quickstart

Install the Jovo CLI

We highly recommend using the Jovo CLI if you want to benefit from all the features coming with Jovo. You can learn more and find alternatives on our installation page.

Create a new Jovo Project

You can create a Jovo project into a new directory with the following command:

This will create a new folder, download the Jovo "Hello World" template, and install all the necessary dependencies so you can get started right away.

This is how a typical Jovo project looks like:

Find out more about the Jovo project structure here.

Run and Test the Code

To test the logic of your code, you can use the local development server provided by Jovo, and the Jovo Debugger.

To get started, use the following command:

This will start the development server on port 3000 and create a Jovo Webhook URL that can be used for local development. Copy this link and open it in your browser to use the Jovo Debugger.

Jovo Debugger

In the Debugger, you can quickly test if the flow of your voice app works. For this example, click on the LAUNCH button, and then specify a name on the MyNameIsIntent button. The Debugger will create requests and run them against your local webhook.

Find out more about requests and responses here.

$googleAction Object

The $googleAction object holds references to every Google Action specific feature:

Jovo Language Model

For a general understanding of the Jovo Language Model, check out the platform-independent docs

You can add a dialogflow object at the root of the Jovo Language Model to add Dialogflow specific stuff using their original syntax. While building, it will be merged with the platform-independent stuff:

Session Entities

Session Entities work similar to Alexa Dynamic Entities in that you can enhance your existing static entities with dynamic ones to react to changes in user data or context. You can even choose whether to supplement or replace existing entities by providing an optional EntityOverrideMode.

Here is the official reference by Google: Session Entities.

Session Entities are stored for 20 minutes, although we recommend to clear every session entity as soon as the user session ends.

There are a lot of Google Action specific user data and permissions that your voice app can use, such as:

  • Contact Information
  • Location
  • Date and Time
  • Account Linking

You can find out more about your Google Action user's data here.

Google Action Interfaces

Google Transactions

The Google Transactions feature allows you to sell digital and physical goods in your Google Actions. You can find the documentation here.

Output

Besides the platform independent basic output capabilities and the ones specified in the Interfaces section of the docs, the Google Action platform supports the following two features:

Multiple Reprompts

Google Assistant allows to add multiple reprompts that are spoken out in order if there is no response by the user. Here is the official reference by Google: Static Reprompts.

The reprompts can be added to the ask method adding more parameters:

The first two messages are usually reprompt messages, the third one is used to say goodbye to the user.

Confirmation

You can ask your user to confirm something using the following method:

The question should be one which can be answered with yes or no.

The user's response will be mapped to the ON_CONFIRMATION intent, where you can check wether they confirmed or not using this.$googleAction.isConfirmed():

Google Assistant Changelog

Current version might be higher than the latest changes displayed below because of updates of dependencies.

2021-07-07 [3.5.4]
  • #948 ✨ Add enableFullScreen and continueTtsDuringTouch (@aswetlow)

2021-02-22 [3.5]

  • #901 Move setResponse from response to after.response middleware (@aswetlow)
2020-11-20 [3.2.3]
2020-11-05 [3.2.1]
  • Fix Transaction API v2/v3 incomptibility

🐛 Bug Fix

  • #716 Corrected logic for retrieving project-ids in staged environments (@m-ripper)

Committers: 3

3.0.11 (2020-04-06)

  • Updated Typescript to 3.8.x
  • Updated Prettier to 2.x

Committers: 2

2.x

Find the 2.x changelog here.

Join Our Newsletter

Be the first to get our free tutorials, courses, and other resources for voice app developers.