I wrote a webserive like echosim.io or sammachins webalexa etc. Im able to record a question, send it to alexa and get an answer. But the requests are not shown in the voice history.
How does this history work? When i talk to alexa via echodot or echosim my requests/responses are shown in the history. How can i enable this function for my product.
Related
I am trying to create a simple survey skill in Amazon Alexa where Alexa asks the user a question and they respond in any manner they feel like (open-ended). For example, if Alexa asks "Do you cook?", a user may respond in many ways such as "Yes I do cook", "My son does the cooking" etc.
The issue I am getting is that the questions can have similar responses so when I create an utterance in the Alexa dev console they overlap (utterance conflicts) and I am redirected to the error handler. (note each question has its own intent)
Is there any other way I can go about creating a survey without using intents?
Can I capture the full user response to a slot?
The reason being I want to store the user's response in a database.
Unfortunately, Alexa Skills aren't designed to do Speech To Text.
When a user talks to a device, the request goes through multiple steps:
Automated Speech Recognition > It does Speech To Text internally
Natural Language Understanding (NLU) > Using Machine Learning, it will understand what the user want to do (Stop a skill, play music, switch on the light, ...)
Depending of the context, if the NLU understand that the user is trying to respond to your skill (the interaction model match what the user is saying), it will send a POST request to your skill. But it will not send you the Speech To Text.
Documentation
Although, the intent AMAZON.SearchQuery will do the job but you will have to use a prefix: My answer is {query} and not directly {query} because all requests will be redirected to this intent otherwise. It will not look like a good & smooth user experience.
New to Alexa skills in general. Developing an application where the state of an Alexa skill is determined by other means than voice interaction. So let's say for instance it is a weather skill. I understand I could access a weather service from the skill intent handler to retrieve the "weather state", but I wonder if there is a way for - in this example - the weather station, to POST the state of the weather to the skill and have the skill store it as a (global, user independent) state variable.
This would save me having to build a second webservice where i would maintain state information.
I have seen the Messaging ability of skills, but I'm not sure if that is the right thing to use for what i want.
I think you need this Proactive Events API
You can use the Proactive Events API to send events to Alexa. The events represent factual data that might interest a customer. Upon receiving an event, Alexa proactively delivers the information to customers who have chosen to receive these events ...
Because customers can choose to be notified of events from your skill,
they are never surprised to receive proactive messages from Alexa.
With this API, you can send a personal customer-specific event, which
results in a notification for a single customer. Alternatively, you
can send a broadcast event, which triggers notifications to all
customers who have chosen to receive notifications from your skill.
For example, a weather skill can send a single weather alert, which
Alexa then delivers to all interested customers.
There is a demo in Javascript
After I figured out how easy it is to set up an EB webservice and build a simple API using Node for the ASK lambda function to fetch data from, I guess this is a better approach. I might even replace the ASK lambda function with an EB Node service that does both the skill backend and the persistent storage in one.
I need to send a list of questions to be asked from Alexa, and get the responses in the form of text (not voice). The responses must be exactly the same as what the Alexa app provides. All the documentation/examples I've seen so far is for the case where the goal is to create a new Alexa skill which is not my goal.
I'd appreciate it if someone could point me to an example or documentation for what I'm trying to accomplish.
Alexa responses and requests are in a JSON format. It's easier to see the interaction when you're testing a skill so even though it's not your end goal it would probably be useful to create a dummy skill and test it in the alexa developer console.
If you're trying to make a chatbot type project you would create an API Gateway endpoint for your Alexa Skill's lambda function and then use that with dialogflow and its text based integrations such as messenger, web demo, twilio, etc.
Here is an example in the documentation of what a response and request looks like:
https://developer.amazon.com/docs/custom-skills/request-and-response-json-reference.html
I am developping an Alexa Skill within the one the user has to provide a serie of answers to my backend (node.js) in order to get the right result. I would like to send this result by email.
Is it possible to retrieve the user's email through the API put at disposal by AWS using the Dialog.delegate method?
Thanks !
There is no built in method can get you the current user email id or any personal info.
But with authentication you can. See this blog post. You'll need to create an Amazon App and link it to your amazon skill using Account Linking. For the first time when you ask for the email, user has to accept access with their Alexa app. You can then save this email in your DB for future purposes. This is a long but recommended method.
The simplest method: Whenever the game is finished you can manually ask the user for email address. But Alexa may not recognize email address spoken by users properly and might break your app. I don't know, but maybe Alexa will reject your app for asking personal info this way!
I am new in Alexa skill kit development
I have already read Tutorials on Alexa Skill Kit
I have to implement Alexa Skill , In which I need to manually send command and want Alexa to speak it.
i.e When user login in system I can fire API as Alexa request and I want Alexa device to Speak that for example "Welcome Have a great day"
Is it Possible ? Or Any other alternatives. ?
Notifications for Alexa skill are in still in beta. You can apply for the access to it by filling up this form here : https://alexa.au1.qualtrics.com/jfe/form/SV_72lplGGegxNZ9Ln
If Push Notifications is what you're looking for, then the answer is YES.
Since in the comments you said, "You are not asking for HOW TO DO IT", so I'll just let this link here for your reference. https://developer.amazon.com/docs/alexa-voice-service/notifications-overview.html
I think you may want to use proactive events for your skill. They are now commercially available. You will be able to send a notification to your skill and the Amazon device will blink (yellow). However you will still need to say "Alexa check my notifications" to retrieve the actual message
https://developer.amazon.com/docs/smapi/proactive-events-api.html
Another idea would be to use "progressive response" feature: https://developer.amazon.com/docs/custom-skills/send-the-user-a-progressive-response.html
You can fire the interaction to alexa when your API is invoked and send a progressive response. Not really a notification but it might serve you. This way you will not need to ask to check the notifications to Alexa but directly get the voice message in the progressive responses