SlideShare a Scribd company logo
Design and Develop
Alexa Skills
Alessandra Petromilli and Federico Baron
Rome | March 22 - 23, 2019
Alessandra
Petromilli
CXO, I drive the User Experience
Strategy and Teams at ibuildings
Italia
@aleanan
Federico
Baron
Principal Solution Architect at
ibuildings Italia
Find me on Linkedin!
User
Under the hood
Device FulfillmentArtificial
Intelligence
Filastrocche della buona
notte
The purest
design
challenge
Communication
The process
Goal Definition
Personas
and User
Stories
Script and
Conversation
Flow
Usability Testing
Goal Definition
Customer
Development
Interviews
Cindy Alvarez
Francesca
and Luigi
Beatrice
Target users –
personas
La
cantastorie
The Storyteller
system
personas
Define Context
user stories
Utente: Alexa apri Filastrocche della buona notte
Alexa: Ciao, con Filastrocche della buona notte possiamo ascoltare
insieme delle belle filastrocche! Posso suggerirtene alcune io, puoi
chiedermi tu un titolo preciso tra quelli disponibili sull'app o puoi
ascoltare tutta la collezione dall'inizio alla fine. Vuoi ascoltare la luna,
Guido il Ghiro o il sole?
Interactions
Interactions
Conversation
Flow
Interactions
Conversation Flow
Launch
request
First
run?
Welcome to text
(introduce your skill)
Welcome to text
(introduce your
skill)
Welcome to text
(introduce your
skill)
< intent > Nursery
rhyme suggested
by alexa
< intent > Nursery
rhyme suggested
by the user
< intent > play all
(audio player
mode)
Help
yes
no
Intent and utterances
https://www.utterance-generator.com/
Utterances Generator
https://www.utterance-generator.com/
Teaming up
Teaming up
put your
ego aside
Curiosity
Technology is not somebody
else’s problem
Feedbacks
Feedbacks
Test di
usabilità
Voice X
Anil Kumar Krishnashetty
founder of Berlin Lean
Prototyping
What we
should not
forget
User control
and freedom
EXIT
Flexibility
and
efficiency of use
Help documentation
and error recovery
Always
expect the
unexpected
Developer console:
define the interaction
model using the web
application
Let’s start!
Register to Amazon developers and open
your Alexa Developer Console
• Web console to create and
manage the lifecycle of your
skills
• UI to configure skill's manifest
and models
• Browser test environment
(device simulator)
• Certification process
management
• Analytics
Use the web GUI to setup you
interaction model
Interaction model:
use Alexa’s built-in
elements as much as you
can
Some built-in elements you can take
advantage of defining your model
• built-in intents (AMAZON.YesIntent,
AMAZON.NextIntent, AMAZON.RepeatIntent, …)
• built-in slot types (AMAZON.Date,
AMAZON.Number, AMAZON.City, …)
• use dialog model to delegate to Alexa a multi-
turn conversation with the user
Sample Utterances
• reproduce flexibility and variation of spoken
language in the real world
• add utterances to start interaction ("Alexa, ask
Daily Horoscopes for/about/to")
• it is better to provide too many samples than to
provide too few
• tools to generate utterances (ex. amazon-echo-
utterance-expander)
Back-end:
One minute setup with AWS
lambda and NodeJs
• Log in to the AWS Management Console and navigate to AWS
Lambda.
• Create new Lamda function
• Define a role for the function from “Simple Microservice” permissions
template
• Add and Configure the Alexa Skills Kit Triggers (insert skill-id)
• Add Lambda endpoint (arn) to the skill
resource "aws_iam_role" "my-skill-role" {
name = "my-skill-role"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
EOF
}
resource "aws_iam_role_policy_attachment" "my-skill-role-policy-dynamo-att" {
role = "${aws_iam_role.my-skill-role.name}”
policy_arn = "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess"
}
resource "aws_iam_role_policy_attachment" "my-skill-role-policy-lambda-att" {
role = "${aws_iam_role.my-skill-role.name}”
policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
}
resource "aws_lambda_function" "my-skill-lambda" {
filename = "index.zip"
function_name = "my-skill-name"
role = "${aws_iam_role.my-skill-role.arn}”
handler = "src/index.handler"
runtime = "nodejs8.10"
}
resource "aws_lambda_permission" "my-skill-lambda-perm" {
statement_id = "AllowExecutionFromAlexa"
action = "lambda:InvokeFunction"
function_name = "${aws_lambda_function.my-skill-lambda.function_name}”
principal = "alexa-appkit.amazon.com"
event_source_token = "${var.skill-id}"
}
move to a comfortable
development environment
• ask init (setup cli tool linking
Amazon Developer and AWS
accounts)
• ask clone
• ask deploy
Development:
Simple introduction to NodeJS sdk
const Alexa = require('ask-sdk’);
// …
exports.handler = Alexa.SkillBuilders.standard()
.addResponseInterceptors(SavePersistentAttributesResponseInterceptor)
.addRequestHandlers(
LaunchRequestHandler,
PlayRhymeHandler,
PlayRandomHandler,
ReplayHandler,
PreviousHandler,
PlayAllHandler,
AudioPlayerEventHandler,
ResumeHandler,
YesHandler,
NoHandler,
HelpHandler,
SessionEndedHandler,
ExitHandler
)
.addErrorHandlers(ErrorHandler)
.withTableName('my-skill-table')
.withAutoCreateTable(true)
.lambda();
Simple introduction to NodeJS sdk
// ...
const PlayRhymeHandler = {
canHandle(handlerInput) {
// Conditions to determine the requests this handler can handle
const request = handlerInput.requestEnvelope.request;
return request.type === ‘IntentRequest’
&& request.intent.name === ‘PlayRhymeIntent’;
},
handle(handlerInput, error) {
// Execution logic for the handler
return handlerInput.responseBuilder
.speak(‘Mi dispiace ma questa filastrocca non è presente. Vuoi che te ne
suggerisca una io?’)
.reprompt(‘Vuoi che te ne suggerisca una io?’)
.getResponse();
},
};
// ...
The importance of “session”
for a voice app
• The skill session continues as the user speaks to
Alexa and your skill responds to Alexa
• The skill session ends when the user fails to
respond (8 seconds plus 8 more if re-prompt is
specified) or when the skill sets the
shouldEndSession property to true
• Once you are out of the session, you must invoke
the skill by saying something, such as "Alexa, open
[skill's invocation name]"
Using attributes
Saving the skill state is really important in order to
personalize the user experience and to implement multi-turn
conversations
Session attributes
• maintaned during the session
• Ex. store the request’s history to implement multi-turn
conversation
Persistent attributes
• persisted on database
• Ex. store last interaction date
Certification:
a very helpful feedback
• follow the submission checklist
• write Testing Instructions to help the
validation team
Thank you!

More Related Content

PPTX
Building Boston Rail - An Alexa Skill
PPTX
Amazon alexa - building custom skills
PPTX
Alexa, lets make a skill
PDF
Akka introtalk HyScala DEC 2016
PPTX
Amazon Alexa and Echo
PDF
Rails & Phoenix Authentication (Santa Monica Elixir)
PPTX
Building custom skills with Amazon Alexa
PDF
Introduction to building alexa skills and putting your amazon echo to work
Building Boston Rail - An Alexa Skill
Amazon alexa - building custom skills
Alexa, lets make a skill
Akka introtalk HyScala DEC 2016
Amazon Alexa and Echo
Rails & Phoenix Authentication (Santa Monica Elixir)
Building custom skills with Amazon Alexa
Introduction to building alexa skills and putting your amazon echo to work

Similar to Design and Develop Alexa Skills - Codemotion Rome 2019 (20)

PPTX
Building Amazon Alexa custom Skill step by step
PDF
Alexa for Developers
PDF
Get Started Developing with Alexa and Drupal
PDF
introductiontoalexaskillskit-160426090427.pdf
PPTX
NUS-ISS Learning Day 2017 - Voice Computing - The Next Digital Disruption!
PDF
Building Alexa Skills
PPTX
.NET, Alexa and me
PDF
Digital Muse “Girl Tech Fest - AWS Alexa Skills Coding Workshop
PPTX
introductiontoalexaskillskit-160426090427.pptx
PDF
David Isbitski - Enabling new voice experiences with Amazon Alexa and AWS Lambda
PPTX
Alexa101 course slides
PDF
How to Create a Custom Skill
PPTX
Voice enable all the things with Alexa
PDF
How to develop Alexa Skill Kit based on Serverless Architecture
PPTX
Developing alexa Skill using Java With AWS Lambda
PDF
Alexa meet up bangalore - 05-JAN-2019
PPTX
Getting Started With Alexa Skills
PDF
Alexa user group bangalore meetup - let us build multimodal skill
PDF
PPTX
Start building for voice with alexa
Building Amazon Alexa custom Skill step by step
Alexa for Developers
Get Started Developing with Alexa and Drupal
introductiontoalexaskillskit-160426090427.pdf
NUS-ISS Learning Day 2017 - Voice Computing - The Next Digital Disruption!
Building Alexa Skills
.NET, Alexa and me
Digital Muse “Girl Tech Fest - AWS Alexa Skills Coding Workshop
introductiontoalexaskillskit-160426090427.pptx
David Isbitski - Enabling new voice experiences with Amazon Alexa and AWS Lambda
Alexa101 course slides
How to Create a Custom Skill
Voice enable all the things with Alexa
How to develop Alexa Skill Kit based on Serverless Architecture
Developing alexa Skill using Java With AWS Lambda
Alexa meet up bangalore - 05-JAN-2019
Getting Started With Alexa Skills
Alexa user group bangalore meetup - let us build multimodal skill
Start building for voice with alexa
Ad

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Cloud computing and distributed systems.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPT
Teaching material agriculture food technology
PDF
cuic standard and advanced reporting.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Approach and Philosophy of On baking technology
NewMind AI Weekly Chronicles - August'25 Week I
Reach Out and Touch Someone: Haptics and Empathic Computing
Chapter 3 Spatial Domain Image Processing.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Understanding_Digital_Forensics_Presentation.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Electronic commerce courselecture one. Pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Cloud computing and distributed systems.
Per capita expenditure prediction using model stacking based on satellite ima...
Teaching material agriculture food technology
cuic standard and advanced reporting.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Digital-Transformation-Roadmap-for-Companies.pptx
Encapsulation_ Review paper, used for researhc scholars
Approach and Philosophy of On baking technology
Ad

Design and Develop Alexa Skills - Codemotion Rome 2019