Google Sign-In in Jovo



Is there a way to implement Google Sign-in via voice using Jovo framework?
If not - is there a way to use Actions on Google node.js sdk inside a Jovo app?


answering my own question, I found something in the docs:

I already enabled Sign In with voice in Action on Google console, and used this:
in my app. First test returned a prompt from AoG to sign up :slight_smile:
I’ll update with full solution when I get it - unless someone can do it quicker :smiley:


so the next step is to create an intent:


And inside try to get user profile data, hoping to provide access to email address.
The intent works, but I can’t get user profile data.

I tried this:
let profile = await this.$googleAction.$user.getProfile()
but it returns undefined.

Please help.


Can you paste the full request JSON here?


I found the problem, and the the solution too!

here’s the working ask for sign-in and sign-in confirmation intent:

async ASK_FOR_SIGNIN () {
  const speech = 'To receive emails'

async ON_SIGN_IN () {
    if (this.$googleAction.getSignInStatus() === 'OK') {
      // get token
      const tokenId = this.$originalRequest.user.idToken

      // decode token
      const tokenUrl = '' + tokenId
      try {
        const response = await axios.get(tokenUrl)
        const tokenData =;
        // pull email from the decoded token
        this.tell(`User email is: ${}`);
      } catch (error) {
        this.tell(`Can't decode the token`);
    } else {
      this.tell('There was an error.');

I’m not sure if that’s the recommended way of doing it, but it works :slight_smile:


thanks for sharing this! we will take a look :slight_smile:

Getting user email address in google action

Hi, just wondering if you had a chance to look at this. I just recently installed Jovo and this is my first issue encountered while migrating my current code. Thanks in advance.


I missed that one.

I will publish an update (beginning of next week) that returns the following object:


export interface GoogleAccountProfile {
  email: string;
  email_verified: boolean;
  name: string;
  picture: string;
  given_name: string;
  family_name: string;

  [key: string]: string | boolean;

thanks @MarekMis. I took the relevant part from your snippet.