cancel
Showing results for 
Search instead for 
Did you mean: 

requirements are being ignored

0 Kudos
107

Hello,

I try to make something like a login authentification

and I have one skill called OTP that gets triggered when _memory.emp_id is absent

OTP has 2 requirements:

  • #NUMBER emp_id
  • #NUMBER emp_pin

and the Action is a webhook to my program that sends back a message with the emp_id and emp_pin (for debugging purposes).

But somehow whenever the bot asks for my emp_pin and I enter it, the bot answers with fallback sentence as like I wrote the pin without any sense, and by checking the json source it says that

"conversation": { "id": "test-1574152742073", "language": "de", "memory": { "emp_id": { "scalar": 18787, "raw": "18787", "confidence": 0.61 }

it didnt even save emp_pin.

Thank you

Accepted Solutions (0)

Answers (5)

Answers (5)

0 Kudos

It looks like I could fix this problem by adding this in requirements:

#number emp_id
or
#datetime emp_id

and the same one with emp_pin

thank you all!

Rodrigo-Giner
Active Contributor
0 Kudos

From what you say, I believe the problem is that when you enter the PIN the bot doesn´t detect the entity, that's why you get fallback.

You should feed more expression with different PIN numbers and define manually the PIN in the expression until with differents number the bot autodetect the PIN number entity.

Best Regards

0 Kudos

If you take a look at the monitor tab you will see that numbers like 1994 are interpreted as datetime and not as number. I am not sure what would be the best way to solve that problem.

I suppose going into the monitoring tab and changing all values manually to numbers will not be the solution. I also guess that it wouldn't be a good idea to create an own entity and add all numbers there, that could be an id or pin.

If your IDs and pins always had the same length, maybe you coud create an entity that understands that <4 numbers> colon <8 numbers> shall belong to this entity. And then you could ask the user for this form of input.

The only other idea that I have would be to use more skills. You could keep the trigger as is but remove the requirements. In the Action tab you could ask the user for the id, set a variable "wait_for_id" to true and redirect to the skill "query_id" with "wait for user input". In the next skill, your trigger would be that "wait_for_id" is true. In the Actions tab you now could edit the memory and set your variable "id" to "{{nlp.source}}". This means that the next thing that is entered, whatever it is, will be set as id. You further would have to set "wait_for_id" to false and instead set "wait_for_pin" to true and repeat the whole configuration for the pin in another skill. Your webhook would then have to be called from the "query_pin" skill.

0 Kudos

Thanks for your quick response!

I think I came a bit closer now with your method of setting a bool to true,

anway.

If I enter lets say 1994 as ID

and 19941994 as PIN , the bot rejects 19941994 as emp_pin and keeps requesting an input

but somehow random numbers like 213123213 work flawless

how can I make it asks once and accept my input?

thanks

0 Kudos

Without seeing your configuration it is hard to say where the error lies. But I have built a bot according to your description, except that I do not call a webhook, and it works. You can see the configuration below.

To trigger the skill, you have to give any input.

Below, behind "Edit Replies" there is some text like "Please enter your ID" and "Please enter your pin"

The memory field is set to true to make sure the skill is not triggered again.

If this doesn't help you, you could share your bot.Wihtout any further information I can only suggest you should check whether you have an "or" instead of "and" in your Requirements.