1

I am developing an app for Google Assistant using Dialogflow (using Dialogflow online interface, without any external server).

I have a list of products. Each product has an intent which is trained with its product name. For example if I say "Product 1" the assistant will show me some information about "Product 1".

I also made an intent which lists all the products you can browse. As a response it shows a Google Assistant "List" which displays the names of all the items. But when I click one of the items, it will type its name("Product 1") but the item name is not recognized and I got the fallback intent. I though lists could work like suggestion chips but it looks like answers are interpreted differently.

By looking for examples I could only find examples using Dialogflow API from code (https://actions-on-google.github.io/actions-on-google-nodejs/classes/conversation_helper.list.html), and it seems that list answers are handled with a special type of intent.

Is there a way to handle list response directly from Dialogflow online interface ?

risk
  • 908
  • 10
  • 20

1 Answers1

2

It does not handle the List or Carousel interfaces the same way it handles the suggestion chips. As you note - they trigger a special Event, which you're expected to create an Intent for.

There are a number of reasons for this, but one good one is that these tend to be fairly dynamic (they're meant to represent things like search results), so having to manage these with a Session Entity might be more difficult.

You can use the Dialogflow Inline Editor to handle them. This is essentially the same as using a fulfillment server - however Dialogflow handles most of the server management for you.

Prisoner
  • 49,922
  • 7
  • 53
  • 105
  • Thanks ! I didn't thought about inline editor. It worked great to handle list response (I can get the selected option as a string) but I can't find a way to "redirect" to a specific intent. I tried to use `conv.followup` to pass an event, but my "Products" intents should also be callable directly without any list click, so I can't really use them as "follow up", right ? – risk Jan 28 '20 at 10:35
  • Sorry, I did something wrong, and I thought adding an event to an intent would prevent from calling it "manually". But it does not, so I just added an event keyword to all the products and use `conv.followup("productName")` to trigger the intent. It seems to work fine. Thanks again ! – risk Jan 28 '20 at 10:50