Alexa for Apps Skill Manifest Reference
To enable Alexa for Apps in your skill, you must add an appLink
object to your skill manifest and declare support for the interface type of APP_LINKS
. This section explains the structure of the appLink
object. For the full skill manifest format, see Skill Manifest Schema.
Skill connection request skill manifest example
{
"manifest": {
"apis": {
"custom": {
"endpoint": {
"uri": "arn:aws:lambda:us-east-1:040623927470:function:cityGuideSkillLambda"
},
"interfaces": [
{
"type":"APP_LINKS"
}
],
================== ALEXA FOR APPS ADDITIONS START ==================
"appLink": {
"linkedApplications": [
{
"friendlyName":{
"default":"CityGuide",
"localizedNames": [
{"locale":"de-DE", "name":"Stadtführer"}
]
},
"catalogInfo": {
"type": "IOS_APP_STORE",
"identifier": "id123456789"
},
"customSchemes": ["cityguide://","ctgd://"],
"domains": ["cityguide.com","ctgd.com"]
},
{
"friendlyName":{
"default":"CityGuide",
"localizedNames": [
{"locale":"de-DE", "name":"Stadtführer"}
]
},
"catalogInfo": {
"type": "GOOGLE_PLAY_STORE",
"identifier": "com.cityguide.android.ctgdmobile"
},
"customSchemes": ["cityguide://","ctgd://"],
"domains": ["cityguide.com","ctgd.com"]
}
]
}
}
}
}
}
App link skill manifest reference
appLink
object
The appLink
object contains an object for each app your skill links to. If you have iOS and Android versions of your app, these versions count as separate apps.
- If your deep link request includes a URI, prefix, or package name, it must match a corresponding item in the
domains
orcustomSchemes
field in your skill manifest. Otherwise, the deep link request fails as unauthorized.
Field | Description | Type | Required |
---|---|---|---|
linkedApplications |
List of your apps | Array of object | Yes |
Field | Description | Type | Required |
---|---|---|---|
friendlyName |
Names for the app according to locale | Object | Yes |
catalogInfo |
Information needed to link to your app in the iOS App Store or Google Play Store | Object | Yes |
customSchemes |
A comma-separated list of custom schemes used to validate custom scheme links. At runtime, Alexa for Apps validates the custom scheme within the deep link using a regex built with this value. Required for custom scheme link requests. | String array | No |
domains |
A list of domains used to validate universal links. At runtime, Alexa for Apps validates the domain within the deep link using a regex built with this value. Required for universal links and website deep links. | String array | No |
friendlyName
object
The friendlyName
object indicates how you want your app name to be represented in any voice responses that Alexa provides automatically when deep linking.
For example, in a fallback scenario when the user hasn't installed your app, you might have Alexa take the user to the App Store instead. In those cases, Alexa says something like, "To enable this experience you'll need to install the app. Here's <friendly name> in the App Store."
Field | Description | Type | Required |
---|---|---|---|
default |
Friendly name for your app in its home locale. If you don't specify localizedNames , Alexa for Apps uses this value for all locales. |
String | Yes |
localizedNames |
Contains an array of friendly names for your app when the user's device locale isn't the home locale. Required if your app has different friendly names across different locales. If the names are the same across all locales, you don't need to include this array. You can only specify localizedNames values for the locales that you included in the manifest.publishingInformation.locales section of your skill manifest. |
Object array | No |
Field | Description | Type | Required |
---|---|---|---|
locale |
Locale, for example, de-DE |
String | Yes |
names |
Name for your app in that locale | String | Yes |
catalogInfo
object
The catalogInfo
object contains the information that Alexa for Apps needs to link to your app in the iOS App Store or Google Play Store.
The identifier
is used to validate deep link requests. For example, an Android intent deep link request must be for an intent whose root package name is in the catalogInfo
object. Otherwise, the request fails as unauthorized.
Field | Description | Type | Required |
---|---|---|---|
type |
IOS_APP_STORE or GOOGLE_PLAY_STORE |
String enumeration value | Yes |
identifier |
The identifier for your app in the iOS App Store or Google Play Store. For iOS apps, it's a numeric identifier, for example, id123456789. For Android intents, it's typically the package name, for example, com.cityguide.android.ctgdmobile . |
String | Yes |