update Interaction Model without resubmission - alexa

My intention is my users can insert some intent to my alexa skill using my applications. So I need to change the intent schema and sample utterance of my alexa skill dynamically.
Is there any way to update intent schema and sample utterances without resubmisson and without using amazon developer portal.
Thanks

No, there is no way to update the configuration of a skill programmatically or dynamically.
There is a popular feature request in for this though:.
https://forums.developer.amazon.com/content/idea/49556/programmatic-way-to-update-slots-intent-schema-and.html

Related

What is a good way to deploy/reference Alexa Skills on my website

I have built a Alexa Skill, but for now it only works for Alexa Device.
I wonder if that is possible I can deploy/reference the Alexa Skill in my website (only text or voice part)?
One use case:
User can say "i am born in xx/xx/xxxx", and Alexa can capture the intent "CaptureBirthdayIntent", so that my website code (Python) can address the intent.
I found many CMS (e.g. Wordpress, Drupal) can do this: https://medium.com/#OPTASY.com/how-to-integrate-alexa-with-your-drupal-8-website-a-step-by-step-guide-5a76c1d74a88. But I am not using those CMS.
It also seems like Alexa Voice Service can do this.
Can anyone give me some reference?
In most cases, you'll need to use Account Linking, which is an API where the customer links their account at your website and their account with Alexa, and then you'll have a unique ID for the customer that is the same in both your skill and your external app (and is unique to that link between them), so you can sync data between them using a database.
https://developer.amazon.com/en-US/docs/alexa/account-linking/understand-account-linking.html
You can create your own unique OAuth 2 provider at your web app or use Login with Amazon, Login with Google, Facebook, AWS Cognito... Having your own OAuth provider can make it way easier to get a customer linked and not have them give up, because adding in third parties (LwA, Google, FB, AWS) adds extra logins/authorizations to complete the process.
You can use Dialogflow to do this. Make a chatbot with similar intents and map the endpoint to Alexa endpoints and should work. I am sure you can easily work it out if you have made an Alexa skill.

ALexa API to create intents and utterances

Is there any API to create intents and utterances in alexa from a third party system like "Magento".
Any help would be highly appreciated.
Check Voice Apps and Invocable
These are 3rd party online tools to help you build and publish Alexa Skills with drag and drop facility. You can easily create intents, slots and add utterances.
I think you're looking for Alexa Skill Management API (SMAPI). This is official and You'll need to create a Amazon app to use it. All details can be found here
SMAPI provides RESTful HTTP interfaces for programmatically performing Alexa skill management tasks, such as creating a new skill or updating an interaction model.
You'll can first create a Skill using the above API, then create/update intents and slots using Interaction Model Management. To do this you'll need to be comfortable with Interaction Model Schemas and a sample Scheme can be found here

Autofilling of utterances in alexa skills generated by utterance generator tool(ex. utternance expander)

Is there any API or way to integrate the utterance generator to alexa skill developer console.
Means I want the generated utterances by generator tool to be autofilled in the alexa skills intents in develope console.
Does developer console provide any means of calling the utterance generator API and to get it included into respective intents in alexa developer console.
The developer console right now does not support any means of calling external API to autofill utterances.
However, One solution would be to write a simple program in one of your preferred languages to create a JSON file according to this format.
You can generate all the utterances into this file and copy and paste the file in the interaction model JSON editior in amazon skill developer console and it would automatically create intents and utterances according to the Interaction model Json you pasted.
A solution very useful, with nested parentheses and JSON format you'll find in this site.
This tool will help you enumerate the sample utterances that your Amazon Echo app will recognize for your intents

"Building skill schema failed" error while deploying alexa skill using ask-cli

I have a alexa skill live on amazon skill store. The interaction model of that skill was developed using the skill builder of alexa development portal and the lambda function was uploaded seperately. The skill is live and has many users.
Recently I felt the need of making some changes to that skill. Since now I am using ask-cli for all my alexa skill development, I decided to use the same for this skill too.
Here are the steps I followed:
cloned the skill from the alexa console using command ask clone and selecting the skill I wanted to make changes in.
made the required changes in the skill. Just changed a response, nothing special.
tried deploying the skill again to alexa console using ask deploy command
But I got the following error:
[Error]: Building skill schema failed
I thought that the changes I made might be the cause of it, so I backtracked the changes and made the code as it was when cloned. Then I tried deployig the code again but the error remained the same.
I went through some answers on amazon portal, the most common cause of the issue for others there was some mistake in URI of skill icon URIs. To be sure, I also removed that line from skill.json and tried deploying it again but nothing changed.
Does anyone has any idea of the cause of the above mentioned issue?
Make sure your lambda function has Alexa Skills Kit as trigger. I solved my problem by adding back the trigger (and entering the skill ID).
This steps might able to fix that problem.
Create a new skill in the developer portal.
Create the Lambda function for that skill then add it as an endpoint.
Download the skill via ask-cli
Copy the code in the existing skill to the new skill.
Re deploy using ask-cli.
It might be due to permission error or the appropriate profile used during deployment is configured incorrectly or missing.
If the cause of the issue is your image urls in Skill.json file try this hacky solution
Goto your Alexa skill development portal and select "distribution"
tab
In that upload both small and large icon. ( Do not press save ) if its a new skill,
right click on the image and select open image in new tab and copy
the image URL. now use this URL in the skill.json
This is what i used in my skill when s3 url are all causing issue.

How to integrate with alexa app

I have a music application. I have built all the custom skill for my music application and it is working fine in amazon echo device. My question is how do i integrate it with alexa app. I can see spotify, pandora, saavn etc in the music section of alexa app and any song playing from this 3rd party application will appear in playqueue and now playing section in alexa app. So how to integrate? Any ideas or link regarding this will help me a lot.
Read and follow this: Submitting the Skill for Certification
When your skill is ready for publication, you can submit it to Amazon for review. The Submit for Certification button becomes available once all required fields are completed.
So make sure you meet all Certification Requirements.
When you submit your skill to the Alexa skills store, it must pass a certification process before it can be published live to Amazon customers. Before you submit your new skill for certification, you should perform your own quality assurance testing.
First, Policy Testing.
The following list shows specific examples that we look out for when evaluating whether a skill can be made available on Alexa.
Second, Security Testing.
To protect customer data, the cloud-based service for your skill must meet Amazon’s security requirements.
Third, Functional Testing.
The functional tests verify that: The skill’s basic functionality matches the information displayed on the skill’s detail card in the Amazon Alexa app. ...[And] the skill’s core functionality works and provides useful home cards to the Amazon Alexa app.
Fourth, Voice Interface and User Experience Testing.
Voice interface and user experience testing focuses on: Testing the user experience to ensure that the skill is aligned with several key features of Alexa that help create a great experience for customers. [And] reviewing the intent schema, the set of sample utterances, and the list of values for any custom slot types you have defined to ensure that they are correct, complete, and adhere to voice design best practices.

Resources