Stay organized with collections
Save and categorize content based on your preferences.
A query pattern defines an example phrase a user might say. The Assistant can
match user spoken phrases that are semantically similar using natural language
processing.
Query patterns can contain a literal string, conditionals, and arguments using
Schema.org types.
Literal string
A query pattern can contain a literal string.
Example: "Start the guess the number game."
Conditionals
Portions of a query pattern can be considered optional. To indicate conditional
query patterns, wrap the portion of the phrase in parenthesis and end it with
a question mark. The following example defines Start the as optional:
Example: "(Start the)? Guess the number game"
Arguments
A query pattern can collect a portion of the user's input through the use of
named arguments (this can also be considered variables). Arguments are
specified using the syntax: $Type:argument_name.
Example: "$org.schema.type.Number:number" describes a query pattern that
expects an input of a Schema.org number, and that the actual number the user
says will be captured in an argument named "number".
Schema.org types
Following is the list of supported Schema.org types used for query patterns:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-09-18 UTC."],[[["\u003cp\u003eQuery patterns use natural language processing to match user phrases with expected inputs for Actions.\u003c/p\u003e\n"],["\u003cp\u003ePatterns can include literal strings, optional phrases (using parentheses and a question mark), and arguments to capture user input.\u003c/p\u003e\n"],["\u003cp\u003eArguments utilize Schema.org types (e.g., \u003ccode\u003e$org.schema.type.Number\u003c/code\u003e) to specify the expected data type and capture values.\u003c/p\u003e\n"],["\u003cp\u003eCustom types can be defined for specific vocabulary using keys and synonyms to handle variations in user expressions.\u003c/p\u003e\n"]]],[],null,["A query pattern defines an example phrase a user might say. The Assistant can\nmatch user spoken phrases that are semantically similar using natural language\nprocessing.\n\nQuery patterns can contain a literal string, conditionals, and arguments using\n[Schema.org types](https://developers.google.com/voice-actions/custom/reference#argument_types).\n| **Note:** Query patterns are specified [in the trigger object of an Intent](/assistant/df-asdk/reference/action-package/rest/Shared.Types/Action#Intent).\n\nLiteral string\n\nA query pattern can contain a literal string.\n\nExample: `\"Start the guess the number game.\"`\n\nConditionals\n\nPortions of a query pattern can be considered optional. To indicate conditional\nquery patterns, wrap the portion of the phrase in parenthesis and end it with\na question mark. The following example defines `Start the` as optional:\n\nExample: `\"(Start the)? Guess the number game\"`\n\nArguments\n\nA query pattern can collect a portion of the user's input through the use of\nnamed arguments (this can also be considered variables). Arguments are\nspecified using the syntax: `$Type:argument_name`.\n\nExample: `\"$org.schema.type.Number:number\"` describes a query pattern that\nexpects an input of a Schema.org number, and that the actual number the user\nsays will be captured in an argument named \"number\".\n\nSchema.org types\n\nFollowing is the list of supported Schema.org types used for query patterns:\n| **Note:** Schema.org types correspond conceptually to the [schema.org vocabulary](http://www.schema.org), but the argument values retrieved have a different JSON schema than that defined by the official schema.org reference.\n\n| Type | Example Query Pattern | Example User Query |\n|---------------------------------------------------------------------|-----------------------------------------------------------------------------------------|--------------------------------------------------------|\n| [$org.schema.type.Date](http://schema.org/Date) | read my sms from $org.schema.type.Date:my_date on sms pro | *read my sms from april 1st on sms pro* |\n| [$org.schema.type.Number](http://schema.org/Number) | blink the flashlight $org.schema.type.Number:number times | *blink the flashlight five times* |\n| [$org.schema.type.Time](http://schema.org/Time) | read my sms from $org.schema.type.Time:my_time on sms pro | *read my sms from 5 pm on sms pro* |\n| [$org.schema.type.DayOfWeek](http://schema.org/DayOfWeek) | show me my meetings on$org.schema.type.DayOfWeek:day_of_week | *show me my meetings on Tuesday* |\n| [$org.schema.type.Color](http://schema.org/color) | turn on the $org.schema.type.Color:my_color strobe light | *turn on the red strobe light* |\n| [$org.schema.type.priceCurrency](http://schema.org/priceCurrency) | show conversion rate for $org.schema.type.priceCurrency:cur on currency app | *show conversion rate for yen on currency app* |\n| [$org.schema.type.Distance](http://schema.org/Distance) | show conversion chart for $org.schema.type.Distance:dist | *show conversion chart for kilometer* |\n| [$org.schema.type.Temperature](http://schema.org/QuantitativeValue) | set temperature to $org.schema.type.Number:num degrees$org.schema.type.Temperature:temp | *set temperature to 70 degrees fahrenheit* |\n| [$org.schema.type.Organization](http://schema.org/Organization) | watch $org.schema.type.Organization:organization highlights | *watch lakers highlights* |\n| | show me stock price for$org.schema.type.Organization:organization | *show me stock price for Google* |\n| [$org.schema.type.Person](http://schema.org/Person) | show top 10 $org.schema.type.Person:musician songs | *show top 10 bruno mars songs* |\n| | show me news about $org.schema.type.Person:person | *show me news about bill gates* |\n| [$org.schema.type.Place](http://schema.org/Place) | write review for $org.schema.type.Place:place | *write review for new york* |\n| | show traffic on $org.schema.type.Place:location | *show traffic on mountain view* |\n| [$org.schema.type.Product](http://schema.org/Product) | write review for $org.schema.type.Product:product | *write review for google glass* |\n| [$org.schema.type.Book](http://schema.org/Book) | read $org.schema.type.Book:my_book | *read great expectations* |\n| [$org.schema.type.Movie](http://schema.org/Movie) | play the $org.schema.type.Movie:my_movie movie | *review the casablanca movie* |\n| [$org.schema.type.TVSeries](http://schema.org/TVSeries) | play next episode of $org.schema.type.TVSeries:tv_series | *play next episode of friends* |\n| [$org.schema.type.servesCuisine](http://schema.org/servesCuisine) | show $org.schema.type.servesCuisine:my_cuisine restaurants | *show italian restaurants* |\n| [$org.schema.type.MusicAlbum](http://schema.org/MusicAlbum) | add $org.schema.type.MusicAlbum:album to my queue. | *add abbey road to my queue* |\n| [$org.schema.type.MusicRecording](http://schema.org/MusicRecording) | add $org.schema.type.MusicRecording:song to my favorites. | *add with or without you to my favorites.* |\n| $org.schema.type.YesNo | $org.schema.type.YesNo | *Yes* |\n| $org.schema.type.URL | Add $org.schema.type.URL | *Add google.com* |\n| $org.schema.type.Email | Add $org.schema.type.Email | *Add john@google.com* |\n| $org.schema.type.PhoneNumber | Add $org.schema.type.PhoneNumber | *Add (777) 777-7777* |\n| $org.schema.type.Text | What's that song where they say $org.schema.type.Text | *What's that song where they say you are my sunshine?* |\n\nCustom types\n\nThe `customTypes` object allows you to specify your own types. You can define\nthe `name` of a custom type and include the following fields in `items`:\n\n- `key`: The value of the custom type that corresponds to the strings in `synonyms`\n- `synonyms`: The possible ways that users may refer to `key`\n\nThe following example defines a custom type for the different ways a\nperson might say \"6am\". \n\n```text\n\"customTypes\": [\n {\n \"name\": \"$MorningOptions\",\n \"items\": [\n {\n \"key\": \"6am\",\n \"synonyms\": [\n \"6 am\",\n \"6 o clock\",\n \"oh six hundred\",\n \"6 in the morning\"\n ]\n }\n ]\n }\n ]\n```"]]