ActionPackage

ActionPackage holds the content for the draft of an App as well as each deployed version. This includes directory listing details, conversation configuration and account linking.

JSON representation
{
  "manifest": {
    object (Manifest)
  },
  "accountLinking": {
    object (AccountLinking)
  },
  "actions": [
    {
      object (Action)
    }
  ],
  "types": [
    {
      object (Type)
    }
  ],
  "conversations": {
    string: {
      object(ConversationFulfillment)
    },
    ...
  },
  "locale": string
}
Fields
manifest

object (Manifest)

The details of the App. This is where the directory listing is kept as well as other App identification like displayName.

accountLinking

object (AccountLinking)

The details for account linking on this App.

actions[]

object (Action)

List of actions the App is able to handle.

types[]

object (Type)

List of types defined by the developer.

conversations

map (key: string, value: object (ConversationFulfillment))

Map conversations that can be shared across actions. For example see the conversationName in Fulfillment.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

locale

string

The locale for this action package. This is represented by BCP-47 language strings, such as "en", "en-US", "fr", "fr-CA", "sr-Latn", "zh-Hans", "zh-Hans-CN", "zh-Hant", "zh-Hant-HK", etc. This is required when an App supports more than one language. Each supported locale has its own ActionPackage. If not value is provided, then default locale of the agent will be implied.

Manifest

The set of metadata for the App. The contents of this message are used in multiple contexts:

  1. actions on Google directory listing page.
  2. Unique identification of an App for explicit invocation (displayName).
  3. Content for other parts of an ActionPackage (shortDescription is used for display in AccountLinking, displayName is used in actions to show the App name to users).

This message is read-only. You specify the fields in this message via the actions console and not directly in the action package.

JSON representation
{
  "displayName": string,
  "invocationName": string,
  "enabledRegions": [
    string
  ],
  "disabledRegions": [
    string
  ],
  "shortDescription": string,
  "longDescription": string,
  "category": string,
  "smallSquareLogoUrl": string,
  "largeLandscapeLogoUrl": string,
  "companyName": string,
  "contactEmail": string,
  "termsOfServiceUrl": string,
  "privacyUrl": string,
  "sampleInvocation": [
    string
  ],
  "introduction": string,
  "testingInstructions": string,
  "voiceName": string,
  "surfaceRequirements": {
    object (SurfaceRequirements)
  }
}
Fields
displayName

string

The default display name for this App (if there is not a translation available), e.g. "Starbucks". This is also used as a method for users to invoke this App (in addition to invocationName). The display name must be unique and phonetically very similar to invocationName.

invocationName

string

This is the unique name for this App to directly invoke it within a voice (spoken) context. Policies require that the invocation name is phonetically very similar to the displayName field.

enabledRegions[]

string (int64 format)

Adwords criterion IDs for the regions where the App is allowed based on the user's location of presence. See https://developers.google.com/adwords/api/docs/appendix/geotargeting

disabledRegions[]

string (int64 format)

Adwords criterion IDs for the regions where the App is blocked based on the user's location of presence. See https://developers.google.com/adwords/api/docs/appendix/geotargeting

shortDescription

string

The default short description for the App (if there is not a translation available). This is limited to 80 characters.

longDescription

string

The default long description for the App (if there is not a translation available). This is limited to 4000 characters.

category

string

The category for the App. The value must be one of the allowed categories for Apps. See the actions on Google console for the list of allowed categories.

smallSquareLogoUrl

string

Small square image. The dimensions must be 192px by 192px.

largeLandscapeLogoUrl

string

Large landscape image. The dimensions musst be 2208px by 1242px.

companyName

string

The name of the company that the App is associated with.

contactEmail

string

The contact email address to allow users to reach out regarding the App.

termsOfServiceUrl

string

The URL to the ToS (Terms of Service) for the App.

privacyUrl

string

The URL for the App's privacy policy.

sampleInvocation[]

string

Sample invocation phrase displayed as part of App description in the directory of all Apps. Only 5 values can be given.

introduction

string

Summary of what an App can do. Used for App introduction to the users. This should be a verb phrase that completes a sentence like "You can use this App to..."

testingInstructions

string

Free-form testing instructions for the App reviewer.

voiceName

string

The voice name to be used. Example values supported: male_1, male_2, female_1, female_2.

surfaceRequirements

object (SurfaceRequirements)

A set of requirements for the Google Assistant client surface that must be met for the App to be triggered.

SurfaceRequirements

Contains a set of requirements for the client surface that must be met for the Agent to be triggered. If any requirement listed here is not met, the agent will not be triggered.

JSON representation
{
  "minimumCapabilities": [
    {
      object (Capability)
    }
  ]
}
Fields
minimumCapabilities[]

object (Capability)

The minimum set of capabilities needed for the agent to function. If the surface is missing any of these, the agent will not be triggered.

Capability

Represents a requirement about the availability of a given capability

JSON representation
{
  "name": string
}
Fields
name

string

The name of the capability, e.g. actions.capability.AUDIO_OUTPUT

Type

A type that can be referenced within an Action. These can be custom types unique to the action or common types defined by Google and referenced within the action.

JSON representation
{
  "name": string,
  "entities": [
    {
      object (Entity)
    }
  ],
  "isUserDefined": boolean
}
Fields
name

string

name of the custom type, in the format of type.

entities[]

object (Entity)

List of entities for this type. Each includes a key and list of synonyms.

isUserDefined

boolean

Whether the entities are user-defined (different for every user).

Entity

Each Entity corresponds is unique for this type. The key should be unique and the list of synonyms are used for triggering.

JSON representation
{
  "key": string,
  "synonyms": [
    string
  ]
}
Fields
key

string

Unique key for this item.

synonyms[]

string

List of synonyms which can be used to refer to this item.