1

I have skill with an Invocation like this: "Alexa, ask SuperDuperEvent". But I want to be able to do this: "Alexa, ask SuperDuperEvent location". Where location is going to be a city.

Because my Skill is heavily location based I need to know the location that is requested before anything else happens. Is this possible?

Is it possible to start the skill with a location, too? Like so: "Alexa, start SuperDuperEvent location".

Is this at all possible with creating a new skill for every location? I want to avoid using this type of dialog:

User: "Alexa, start SuperDuperEvent"

Alexa: "What location do you want to know about?"

User: "Brussels"

Alexa: "What do you want to know about the SuperDuperEvent in Brussels?"

This is probably the way to go, but it does not feel fluid or engaging.

Cheers

user2037559
  • 77
  • 1
  • 2
  • 15
  • 1
    Yeah. You can do this. When you invoke the skill it will also process the additional text and use this to match against available intents. So if you have an intent for location with a slot it'll pick this up and go straight to that intent. – bspeagle Feb 06 '19 at 17:36

2 Answers2

0

Yes, you can do it if you have the intent location defined. You can find more information at https://developer.amazon.com/docs/custom-skills/understanding-custom-skills.html

The only problem that I see is that the invocation name is only one word. Surely it will not pass the certification process.

As you can see in the developer console:

Invocation name requirements

Your invocation name should be two or more words, and can contain only lower-case alphabetic characters, spaces between words, possessive apostrophes (for example, "sam's science trivia"), or periods used in abbreviations (for example, "a. b. c."). Other characters like numbers must be spelled out. For example, "twenty one".

Invocation names cannot contain any of the Alexa skill launch phrases such as "launch", "ask", "tell", "load", "begin", and "enable". Wake words including "Alexa", "Amazon", "Echo", "Computer", or the words "skill" or "app" are not allowed. Learn more about invocation names for custom skills.

Changes to your skill's invocation name will not take effect until you have built your skill's interaction model. In order to successfully build, your skill's interaction model must contain an intent with at least one sample utterance. Learn more about creating interaction models for custom skills.

dgalan
  • 79
  • 7
  • I am facing the same challenge as OP and this answer is not helpful at all. I read the entire documentation before searching on SO for an answer to this basic question. Are there no official code examples of LaunchRequestHandlers that access requestEnvelope slot values? – raklorap Jun 27 '23 at 00:20
0

I struggled with this for hours without finding any good comprehensive answers on SO. I finally found this post from Amazon Developer Forums Answer Hub which addresses the problem https://amazon.developer.forums.answerhub.com/questions/184825/how-to-handle-launch-and-intent-request-at-the-sam.html

Different launch words arbitrarily behave differently, as defined in the documentation here https://developer.amazon.com/en-US/docs/alexa/custom-skills/understanding-how-users-invoke-custom-skills.html. If you want to use "start" then you also have to use the connecting word "and".

However, your initial proposition of using "ask" works in my experience. "tell" can also be used without any connecting words.

raklorap
  • 2,555
  • 1
  • 14
  • 6