Jonathan Wareham
Jonathan Wareham

Reputation: 3399

DialogFlow - Improve entity/parameter recognition for alphanumeric parameters

I'm trying to create a DialogFlow intent that will ask the user for an account code. Account codes are alphanumeric and can be up to 10 characters. I originally setup my intent with a @sys.any parameter which does collect the input. However with voice recognition it struggles as it's not a word as such. For example if I say the account code X36501 it gets interpreted as 'x3650 one'.

What I thought I could do is create an entity called accountCode with a list of entries (synonyms turned off) for example :

X36501
ZZZZ01
ABC100

I then changed the intent parameter from @sys.any to @accountCode. I was hoping it would select the nearest value it could match based on the recognition. However it now fails to fill the parameter value at all.

Is there any other way to achieve this? Any way of defining a pattern/regular expression for guiding the voice recognition?

Upvotes: 1

Views: 993

Answers (1)

Daniel Situnayake
Daniel Situnayake

Reputation: 2904

When designing conversational experiences, it's considered best practice to avoid forcing users to enter codes, numbers and other types of data that are not easy to read out loud. The chance of recognition error is high, which increases user frustration.

This is not a limitation of the technology; it's more of a limitation of our ability to speak, since it remains a problem even when communicating with other humans. Think back to the last time you had to read out a long number over the phone.

Before moving forward, you should consider whether there is another way to identify an account. Is there any other identifying data that would be easier for a user to speak?

If there is truly no alternative, you could consider collecting the digits one by one, conscious that this is going to be a painful experience for your users.

Upvotes: 1

Related Questions