Error saving interaction model - Bad request on Alexa Skills Builder - alexa

I am working on a alexa skill and on Alexa skills builder I can't save / build my skill with a Intent slot (Answer for a Trivia Skill) all I get is when I try is Error saving interaction model
Bad request If I remove the custom intent slot (Answer) it works perfectly fine. Is this error from my side or is it a Skills Builder error?
Thanks
Anush.

If you're using the code from here https://github.com/alexa/skill-sample-nodejs-trivia try copying and pasting the json from one of the interaction models in the ./models folder into the "code editor" in the Skill Builder. It's likely just a minor typo in the json.

Related

alexa The target device does not support the specified directive

I am trying to implement the videoapp-starter template. I ran the following commands :
> ask new --template --url http://skilltemplates.com/templates.json
and
> ask deploy
After deploying the skill I am trying to test from the console. however, I am getting the same error as below. I have not modified the code revived from the template and trying to deploy as is.
The target device does not support the specified directive.
Alexa console error message
There are limitations to the Alexa Simulator, some of the interfaces are not supported.
The Alexa Simulator does not render the video playback, but the Skill I/O section shows the VideoApp directives sent from your skill.
Try it on an actual device. Or check out other ways to test skill.
List of Alexa Simulator Limitations here.

Alexa Skill working on amazon.developer console test but not working in beta-testing for alexa App

I am currently in development mode for the skill. It is using Lambda endpoint. The skill is working in https://developer.amazon.com/alexa/console/ask/test/
When I sent invites for Beta testing and followed the Beta testing instructions on a different (email account with Alexa), the application is giving “Unexpected communication issue: There was a problem communicating with the requested skill”
Request identifier: amzn1.echo-api.request.[some-id]
I am not getting any logs in CloudWatch for my Lambda function
[Update] More info:
The skill is available in all countries and regions where Amazon distributes skills.
This is a dummy skill, with only one intent, triggered by a command like this Alexa open mySkill and tell me a new fact, after which the control passes on to Lambda function which selects a fact string randomly from an array.
Solved it finally. The problem was mainly due to 2 reasons:
I had created multiple skills (for testing) and didn't noticed that
they had similar invocation words (silly me :/ ). One of them was
pointing to an older AWS account. Thanks #ChuckLaPress for the hint.
Language settings. I had used the default en-US language and was trying from India. Solved it by including support for all other english languages. Details here.

Unable to activate test stimulator for alexa skill

I have been into alexa development and recently I have encountered a never before situation. While trying to enable testing on a new skill, I am getting the following error on the test tab :
There was a failure enabling your skill, please try again.
I know that this might happen if I do not complete the previous steps such skill information, interaction model, configuration etc. But the strange thing is that i have completed all of the above steps. My skill has :
A valid skill name
It has valid intents, slots and sample utterrances in my interaction
model
I have successfully saved and built my interaction model
I have provided valid end-points ARN of my AWS lambda function, which has
alexa-skill-kit enabled with the skill-id of my skill, in the configuration tab.
I don't think I have missed any of the requirement as it shows green tick(successful completion) on all mentioned steps before testing. But I can not enable the test stimualtaor in the test tab. It throws the above mentioned error message.
Any help will be highly appreciated. Thanks!!
Go to the "build" tab in your Alexa Skill page. On the right side, you will find "Skill Builder Checklist". Make sure that all steps in the checklist are completed.
Thanks
Visit the invocation tab in Alexa Skill Kit Developer console. All Skill builder checklist have to be complete to start the test.
Don't forget to build your skill before run test.
In EndPoint -> click Save Endpoints, if it successful then in Test, you can see Test is enabled for this skill ( in blue color).

How to import Alexa skill into API.AI / Dialogflow?

I'm trying to export my Alexa Skill / import it into Dialogflow (used to be called API.AI), but I'm getting the following error message:
Invalid Alexa schema json file.
My Zip file is the index.js file and the node_modules folder zipped together. Then I added the Alexa Skill JSON named schema.json to the zip too, but it still gives the same error.
I cannot find instructions on how to export the correct Alexa .zip for import, nor how to format the zip to build it myself. I've been searching for a while -- does anyone know how to do this? (I emailed their support already, but no response yet.)
There were some updates to the Alexa Interaction Model, so the Dialogflow Alexa Importer doesn't seem to work anymore.
There are a few things to consider when porting an Alexa Model into a Dialogflow Agent:
Built-in Intents: You need to create custom Dialogflow intents for built-in Alexa intents like AMAZON.HelpIntent
Built-in Slots: Amazon offers a large variety of slots (e.g. AMAZON.Number) that need to be converted to Dialogflow. For this, Dialogflow offers System Entities. Find all System Entities here.
I created a complete step by step guide and video that uses the Jovo Language Model to translate an Alexa Model into a Dialogflow Agent. You can find it here: Tutorial: Turn an Alexa Interaction Model into a Dialogflow Agent.
Here is an example of the format for the zip: https://github.com/dialogflow/fulfillment-webhook-importer-nodejs/tree/master/skill/speechAssets
The zip should have two files: IntentSchema.json and SampleUtterances.txt
Here is how to get IntentSchema.json and SampleUtterances.txt:
Go to https://developer.amazon.com/edw/home.html#/skills to view all your skills.
Select the skill you'd like to export to by clicking on the skill name for the corresponding skill:
On the left select "Interaction Model" from the list and you should see the screenshot below:
Copy the contents of the the editor and paste it into your IntentSchema.json file and save it.
Next, copy the contents into the editor of the "Sample Utterances" section and paste into your SampleUtterances.txt file and save:
Lastly zip up your IntentSchema.json and SampleUtterances.txt files and upload them to Dialogflow
I'm not sure if your still working on this but if anyone else is stuck, the files you zip have to read IntentSchema.json and SampleUtterances.txt exactly.

Alexa Skills Set SDK - increase timeout of skill

I am building an Alexa instructional exercise skill using the Alexa Skill Set SDK on nodejs. I am saving each cooking step to the DB, therefore if the skill times out, the user can reopen the skill and continue where they left off.
Problem is that users are annoyed that they have to keeping reopening the skill, people work at different speeds, is it possible to keep the skill open or increase the time out whilst I wait for the user to complete the step and then say "Alexa, next step"?
I tried increasing the lambda timeout, it made no difference.
I have been trying to do this for quite awhile. There have been several responses on the Amazon developer forums from folks at Amazon (for example, this response) that state that the approximate 8-10 second timeout is not configurable.
The following solution is bit of a hack and not recommended, but may serve your purpose.
Just modify your response like below:
<speak>
Tell recipe step here.
<audio src="<-- Hosted silent mp3 file URL -->" />
</speak>
You can add a silent mp3 file in your response. Your skill will be on for the time of that mp3 file.
But to interrupt Alexa in the mid of this response, user will have to say Alexa, next step instead of Next step.
There is API you could call to provide progressive response

Resources