Class Button

  • Buttons are base classes for all buttons available in Google Workspace add-ons and Google Chat apps.

  • Buttons have methods to set various click actions, such as authorizing, composing emails, executing a function, opening a link, or displaying an overflow menu.

  • A button can only have one click action set at a time from thesetOpenLink,setOnClickAction,setOnClickOpenLinkAction,setAuthorizationAction, orsetComposeAction methods.

Button

A base class for all buttons.

Available for Google Workspace add-ons and Google Chat apps.

Methods

MethodReturn typeBrief description
setAuthorizationAction(action)ButtonSets an authorization action that opens a URL to the authorization flow when the object isclicked.
setComposeAction(action, composedEmailType)ButtonSets an action that composes a draft email when the object is clicked.
setOnClickAction(action)ButtonSets an action that executes when the object is clicked.
setOnClickOpenLinkAction(action)ButtonSets an action that opens a URL in a tab when the object is clicked.
setOpenLink(openLink)ButtonSets a URL to be opened when the object is clicked.
setOverflowMenu(menu)ButtonSets a pop-up menu to be opened when the object is clicked.

Detailed documentation

setAuthorizationAction(action)

Sets an authorization action that opens a URL to the authorization flow when the object isclicked. This opens the URL in a new window. When the user finishes the authorization flow andreturns to the application, the add-on reloads.

A UI object can only have one ofsetOpenLink(openLink),setOnClickAction(action),setOnClickOpenLinkAction(action),setAuthorizationAction(action), orsetComposeAction(action, composedEmailType) set.

// ...constaction=CardService.newAuthorizationAction().setAuthorizationUrl('url');CardService.newTextButton().setText('Authorize').setAuthorizationAction(action);

Parameters

NameTypeDescription
actionAuthorizationActionThe object that specifies the authorization action to take when this element is clicked.

Return

Button — This object, for chaining.


setComposeAction(action, composedEmailType)

Sets an action that composes a draft email when the object is clicked. A UI object can onlyhave one ofsetOpenLink(openLink),setOnClickAction(action),setOnClickOpenLinkAction(action),setAuthorizationAction(action), orsetComposeAction(action, composedEmailType) set.

TheAction parameter must specify a callback function that returns aComposeActionResponse object configured usingComposeActionResponseBuilder.setGmailDraft(draft).

Note: This method doesn't set acompose action that isused toextend the compose UI.Rather, this method connects this UI element to anAction thatcomposes draft messages in Apps Script that areopened in Gmail when the action completes.

// ...constaction=CardService.newAction().setFunctionName('composeEmailCallback');CardService.newTextButton().setText('Compose Email').setComposeAction(action,CardService.ComposedEmailType.REPLY_AS_DRAFT);// ...functioncomposeEmailCallback(e){constthread=GmailApp.getThreadById(e.threadId);constdraft=thread.createDraftReply('This is a reply');returnCardService.newComposeActionResponseBuilder().setGmailDraft(draft).build();}

Parameters

NameTypeDescription
actionActionThe object that specifies the compose action to take when this element is clicked.
composedEmailTypeComposedEmailTypeAn enum value that specifies whether the composed draft is a standalone or reply draft.

Return

Button — This object, for chaining.


setOnClickAction(action)

Sets an action that executes when the object is clicked. A UI object can only have one ofsetOpenLink(openLink),setOnClickAction(action),setOnClickOpenLinkAction(action),setAuthorizationAction(action), orsetComposeAction(action, composedEmailType) set.

TheAction parameter must specify a callback function that returns aActionResponse object.

// ...constaction=CardService.newAction().setFunctionName('notificationCallback');CardService.newTextButton().setText('Create notification').setOnClickAction(action);// ...functionnotificationCallback(){returnCardService.newActionResponseBuilder().setNotification(CardService.newNotification().setText('Some info to display to user'),).build();}

Parameters

NameTypeDescription
actionActionThe action to take when this element is clicked.

Return

Button — This object, for chaining.


setOnClickOpenLinkAction(action)

Sets an action that opens a URL in a tab when the object is clicked. Use this function when theURL needs to be built or when you need to take other actions in addition to creating theOpenLink object. A UI object can only have one ofsetOpenLink(openLink),setOnClickAction(action),setOnClickOpenLinkAction(action),setAuthorizationAction(action), orsetComposeAction(action, composedEmailType) set.

TheAction parameter must specify a callback function that returns aActionResponse object configured usingActionResponseBuilder.setOpenLink(openLink).

// ...constaction=CardService.newAction().setFunctionName('openLinkCallback');CardService.newTextButton().setText('Open Link').setOnClickOpenLinkAction(action);// ...functionopenLinkCallback(){returnCardService.newActionResponseBuilder().setOpenLink(CardService.newOpenLink().setUrl('https://www.google.com')).build();}

Parameters

NameTypeDescription
actionActionThe object that specifies the open link action to take when this element is clicked.

Return

Button — This object, for chaining.


setOpenLink(openLink)

Sets a URL to be opened when the object is clicked. Use this function when the URL is alreadyknown and only needs to be opened. A UI object can only have one ofsetOpenLink(openLink),setOnClickAction(action),setOnClickOpenLinkAction(action),setAuthorizationAction(action),orsetComposeAction(action, composedEmailType) set.

Parameters

NameTypeDescription
openLinkOpenLinkAnOpenLink object describing the URL to open.

Return

Button — This object, for chaining.


setOverflowMenu(menu)

Sets a pop-up menu to be opened when the object is clicked. Each item in the menu can specifyan action to be triggered when clicked. Nested menus are not supported, actions for menu itemsshould not specify an overflow menu.

Available for Google Chat apps. In developer preview for Google Workspace add-ons.

Developer Preview: Available as part of theGoogle Workspace Developer Preview Program, which grants early access to certain features.

constoverflowMenuItem=CardService.newOverflowMenuItem().setStartIcon(CardService.newIconImage().setIconUrl('https://www.google.com/images/branding/googleg/1x/googleg_standard_color_64dp.png',),).setText('Open Link').setOpenLink(CardService.newOpenLink().setUrl('https://www.google.com'));constoverflowMenu=CardService.newOverflowMenu().addMenuItem(overflowMenuItem).build();

Parameters

NameTypeDescription
menuOverflowMenuThe object that specifies the overflow menu to display when this element is clicked.

Return

Button — This object, for chaining.

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-03 UTC.