AI-generated Key Takeaways
-  Cards v1 is deprecated; use Cards v2 instead for creating interactive UI elements within Google Chat. 
-  Cards are UI elements that can contain widgets like text, images, and buttons, arranged within sections and headers. 
-  Widgets display content and actions, including text paragraphs, images, key-value pairs, and buttons with associated functionalities. 
-  Cards support interactive elements like buttons that can trigger actions such as opening links or invoking Apps Script functions. 
-  Developers can leverage formatted text and image styles to enhance the visual presentation of information within cards. 
Card
A card is a UI element that can contain UI widgets such as text and images.
| JSON representation | 
|---|
| { "header" : { object ( | 
| Fields | |
|---|---|
| header |   The header of the card. A header usually contains a title and an image. | 
| sections[] |   Sections are separated by a line divider. | 
| cardActions[] |   The actions of this card. | 
| name |   Name of the card. | 
CardHeader
| JSON representation | 
|---|
|  { 
 "title" 
 : 
 string 
 , 
 "subtitle" 
 : 
 string 
 , 
 "imageStyle" 
 : 
 enum (  | 
| Fields | |
|---|---|
| title |   The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each takes up one line. If only the title is specified, it takes up both lines. | 
| subtitle |   The subtitle of the card header. | 
| imageStyle |   The image's type (for example, square border or circular border). | 
| imageUrl |   The URL of the image in the card header. | 
ImageStyle
| Enums | |
|---|---|
| IMAGE_STYLE_UNSPECIFIED | |
| IMAGE | Square border. | 
| AVATAR | Circular border. | 
Section
A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there's currently no need for layout properties (for example, float).
| JSON representation | 
|---|
|  { 
 "header" 
 : 
 string 
 , 
 "widgets" 
 : 
 [ 
 { 
 object (  | 
| Fields | |
|---|---|
| header |   The header of the section. Formatted text is supported. For more information about formatting text, see Formatting text in Google Chat apps and Formatting text in Google Workspace Add-ons . | 
| widgets[] |   A section must contain at least one widget. | 
WidgetMarkup
A widget is a UI element that presents text and images.
| JSON representation | 
|---|
| { "buttons" : [ { object ( | 
data 
. A WidgetMarkup 
can only have one of the following items. You can use multiple WidgetMarkup 
fields to display more items. data 
can be only one of the following:textParagraph 
 object (  
 TextParagraph 
 
)
Display a text paragraph in this widget.
image 
 object (  
 Image 
 
)
Display an image in this widget.
keyValue 
 object (  
 KeyValue 
 
)
Display a key value item in this widget.
TextParagraph
A paragraph of text. Formatted text supported. For more information about formatting text, see Formatting text in Google Chat apps and Formatting text in Google Workspace Add-ons .
| JSON representation | 
|---|
| { "text" : string } | 
| Fields | |
|---|---|
| text |   | 
Image
An image that's specified by a URL and can have an onclick 
action.
| JSON representation | 
|---|
|  { 
 "imageUrl" 
 : 
 string 
 , 
 "onClick" 
 : 
 { 
 object (  | 
| Fields | |
|---|---|
| imageUrl |   The URL of the image. | 
| onClick |   The  | 
| aspectRatio |   The aspect ratio of this image (width and height). This field lets you reserve the right height for the image while waiting for it to load. It's not meant to override the built-in aspect ratio of the image. If unset, the server fills it by prefetching the image. | 
OnClick
An onclick 
action (for example, open a link).
| JSON representation | 
|---|
| { // Union field | 
Union field data 
.
 data 
can be only one of the following:
action 
 object (  
 FormAction 
 
)
A form action is triggered by this onclick 
action if specified.
openLink 
 object (  
 OpenLink 
 
)
This onclick 
action triggers an open link action if specified.
FormAction
A form action describes the behavior when the form is submitted. For example, you can invoke Apps Script to handle the form.
| JSON representation | 
|---|
|  { 
 "actionMethodName" 
 : 
 string 
 , 
 "parameters" 
 : 
 [ 
 { 
 object (  | 
| Fields | |
|---|---|
| actionMethodName |   The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the Chat app as part of the card click event. You can use the same method name for several elements that trigger a common behavior. | 
| parameters[] |   List of action parameters. | 
ActionParameter
List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze one day, snooze next week. You might use action method = snooze() 
, passing the snooze type and snooze time in the list of string parameters.
| JSON representation | 
|---|
| { "key" : string , "value" : string } | 
| Fields | |
|---|---|
| key |   The name of the parameter for the action script. | 
| value |   The value of the parameter. | 
OpenLink
A link that opens a new window.
| JSON representation | 
|---|
| { "url" : string } | 
| Fields | |
|---|---|
| url |   The URL to open. | 
KeyValue
A UI element contains a key (label) and a value (content). This element can also contain some actions such as onclick 
button.
| JSON representation | 
|---|
| { "topLabel" : string , "content" : string , "contentMultiline" : boolean , "bottomLabel" : string , "onClick" : { object ( | 
topLabel 
 string 
The text of the top label. Formatted text supported. For more information about formatting text, see Formatting text in Google Chat apps and Formatting text in Google Workspace Add-ons .
content 
 string 
The text of the content. Formatted text supported and always required. For more information about formatting text, see Formatting text in Google Chat apps and Formatting text in Google Workspace Add-ons .
contentMultiline 
 boolean 
If the content should be multiline.
bottomLabel 
 string 
The text of the bottom label. Formatted text supported. For more information about formatting text, see Formatting text in Google Chat apps and Formatting text in Google Workspace Add-ons .
onClick 
 object (  
 OnClick 
 
)
The onclick 
action. Only the top label, bottom label, and content region are clickable.
icons 
. At least one of icons, top_label 
and bottom_label 
must be defined. icons 
can be only one of the following:icon 
 enum (  
 Icon 
 
)
An enum value that's replaced by the Chat API with the corresponding icon image.
iconUrl 
 string 
The icon specified by a URL.
control 
. A control widget. You can set either button 
or switch_widget 
, but not both. control 
can be only one of the following:Icon
The set of supported icons.
| Enums | |
|---|---|
| ICON_UNSPECIFIED | |
| AIRPLANE | |
| BOOKMARK | |
| BUS | |
| CAR | |
| CLOCK | |
| CONFIRMATION_NUMBER_ICON | |
| DOLLAR | |
| DESCRIPTION | |
| EMAIL | |
| EVENT_PERFORMER | |
| EVENT_SEAT | |
| FLIGHT_ARRIVAL | |
| FLIGHT_DEPARTURE | |
| HOTEL | |
| HOTEL_ROOM_TYPE | |
| INVITE | |
| MAP_PIN | |
| MEMBERSHIP | |
| MULTIPLE_PEOPLE | |
| OFFER | |
| PERSON | |
| PHONE | |
| RESTAURANT_ICON | |
| SHOPPING_CART | |
| STAR | |
| STORE | |
| TICKET | |
| TRAIN | |
| VIDEO_CAMERA | |
| VIDEO_PLAY | |
Button
A button. Can be a text button or an image button.
| JSON representation | 
|---|
| { // Union field | 
Union field type 
.
 type 
can be only one of the following:
TextButton
A button with text and onclick 
action.
| JSON representation | 
|---|
|  { 
 "text" 
 : 
 string 
 , 
 "onClick" 
 : 
 { 
 object (  | 
| Fields | |
|---|---|
| text |   The text of the button. | 
| onClick |   The  | 
ImageButton
An image button with an onclick 
action.
| JSON representation | 
|---|
| { "onClick" : { object ( | 
onClick 
 object (  
 OnClick 
 
)
The onclick 
action.
name 
 string 
The name of this imageButton 
that's used for accessibility. Default value is provided if this name isn't specified.
icons 
. The icon can be specified by an Icon 
 enum 
or a URL. icons 
can be only one of the following:icon 
 enum (  
 Icon 
 
)
The icon specified by an enum 
that indices to an icon provided by Chat API.
iconUrl 
 string 
The icon specified by a URL.
CardAction
A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
Not supported by Google Chat apps.
| JSON representation | 
|---|
|  { 
 "actionLabel" 
 : 
 string 
 , 
 "onClick" 
 : 
 { 
 object (  | 
| Fields | |
|---|---|
| actionLabel |   The label used to be displayed in the action menu item. | 
| onClick |   The onclick action for this action item. | 

