Intent Slot values are always undefined except one


#1

My interaction model has multiple slots for an intent.

{
    "name": "ClickSummaryIntent",
    "phrases": ["{emailid}", "{newpage}", "{prevnext}"],
    "inputs": [
            {
              "name": "emailid",
              "type": {
                "alexa": "AMAZON.NUMBER",
                "dialogflow": "@sys.number"
              }
            },
            {
              "name": "newpage",
              "type": {
                "alexa": "AMAZON.NUMBER",
                "dialogflow": "@sys.number"
              }
            },
            {
              "name": "prevnext",
              "type": {
                "alexa": "AMAZON.LITERAL",
                "dialogflow": "@sys.given-name"
              }
            }
    ]
}

Part of the compiled model:

{
   "name": "ClickSummaryIntent",
   "samples": [
       "{emailid}",
       "{newpage}",
       "{prevnext}"
    ],
    "slots": [
        {
           "name": "emailid",
           "type": "AMAZON.NUMBER"
       },
       {
           "name": "newpage",
           "type": "AMAZON.NUMBER"
       },
       {
            "name": "prevnext",
            "type": "AMAZON.LITERAL"
       }
   ]
}

In app.js, I am always getting newpage and next as undefined.

async ClickSummaryIntent() {
    const email_id = this.$inputs.emailid.value;
    const new_page = this.$inputs.newpage.value; // always undefined
    const next = this.$inputs.prevnext.value; // always undefined
    ...
}

Where I am doing wrong? Below is the screenshot of my JOVO debugger console

Screenshot%20from%202019-06-18%2012_08_07

PS: Also how would I create a new slot type like I need here for Prev/Next paging stuff? I want to learn how to write the interaction model by hand. AMAZON.LITERAL is deprecated but I don’t know what alternative to use here. Don’t want to compile on Alexa and use jovo get.

Requesting for help!


#2

I see two phrases with emailId and newpage, but both point to a number slot. I don’t think this is going to work.

If you want to use all three slots, you need to do a phrase with "{emailid}, {newpage}, {prevnext}”, not three phrases


#3

Thank you so much @jan! :slight_smile: