tomharrigan / voicewp

Create Alexa Skills through WordPress

Home Page:https://voicewp.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Intent name must not be empty. Error code: MissingIntentName

Blackbaud-ChristiSchneider opened this issue · comments

Default schema in a new skill:

{
    "interactionModel": {
        "languageModel": {
            "invocationName": "my invocation",
            "intents": [
                {
                    "name": "AMAZON.CancelIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.HelpIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.StopIntent",
                    "samples": []
                }
            ],
            "types": []
        }
    }
}

Generated intent schema from freshly installed VoiceWP plugin with no changes from default:

{
	"intents": [
		{
			"intent": "Latest"
		},
		{
			"intent": "LatestTerm",
			"slots": [
				{
					"name": "TermName",
					"type": "VOICEWP_TERM_NAME"
				}
			]
		},
		{
			"intent": "ReadPost",
			"slots": [
				{
					"name": "PostNumber",
					"type": "AMAZON.NUMBER"
				},
				{
					"name": "PostNumberWord",
					"type": "VOICEWP_POST_NUMBER_WORD"
				}
			]
		},
		{
			"intent": "AMAZON.StopIntent"
		},
		{
			"intent": "AMAZON.CancelIntent"
		},
		{
			"intent": "AMAZON.HelpIntent"
		}
	]
}

When I paste the intents from this generated JSON into the default JSON intents object, I get the error Intent name must not be empty. Error code: MissingIntentName.

If I change the word intent to name like in the default JSON, the console reformats my JSON like so, but then generates error Custom type values must not be empty. Error code: MissingTypeValues which also makes me wonder why the values specified in my "custom slot types" section in the plugin aren't in the generated JSON.

{
    "interactionModel": {
        "languageModel": {
            "invocationName": "my invocation",
            "intents": [
                {
                    "name": "AMAZON.CancelIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.HelpIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.StopIntent",
                    "samples": []
                },
                {
                    "name": "Latest",
                    "slots": [],
                    "samples": []
                },
                {
                    "name": "LatestTerm",
                    "slots": [
                        {
                            "name": "TermName",
                            "type": "VOICEWP_TERM_NAME"
                        }
                    ],
                    "samples": []
                },
                {
                    "name": "ReadPost",
                    "slots": [
                        {
                            "name": "PostNumber",
                            "type": "AMAZON.NUMBER"
                        },
                        {
                            "name": "PostNumberWord",
                            "type": "VOICEWP_POST_NUMBER_WORD"
                        }
                    ],
                    "samples": []
                }
            ],
            "types": [
                {
                    "name": "VOICEWP_TERM_NAME",
                    "values": []
                },
                {
                    "name": "VOICEWP_POST_NUMBER_WORD",
                    "values": []
                }
            ]
        }
    }
}

Am I doing something wrong or has Amazon changed their interaction model?

Amazon changed the dev console interface and now wants the schema in a different format than what the plugin is providing. An update needs to be made to the plugin to fix this, sorry for the inconvenience. Will let you know once it's resolved

Great, thanks, I was wondering if I was just being super dense. Bad luck, I'm surprised they broke backwards compat in this way. I imagine this is frustrating for a lot of people.

😄 I'll have it fixed up by Monday for you

How to use the above JSON format for intent ? I wanted to export my built model on dialogflow on alexa skill but my intent schema is in the above format and I am getting the same error as @Blackbaud-ChristiSchneider is getting. Can you help me ?

Hello, I have the same issue as @soulshifter , that I am trying also to export my dialogflow agent into alexa skill and the zip file from dialogflow has the the format above for intents and giving the same error as well.
could you please help if you have found out the way to do it?

hey there @tomharrigan any solution on this problem yet?
I have the same issue as above.
Thanks

I am still facing the "Intent name must not be empty. Error code: MissingIntentName" error for following

{
"interactionModel": {
"languageModel": {
"invocationName": "voiceassistant",
"intents": [
{
"slots": [
{
"name": "CommandPhrase",
"type": "COMMAND_PHRASE"
},
{
"name": "Func",
"type": "FUNC"
},
{
"name": "AggregationColumn",
"type": "COLUMN_NAME"
},
{
"name": "TableName",
"type": "TABLE_NAME"
},
{
"name": "ComparisonColumnOne",
"type": "COLUMN_NAME"
},
{
"name": "ComparatorOne",
"type": "COMPARATORS"
},
{
"name": "ColumnValueOne",
"type": "COLUMN_VALUE"
},
{
"name": "ColumnNumberOne",
"type": "AMAZON.NUMBER"
},
{
"name": "GroupByColumn",
"type": "COLUMN_NAME"
}
]
},

    {
          "name": "AMAZON.FallbackIntent",
          "samples": []
      },
      {
          "name": "AMAZON.CancelIntent",
          "samples": []
      },
      {
          "name": "AMAZON.HelpIntent",
          "samples": []
      },
      {
          "name": "AMAZON.StopIntent",
          "samples": []
      },
      {
          "name": "AMAZON.NavigateHomeIntent",
          "samples": []
      }
],
        "types": []
    }
}

}

any solution?