Creating Alexa Skill Notifications (like quotemaker) - alexa

I need help in sending notifications to alexa device of a user (echo, dot, etc.. not the other non amazon alexa devices) from alexa skill i am building. I see quote maker doing it but, how its doing it is a blackbox.
For example if the user ordered some item through my skill (say abc org). I would like to notify user on their alexa devices about the status of order proactively ( eg, item shipped, or item out for deliver today).
Amazon has this already for amazon shopping, but i dont see much information on implementing the same for skills.
I saw quote maker creating a notification for self, but how its doing it is a blackbox

I had the exact same question and am still not 100% sure about the answer.
As best as I can tell, the Notifications API never made it out of developer preview, and instead has been replaced with the Proactive Events API.
Unfortunately, unless your skill needs to send notifications about trash pickup or sports scores, you're probably out of luck. Here is the complete list of all notifications types that are currently supported:
Weather alert
Sports event update
Message reminder
Order status update
Reservation confirmation
Trash collection reminder
Media content availability notification
Social game invitation notification

Related

Alexa Skill Messaging API vs Alert/Remainder API

Please help me to understand the difference between Skill Messaging API vs Alert/Remainder API. I went through the Amazon documentation. I am not able to differentiate.
Skill Messaging API
Your skill can get informed about skill events and things the user do with his shopping and todo list.
So you can subscribe to Events e.g.:
Skill events:
your skill is deactivated
an account was linked
skill enabled
skill permission accepted
List events: the customer created/deleted a todo list item or a item from his shopping list
Alert/Remainder API
You can create reminders for your customer. E.g. if there is a sports event you could notify your customer one hour upfront that the match will start.
Additionally you can also read and modify other reminders.
To confuse you completely this Alert/Reminder API is more close to an other Alexa feature, the Proactive Events. Here you can actively send speech to the customer. E.g. you could send scored goal to your customer. Here also a short description of it, instead of the technichal description.
The Proactive Event API is sending notifications (yellow light on devices without screens)

How to notify my Alexa Skill's customer about new features?

I am developing an Alexa Skill, and before releasing the first version of it, I wanted to be sure that I can notify my users about new features.
How can I do this ? What are my options ?
I saw Alexa Proactive Event, but I'm not sure about how to use it and if it's the right choice.
Following options:
Visually
(of course who reads when using alexa ;-) )
alexa developer console -> distribution -> whats new
For my skills I also updated the "detailed description" with some mini release notes before this "whats new" text field existed.
Voice
You can check in your backend logic if your user uses the skill after your update.
Therefore you would need to save the time whenever a user uses your skill (of course you need the times before your update but a backend update is independent from your skill update with certification).
Now if a requests come in you check the lastUsage time and can send out your special update message.
Of course you could also do via a flag (flag all users which got the message) instead of lastUsageTime.
Will be helpfull for persisting this data (alreadyGotUpdate message flag or lastSkillUsageTime): https://developer.amazon.com/de/docs/alexa-skills-kit-sdk-for-nodejs/manage-attributes.html#persistenceadapter

Can you post (state) information to an Alexa Skill without going through an intent?

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.

Alexa skill ki manual input

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

How to make phone call from custom alexa skill

My intent to call the specified phone number from my own skill.
For example
Me: Alexa, ask <invocation> to find the customer service number
Alexa: Sure, the customer service number is 1800-xxx-xxx-xxx. Would you like to call
Me: Yes
[HOW TO MAKE CALL NOW?]
It would be possible to open a phone call from your programmed skill (alexa skill service). But for sure you not just want to start the call but also that the user can speak into alexa? But it's not possible to get the voice from the user.
Amazon Alexa transfers the speech input into text.
Your skill service only get JSON requests from the amazon skill interface with intents and spoken things as text.
So there is no chance to the get the audio track from the alexa user. Also stated in the forum
There is a feature request - you should watch this feature and vote for it.
Or you implement something like a callbackservice that you interconnect users telephone to service customer number. E.g. via an app on the phone - see this
You can make a call using your echo device or using the Alexa app as long as contact is in your list using Alexa Calling. Calling is only supported in U.S., U.K., Canada, and Mexico.
Here is another link to help you setup
https://au.pcmag.com/gallery/60053/how-to-call-someone-from-your-amazon-echo

Resources