Can I create custom slot types dynamically in alexa voice service?

I think that, in fact, this is possible. You have to define a custom slot type, as explained here: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/defining-the-voice-interface#custom-slot-types

Now, the custom slot type asks you to provide possible values, which you should do. BUT! It seems that Alexa will still parse slot values correctly even if they are not in the list of possible values that you provided!

This seems to be an undocumented feature and what I am telling you is based on my own observations: My custom slot type is taking on unexpected values

In general, my impression is that the interaction model as a whole should be seen less as a strict set of rules and more as a guideline that is interpreted at the discretion of the Alexa Voice Service.


I was able to achieve this exact thing by creating a custom intent called "Search" with a custom slot type called 'query.' This sends whatever the user says in the slot value to my web service where I can search by string.

I had to put in one example in the slot values section (to pass validation) but in my testing the slot is receiving dynamic data and passing to to my web service as you would expect it to. See attached screen shots.

screen shot of search intent


I think you mean Alexa Skills Kit, not Alexa Voice Service. It is the Alexa Skills Kit that you write a skill (application) with and is the element that composes replies to the user.

No, you cannot spontaneously make up slot types. The interaction model, which includes the slot types, is used by the Alexa service to convert the sound data into the intent+slots. In order to return the highest quality, they require a fixed interaction model. This is supplied at design time and "compiled" into their recognition level. Therefore they do not support features that require ad-hoc changing of the interaction model.