Google Conversational Actions: issue with Jovo4 + a Selection Response

google-assistant

#1

Hi

I’m running into this issue with Jovo4, Google Conversational Actions and displaying a visual selection.

I have a “MainScene” and a “HelpScene” in which I want to display some options in a list, that a user can select.
For debugging purposes, I now redirect my user directly to the HelpScene in the START method of my Component.

@Component()
export class WelcomeComponent extends BaseComponent {
  async START(): Promise<void> {
    return this.$send(NextSceneOutput, { name: 'HelpScene' });
  }

I noticed the Google Assistant Platform integration does not respond to the Jovo Carousel, so I’m doing this a bit lower in the class.

@Handle(GoogleAssistantHandles.onScene('HelpScene'))
showHelpList() {
  return this.$send({
    platforms: {
      googleAssistant: {
        nativeResponse: {
          scene: {
            name: this.jovo.$googleAssistant?.$request.scene?.name,
            slots: {},
            next: {
              name: 'MainScene',
            },
          },
          session: {
            id: 'session_id',
            languageCode: 'nl-BE',
            params: {},
            typeOverrides: [
              {
                name: 'prompt_option',
                synonym: {
                  entries: [
                    {
                      name: 'ITEM_1',
                      synonyms: ['Item 1', 'First item'],
                      display: {
                        title: 'Item #1',
                        description: 'Description of Item #1',
                        image: {
                          alt: 'Google Assistant logo',
                          height: 0,
                          url: 'https://developers.google.com/assistant/assistant_96.png',
                          width: 0,
                        },
                      },
                    },
                    {
                      name: 'ITEM_2',
                      synonyms: ['Item 2', 'Second item'],
                      display: {
                        title: 'Item #2',
                        description: 'Description of Item #2',
                        image: {
                          alt: 'Google Assistant logo',
                          height: 0,
                          url: 'https://developers.google.com/assistant/assistant_96.png',
                          width: 0,
                        },
                      },
                    },
                    {
                      name: 'ITEM_3',
                      synonyms: ['Item 3', 'Third item'],
                      display: {
                        title: 'Item #3',
                        description: 'Description of Item #3',
                        image: {
                          alt: 'Google Assistant logo',
                          height: 0,
                          url: 'https://developers.google.com/assistant/assistant_96.png',
                          width: 0,
                        },
                      },
                    },
                    {
                      name: 'ITEM_4',
                      synonyms: ['Item 4', 'Fourth item'],
                      display: {
                        title: 'Item #4',
                        description: 'Description of Item #4',
                        image: {
                          alt: 'Google Assistant logo',
                          height: 0,
                          url: 'https://developers.google.com/assistant/assistant_96.png',
                          width: 0,
                        },
                      },
                    },
                  ],
                },
                typeOverrideMode: 'TYPE_REPLACE',
              },
            ],
          },
          prompt: {
            override: false,
            content: {
              collection: {
                items: [
                  {
                    key: 'ITEM_1',
                  },
                  {
                    key: 'ITEM_2',
                  },
                  {
                    key: 'ITEM_3',
                  },
                  {
                    key: 'ITEM_4',
                  },
                ],
                subtitle: 'List subtitle',
                title: 'List title',
              },
            },
            firstSimple: {
              speech: 'This is a list.',
              text: 'This is a list.',
            },
          },
        },
      },
    },
  });
}

Which is the code from this sample: https://developers.google.com/assistant/conversational/prompts-selection#collection

When I then test the behaviour of the webhook, everything works smoothly and the options are displayed.

However, when I select one of the items, Google Assistant just aborts the conversation (nothing comes in the webhook anymore) and it says “YourApp is not responding. Try again later”

What should the configuration look like in order for my webhook to receive the selected response from Google?
Any one with some experience on this topic?

Thanks in advance!


#2

Hi @maercky,

Does your scene have webhook fulfillment enabled?


#3

Hi @jan

Yes, this is the configuration of the scene.


#4

Also got this one resolved. The problem + explanation is documented on StackOverflow: https://stackoverflow.com/questions/70968978/google-actions-builder-stops-execution-when-selecting-a-visual-item-from-a-list/71239823#71239823