Page Summary
-
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 ( |
| Fields | |
|---|---|
buttons[]
|
A list of buttons. Buttons is also
|
A
WidgetMarkup
can only have one of the following items. You can use multiple
WidgetMarkup
fields to display more items. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
|
|
textParagraph
|
Display a text paragraph in this widget. |
image
|
Display an image in this widget. |
keyValue
|
Display a key value item in this widget. |
| End of mutually exclusive fields. | |
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 |
|---|
{ "action": { object ( |
| Fields | |
|---|---|
| The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: | |
action
|
A form action is triggered by this
|
openLink
|
This
|
| End of mutually exclusive fields. | |
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 ( |
| Fields | |
|---|---|
topLabel
|
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
|
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
|
If the content should be multiline. |
bottomLabel
|
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
|
The
|
At least one of icons,
top_label
and
bottom_label
must be defined. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
|
|
icon
|
An enum value that's replaced by the Chat API with the corresponding icon image. |
iconUrl
|
The icon specified by a URL. |
| End of mutually exclusive fields. | |
A control widget. You can set either
button
or
switch_widget, but not both. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
|
|
button
|
A button that can be clicked to trigger an action. |
| End of mutually exclusive fields. | |
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 |
|---|
{ "textButton": { object ( |
| Fields | |
|---|---|
| The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: | |
textButton
|
A button with text and
|
imageButton
|
A button with image and
|
| End of mutually exclusive fields. | |
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 ( |
| Fields | |
|---|---|
onClick
|
The
|
name
|
The name of this
|
The icon can be specified by an
Icon
enum
or a URL. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
|
|
icon
|
The icon specified by an
|
iconUrl
|
The icon specified by a URL. |
| End of mutually exclusive fields. | |
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. |