- Resource: ChannelConfig
- JSON representation
- OperationsConfig
- UpsellStrategy
- UpsellConfig
- GreetingOffer
- OfferMessage
- MessageConfig
- ClosingOffer
- ClosingMessage
- CelUpsell
- SuggestedModifierGroup
- Greetings
- FeaturesConfig
- OrderPickup
- OrderDineIn
- NameCollection
- InteractionMode
- DisambiguationStrategy
- DisambiguationMapping
- Type
- TargetItem
- TargetModifier
- State
- Type
- SupplementalInstructions
- Tone
- Methods
Resource: ChannelConfig
A channel configuration represents an operational strategy configuration. Channel configuration lifecycle: * DRAFT: A configuration is in a draft state when it has no associated config application rules and is not set as the default configuration for the brand. * ACTIVE: A configuration is in an active state when it is either associated with any config application rule or set as the brand's default. * When active, the runtime applies the channel configuration to matching stores. To ensure flexibility, the relationship between channel configuration and config application rule is one-to-many on each resource level: * On the brand level, there is a one-to-many relationship between channel configurations and config application rules. * On the store level, there is another one-to-many relationship between channel configurations and config application rules. When multiple channel configurations are applicable, the runtime determines the configuration to apply based on the following precedence order (latter overwrites former in case of conflict): 1. Brand-level default 2. Brand-level binding 3. Store-level default 4. Store-level binding
| JSON representation |
|---|
{ "name": string, "displayName": string, "createTime": string, "updateTime": string, "operationsConfig": { object ( |
| Fields | |
|---|---|
name |
Identifier. The channel configuration name. Format: projects/{project}/locations/{location}/brands/{brand}/channelConfigs/{channelConfig} |
displayName |
Optional. Optional display name for this channel configuration for user interfaces. Value is limited to 63 characters. |
createTime |
Output only. The time this channel configuration was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. The time this channel configuration was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
operationsConfig |
Optional. The operational strategy for the channel configuration. |
state |
Output only. The status of the channel configuration. |
type |
Required. The type of the channel configuration. |
supplementalInstructions |
Optional. Supplemental instructions for the channel configuration. |
tone |
Optional. The tone of the agent. |
configApplicationRules[] |
Output only. The config application rules associated with this channel configuration. |
OperationsConfig
Configurations for defining an operational strategy.
| JSON representation |
|---|
{ "displayName": string, "description": string, "upsellStrategy": { object ( |
| Fields | |
|---|---|
displayName |
Optional. The name of this operational strategy. |
description |
Optional. A description of this operational strategy. |
upsellStrategy |
Optional. Configuration for upsell behavior. |
greetings[] |
Optional. Customized greeting messages to use (per language). |
defaultLanguageCode |
Optional. Default language to use for serving customers. |
featuresConfig |
Optional. Agent features configuration. |
interactionMode |
Optional. The interaction mode of the agent. |
disambiguationStrategy |
Optional. Strategy configuration for Disambiguation Control. |
UpsellStrategy
Defines the strategy for upselling.
| JSON representation |
|---|
{
"maxUpsellOffers": integer,
"maxUpsellDeclines": integer,
"maxItemsInCart": integer,
"upsells": [
{
object ( |
| Fields | |
|---|---|
maxUpsellOffers |
Optional. The maximum number of upsell offers to present per session. |
maxUpsellDeclines |
Optional. The maximum number of times a customer can decline an upsell before further upsells are skipped for the current session. |
maxItemsInCart |
Optional. The maximum number of items allowed in the cart before further upsells are skipped for the current session. |
upsells[] |
Optional. The configured upsells. |
cateringGuidelines |
Optional. Represents a set of text representing the offline-generated serving calculations and group ordering rules for this menu. Read by the conversational LLM. |
UpsellConfig
Defines the configuration for an upsell instance.
| JSON representation |
|---|
{ "displayName": string, "priority": integer, "skipOnMultiQuantityUpsoldFromItem": boolean, "skipOnPreviousTurnUpsell": boolean, "disabled": boolean, // Union field |
| Fields | |
|---|---|
displayName |
Optional. Name for the upsell. Is used for UI display, as well as metrics aggregation and analytics. |
priority |
Required. Number representing the priority ordering of the upsell configuration relative to all other UpsellConfigs within a given UpsellStrategy. Higher priority UpsellConfigs will have their upsell attempted before lower priority ones.
|
skipOnMultiQuantityUpsoldFromItem |
Optional. Whether to skip this upsell if the item to upsell from has a quantity > 1. This configuration only applies to the relevant upsell types: - Item to combo - Combo up size - Modifier addition - Combo drink - Item up size - Combo variant - Item triggered |
skipOnPreviousTurnUpsell |
Optional. Whether to skip this upsell if the prior conversational turn was an upsell. |
disabled |
Optional. Indicates whether the upsell type is disabled. If true, the upsell will not be attempted. This configuration is useful for disabling an upsell type as part of a config application rule override. |
Union field upsell_type_config. The type-specific configuration of the upsell. upsell_type_config can be only one of the following: |
|
greetingOffer |
Upsell specific items as part of the agent welcome message. |
closingOffer |
Upsell specific items after a customer has completed their order. |
celUpsell |
Dynamically evaluated upsell rule based on Common Expression Language (CEL). |
GreetingOffer
Upsell specific items as part of the agent welcome message.
| JSON representation |
|---|
{
"messages": [
{
object ( |
| Fields | |
|---|---|
messages[] |
Required. Greeting upsell messages to be used. |
OfferMessage
Common configuration for greeting and closing offer messages.
| JSON representation |
|---|
{
"displayName": string,
"messageFrequency": number,
"upsoldItems": [
string
],
"messageConfigs": [
{
object ( |
| Fields | |
|---|---|
displayName |
Optional. Name to use for display and analytics. |
messageFrequency |
Optional. Fraction of the time to use this message. Ex: a messageFrequency of 0.2 means this message will be used for 20% of sessions. If all messageFrequency values are unset (0.0), each message will be used for 1/n proportion of sessions, where n is the number of OfferMessages configured for the offer type. If only some messageFrequency values are set, OfferMessages with unset messageFrequency values will not be used. |
upsoldItems[] |
Optional. Names of the items being upsold in this message. Set this OR upsoldItemIds, but not both. |
messageConfigs[] |
Required. Per-language upsell messages. |
upsoldItemIds[] |
Optional. IDs of the items being upsold in this message. Set this OR upsoldItems, but not both. |
MessageConfig
Language-specific message to use for an upsell.
| JSON representation |
|---|
{ "languageCode": string, "messageText": string } |
| Fields | |
|---|---|
languageCode |
Required. Code of the language to use for this message. BCP-47 language code, such as "en-US" or "fr-CA". |
messageText |
Required. Language-specific message text. |
ClosingOffer
Upsell specific items after a customer has completed their order.
| JSON representation |
|---|
{
"closingMessages": [
{
object ( |
| Fields | |
|---|---|
closingMessages[] |
Required. Closing offer upsells to apply. |
ClosingMessage
Closing upsell message configuration.
| JSON representation |
|---|
{
"offerMessage": {
object ( |
| Fields | |
|---|---|
offerMessage |
Required. Offer message configuration. |
skipTerms[] |
Optional. This upsell will be skipped if any of these terms are present in the name of an item already in the customer's order. |
CelUpsell
Represents a pre-computed rule that defines under what contextual conditions a set of items should be proactively upsold to the user.
| JSON representation |
|---|
{
"conditionExpression": string,
"suggestedMenuItems": [
string
],
"triggerReason": string,
"priority": integer,
"suggestedModifiers": [
string
],
"suggestedModifierGroups": [
{
object ( |
| Fields | |
|---|---|
conditionExpression |
Required. A CEL (Common Expression Language) string evaluated against the current session state ( |
suggestedMenuItems[] |
Required. The semantic names of the items to suggest if this rule triggers. |
triggerReason |
Optional. A natural language instruction provided to the conversational LLM explaining why this upsell is being made, so it can formulate a natural upsell. Example: |
priority |
Optional. The |
suggestedModifiers[] |
Optional. The semantic names of the modifiers to suggest if this rule triggers. |
suggestedModifierGroups[] |
Optional. The modifier groups to suggest if this rule triggers. |
maxModifierPerGroup |
Optional. Max number of modifiers to suggest per group. |
suggestionOnly |
Optional. Not real upsell, but just to show the suggested options to user. |
SuggestedModifierGroup
A suggested modifier group.
| JSON representation |
|---|
{ "name": string, "suggestedModifiers": [ string ] } |
| Fields | |
|---|---|
name |
Optional. The semantic name of the modifier group. |
suggestedModifiers[] |
Optional. The semantic names of the modifiers to suggest within this group. |
Greetings
Represents greeting messages for a specific language.
| JSON representation |
|---|
{ "languageCode": string, "greetingPhrases": [ string ] } |
| Fields | |
|---|---|
languageCode |
Optional. The language code of the greeting phrases. BCP-47 language code, such as "en-US" or "fr-CA". |
greetingPhrases[] |
Optional. A list of greeting phrases in the specified language. |
FeaturesConfig
Configurations for agent features. Feature flag list that is used to generate agent's custom instructions and tools.
| JSON representation |
|---|
{ "orderPickup": { object ( |
| Fields | |
|---|---|
orderPickup |
Optional. Order pickup feature configuration. |
orderDineIn |
Optional. Order Dine-in feature configuration. |
nameCollection |
Optional. Name collection feature configuration. |
OrderPickup
This type has no fields.
Allows customer to order food via agent for pickup.
OrderDineIn
This type has no fields.
Allows customer to order food via agent for dine in
NameCollection
This type has no fields.
Enables agent to collect customer name during session.
InteractionMode
The interaction mode of the agent.
| Enums | |
|---|---|
INTERACTION_MODE_UNSPECIFIED |
Interaction mode is unspecified. |
ORDER_TAKING |
The agent participates in a two-way conversation to take orders. |
LISTEN_ONLY |
The agent only listens and does not speak. |
DisambiguationStrategy
Strategy configuration for Disambiguation Control.
| JSON representation |
|---|
{
"mappings": [
{
object ( |
| Fields | |
|---|---|
mappings[] |
Optional. The configured disambiguation mappings. |
DisambiguationMapping
A mapping rule to correct invalid terms or clarify ambiguous items.
| JSON representation |
|---|
{ "type": enum ( |
| Fields | |
|---|---|
type |
Required. The operational type of the disambiguation rule. |
customerTerms[] |
Required. Customer utterances or shortcut strings. Each customer term is limited to 100 characters. |
targets[] |
Required. Fully structured target menu items to suggest or clarify, including nested modifiers. |
customInstruction |
Optional. Optional custom conditional macro instructions or phrasing hints. |
Type
The operational type of the disambiguation rule.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Unspecified rule type. |
SINGLE_TARGET |
Used for single-target mappings (shortcuts, custom combo configurations, or valid synonyms). |
INVALID_ITEM |
Used for invalid items, out-of-stock items, or competitor products. |
DISAMBIGUATION |
Used for ambiguous inputs requiring clarification among multiple valid target options. |
TargetItem
A structured item alternative target.
| JSON representation |
|---|
{
"itemName": string,
"modifiers": [
{
object ( |
| Fields | |
|---|---|
itemName |
Required. The item name in the menu catalog. |
modifiers[] |
Optional. Structured modifiers to attach to this target. |
itemId |
Optional. The unique ID of the item in the menu catalog (linking directly to menu.proto). |
TargetModifier
A structured modifier to apply to the target item.
| JSON representation |
|---|
{ "modifierName": string, "modifierGroupName": string, "modifierId": string, "modifierGroupId": string } |
| Fields | |
|---|---|
modifierName |
Required. The modifier name matching the catalog entry directly. |
modifierGroupName |
Optional. Optional modifier group name to bind the modifier. |
modifierId |
Optional. The unique ID of the modifier in the menu catalog (linking directly to menu.proto). |
modifierGroupId |
Optional. The unique ID of the modifier group in the menu catalog. |
State
Status of the channel configuration.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Status is unspecified. |
DRAFT |
The channel configuration is a draft and not yet ready for use. |
ACTIVE |
The channel configuration is active and can be used. |
PROMOTED |
The channel configuration is promoted. |
Type
The type of the channel configuration.
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
Type is unspecified. |
UPSELL_STRATEGY |
The channel configuration is for upsell strategy. |
AGENT_CUSTOMIZATION |
The channel configuration is for agent customization. |
SupplementalInstructions
Configurations for supplemental instructions.
| JSON representation |
|---|
{ "freeformInstructions": string } |
| Fields | |
|---|---|
freeformInstructions |
Optional. Free-form instructions included in the prompt. |
Tone
The tone of the agent.
| Enums | |
|---|---|
TONE_UNSPECIFIED |
Tone is unspecified. |
CONCISE_AND_DIRECT |
The agent's tone is concise and direct. |
PROFESSIONAL_AND_FORMAL |
The agent's tone is professional and formal. |
FRIENDLY |
The agent's tone is friendly. |
Methods |
|
|---|---|
|
Creates a ChannelConfig. |
|
Deletes the specified ChannelConfig. |
|
Gets a ChannelConfig. |
|
Lists ChannelConfigs. |
|
Updates the specified ChannelConfig. |
|
Promotes the specified channel config. |