← Blog·Tutorial

Build a Google Action with Node.js and Jovo

Alex Swetlow··Updated Feb 2024·12 min read

Google Conversational Actions let you build voice experiences for Google Assistant across phones, smart speakers, and smart displays. In this tutorial, we'll use the Jovo Framework to build one from scratch using the same TypeScript codebase you'd use for an Alexa Skill.

What you'll learn

  • ✓ Setting up a Jovo project with the Google Assistant plugin
  • ✓ Mapping intents between Jovo and Dialogflow
  • ✓ Using Suggestion Chips and Rich Responses
  • ✓ Deploying to Google Cloud Functions

Step 1: Create a New Jovo Project

$ jovo new my-google-action --platform googleAssistant

$ cd my-google-action

The --platform googleAssistant flag configures the project with the Google Assistant platform plugin, Dialogflow NLU integration, and a sample language model compatible with Google's intent system.

Step 2: Configure Dialogflow

Google Actions rely on Dialogflow for natural language understanding. Jovo handles the Dialogflow agent configuration automatically when you run jovo build:

$ jovo build --platform googleAssistant

# Generates Dialogflow agent files in /platforms/

This creates Dialogflow agent JSON files from your Jovo Language Model. Intents, entities, and training phrases are all mapped automatically — no need to manually configure them in the Dialogflow console.

Step 3: Add Suggestion Chips

Google Assistant supports rich visual responses like Suggestion Chips. In Jovo, you can add them through the output template system. For a deep dive into Suggestion Chips, see our dedicated guide.

LAUNCH() {

return this.$send({

message: 'Hi! What would you like to do?',

platforms: {

googleAssistant: {

nativeResponse: {

suggestions: [

{ title: 'Play Quiz' },

{ title: 'Tell me a joke' }

]

}

}

}

});

}

Step 4: Deploy

$ jovo deploy --platform googleAssistant

This uploads your Dialogflow agent and webhook endpoint to Google Cloud. You can then test your Action in the Actions Console simulator.

Cross-Platform Bonus

Because you built this with Jovo, you can add Alexa support by installing the Alexa plugin — no code rewrites needed:

$ npm install @jovotech/platform-alexa

See: Alexa Skill Tutorial · Output Templates · All Plugins