REST Resource: projects.locations.brands.channelConfigs

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 (OperationsConfig)
  },
  "state": enum (State),
  "type": enum (Type),
  "supplementalInstructions": {
    object (SupplementalInstructions)
  },
  "tone": enum (Tone),
  "configApplicationRules": [
    {
      object (ConfigApplicationRule)
    }
  ]
}
Fields
name

string

Identifier. The channel configuration name. Format: projects/{project}/locations/{location}/brands/{brand}/channelConfigs/{channelConfig}

displayName

string

Optional. Optional display name for this channel configuration for user interfaces. Value is limited to 63 characters.

createTime

string (Timestamp format)

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

operationsConfig

object (OperationsConfig)

Optional. The operational strategy for the channel configuration.

state

enum (State)

Output only. The status of the channel configuration.

type

enum (Type)

Required. The type of the channel configuration.

supplementalInstructions

object (SupplementalInstructions)

Optional. Supplemental instructions for the channel configuration.

tone

enum (Tone)

Optional. The tone of the agent.

configApplicationRules[]

object (ConfigApplicationRule)

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 (UpsellStrategy)
  },
  "greetings": [
    {
      object (Greetings)
    }
  ],
  "defaultLanguageCode": string,
  "featuresConfig": {
    object (FeaturesConfig)
  },
  "interactionMode": enum (InteractionMode),
  "disambiguationStrategy": {
    object (DisambiguationStrategy)
  }
}
Fields
displayName

string

Optional. The name of this operational strategy.

description

string

Optional. A description of this operational strategy.

upsellStrategy

object (UpsellStrategy)

Optional. Configuration for upsell behavior.

greetings[]

object (Greetings)

Optional. Customized greeting messages to use (per language).

defaultLanguageCode

string

Optional. Default language to use for serving customers.

featuresConfig

object (FeaturesConfig)

Optional. Agent features configuration.

interactionMode

enum (InteractionMode)

Optional. The interaction mode of the agent.

disambiguationStrategy

object (DisambiguationStrategy)

Optional. Strategy configuration for Disambiguation Control.

UpsellStrategy

Defines the strategy for upselling.

JSON representation
{
  "maxUpsellOffers": integer,
  "maxUpsellDeclines": integer,
  "maxItemsInCart": integer,
  "upsells": [
    {
      object (UpsellConfig)
    }
  ],
  "cateringGuidelines": string
}
Fields
maxUpsellOffers

integer

Optional. The maximum number of upsell offers to present per session.

maxUpsellDeclines

integer

Optional. The maximum number of times a customer can decline an upsell before further upsells are skipped for the current session.

maxItemsInCart

integer

Optional. The maximum number of items allowed in the cart before further upsells are skipped for the current session.

upsells[]

object (UpsellConfig)

Optional. The configured upsells.

cateringGuidelines

string

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 upsell_type_config can be only one of the following:
  "greetingOffer": {
    object (GreetingOffer)
  },
  "closingOffer": {
    object (ClosingOffer)
  },
  "celUpsell": {
    object (CelUpsell)
  }
  // End of list of possible types for union field upsell_type_config.
}
Fields
displayName

string

Optional. Name for the upsell. Is used for UI display, as well as metrics aggregation and analytics.

priority

integer

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.

  • Values can be on the range [1, inf).
  • Lower values have higher priority. For example, an UpsellConfig with priority 1 in an UpsellStrategy will always be attempted first.
  • Within an UpsellStrategy, each UpsellConfig must have a uniquely-valued priority (ex: only one UpsellConfig can have a priority of 3).
  • Priority values don't necessarily have to be contiguous within an UpsellStrategy (ex: there can be UpsellConfigs with priority values: {1, 2, 5, 6, 9}). The precedence of upsell configurations is determined on a relative basis (from the previous example: 1 < 2 < 5 < 6 < 9).
skipOnMultiQuantityUpsoldFromItem

boolean

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

boolean

Optional. Whether to skip this upsell if the prior conversational turn was an upsell.

disabled

boolean

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

object (GreetingOffer)

Upsell specific items as part of the agent welcome message.

closingOffer

object (ClosingOffer)

Upsell specific items after a customer has completed their order.

celUpsell

object (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 (OfferMessage)
    }
  ]
}
Fields
messages[]

object (OfferMessage)

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 (MessageConfig)
    }
  ],
  "upsoldItemIds": [
    string
  ]
}
Fields
displayName

string

Optional. Name to use for display and analytics.

messageFrequency

number

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[]

string

Optional. Names of the items being upsold in this message. Set this OR upsoldItemIds, but not both.

messageConfigs[]

object (MessageConfig)

Required. Per-language upsell messages.

upsoldItemIds[]

string

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

string

Required. Code of the language to use for this message. BCP-47 language code, such as "en-US" or "fr-CA".

messageText

string

Required. Language-specific message text.

ClosingOffer

Upsell specific items after a customer has completed their order.

JSON representation
{
  "closingMessages": [
    {
      object (ClosingMessage)
    }
  ]
}
Fields
closingMessages[]

object (ClosingMessage)

Required. Closing offer upsells to apply.

ClosingMessage

Closing upsell message configuration.

JSON representation
{
  "offerMessage": {
    object (OfferMessage)
  },
  "skipTerms": [
    string
  ]
}
Fields
offerMessage

object (OfferMessage)

Required. Offer message configuration.

skipTerms[]

string

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 (SuggestedModifierGroup)
    }
  ],
  "maxModifierPerGroup": integer,
  "suggestionOnly": boolean
}
Fields
conditionExpression

string

Required. A CEL (Common Expression Language) string evaluated against the current session state (Order and ClientSessionMetadata). If it evaluates to True, the rule triggers. Example: "context.weather_condition == 'HOT' && order.items.size() > 0"

suggestedMenuItems[]

string

Required. The semantic names of the items to suggest if this rule triggers.

triggerReason

string

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: "Suggest a cold drink because it is a hot day."

priority

integer

Optional. The priority of this rule. Higher numbers mean higher priority. If multiple rules trigger, the highest priority rule's suggestions are favored. If omitted, the priority defaults to 0.

suggestedModifiers[]

string

Optional. The semantic names of the modifiers to suggest if this rule triggers.

suggestedModifierGroups[]

object (SuggestedModifierGroup)

Optional. The modifier groups to suggest if this rule triggers.

maxModifierPerGroup

integer

Optional. Max number of modifiers to suggest per group.

suggestionOnly

boolean

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

string

Optional. The semantic name of the modifier group.

suggestedModifiers[]

string

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

string

Optional. The language code of the greeting phrases. BCP-47 language code, such as "en-US" or "fr-CA".

greetingPhrases[]

string

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 (OrderPickup)
  },
  "orderDineIn": {
    object (OrderDineIn)
  },
  "nameCollection": {
    object (NameCollection)
  }
}
Fields
orderPickup

object (OrderPickup)

Optional. Order pickup feature configuration.

orderDineIn

object (OrderDineIn)

Optional. Order Dine-in feature configuration.

nameCollection

object (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 (DisambiguationMapping)
    }
  ]
}
Fields
mappings[]

object (DisambiguationMapping)

Optional. The configured disambiguation mappings.

DisambiguationMapping

A mapping rule to correct invalid terms or clarify ambiguous items.

JSON representation
{
  "type": enum (Type),
  "customerTerms": [
    string
  ],
  "targets": [
    {
      object (TargetItem)
    }
  ],
  "customInstruction": string
}
Fields
type

enum (Type)

Required. The operational type of the disambiguation rule.

customerTerms[]

string

Required. Customer utterances or shortcut strings. Each customer term is limited to 100 characters.

targets[]

object (TargetItem)

Required. Fully structured target menu items to suggest or clarify, including nested modifiers.

customInstruction

string

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 (TargetModifier)
    }
  ],
  "itemId": string
}
Fields
itemName

string

Required. The item name in the menu catalog.

modifiers[]

object (TargetModifier)

Optional. Structured modifiers to attach to this target.

itemId

string

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

string

Required. The modifier name matching the catalog entry directly.

modifierGroupName

string

Optional. Optional modifier group name to bind the modifier.

modifierId

string

Optional. The unique ID of the modifier in the menu catalog (linking directly to menu.proto).

modifierGroupId

string

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

string

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

create

Creates a ChannelConfig.

delete

Deletes the specified ChannelConfig.

get

Gets a ChannelConfig.

list

Lists ChannelConfigs.

patch

Updates the specified ChannelConfig.

promote

Promotes the specified channel config.