-1

I'm struggling to build my Alexa Interaction model. My application is used for requesting live data from a smart home device. All i do is basically calling my Server API with a Username & Password and i get a value in return. My interaction model works perfectly for requesting the parameters, for example i can say "Temperature" and it works perfectly fine across all testing devices. For that intent i got a custom RequestType.

However for setting up Username & Password i need to use an built-it slot type: AMAZON.NUMBER. As i only need numbers for my credentials this should work perfectly fine in theory.

I got a interaction model setup which works perfectly fine when i press "Evaluate Model" in Alexa developer console. However once i go to Test on the simulator or to my real Alexa device it's absolutely impossible to call the intent. It always calls one of more other intents? (I see this in the request JSON).

Here's how the intent looks:

{
    "name": "SetupUsername",
    "slots": [
        {
            "name": "username",
            "type": "AMAZON.NUMBER"
        }
    ],
    "samples": [
        "my user id is {username}",
        "username to {username}",
        "set my username to {username}",
        "set username to {username}",
        "user {username}",
        "my username is {username}",
        "username equals {username}"
    ]
}

Whatever i say or type in the Simulator, i cannot call this intent. I have no overlaps from other intents. Does anyone see an issue here?

Thank you in advance

EDIT: I just realized that if you want to do account linking on Alexa you need to implement OAuth2 - maybe my intents are never called because they want to bypass me implementing my own authentication?

UPDATE:

This is the intent that is usually called instead - it's my init intent. So for example is i say "my username is 12345" the following intent is gonna be called:

UPDATE 2: Here is my full interaction model.

(HelpIntent and SetPassword are only for testing purposes, they don't make sense right now) It's impossible calling SetupUsername with any of the samples in my model.

Elias Johannes
  • 694
  • 2
  • 7
  • 26

1 Answers1

0

You need to build the interaction model. Saving is not enough

When you develop your Interaction Model, you have to save it AND build it. Otherwise only the evaluation model will work (documentation about it).

enter image description here

Then when you test in the test console, you should see in the JSON Input, at the bottom, which intent was called:

"request": {
    "type": "IntentRequest",
    "requestId": "xxxx",
    "locale": "en-US",
    "timestamp": "2021-10-20T14:38:59Z",
    "intent": {
        "name": "HelloWorldIntent", <----------- HERE
        "confirmationStatus": "NONE"
    }
}
callmemath
  • 8,185
  • 4
  • 37
  • 50
  • I'm always building the interaction model. I'm also checking out the JSON Input aswell and see that my specific user intent is never triggered. It's always another intent that gets triggered. – Elias Johannes Oct 25 '21 at 07:40
  • Can you detail what is the other intent. You've got the root cause here. – callmemath Oct 25 '21 at 09:47
  • I just updated my question with the intent that gets called instead. This only happens with my Username or Password intent. I tried making different intents and they work perfectly fine. (For example i set up an help intent that you can trigger by saying help me for example and it always gets triggered correctly, the difference is that it doesn't have the AMAZON.NUMBER slot type as an input) – Elias Johannes Oct 25 '21 at 11:40
  • Ok, what I need you to do is: 1. Share the FULL interaction model. 2. What is the utterance that you use that trigger the MyAppInitialIntent instead of SetupUsername. I will replicate and see how it is possible to fix this – callmemath Oct 25 '21 at 14:29
  • thank you, i just put a link to my full interaction model in my question – Elias Johannes Oct 27 '21 at 07:10