AI-generated Key Takeaways
-  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 the setOpenLink,setOnClickAction,setOnClickOpenLinkAction,setAuthorizationAction, orsetComposeActionmethods.
A base class for all buttons.
Available for Google Workspace add-ons and Google Chat apps.
Methods
| Method | Return type | Brief description | 
|---|---|---|
|  Button 
 | Sets an authorization action that opens a URL to the authorization flow when the object is clicked. | |
|  Button 
 | Sets an action that composes a draft email when the object is clicked. | |
|  Button 
 | Sets an action that executes when the object is clicked. | |
|  Button 
 | Sets an action that opens a URL in a tab when the object is clicked. | |
|  Button 
 | Sets a URL to be opened when the object is clicked. | |
|  Button 
 | Sets a pop-up menu to be opened when the object is clicked. | 
Detailed documentation
 set  
 
 Sets an authorization action that opens a URL to the authorization flow when the object is clicked. This opens the URL in a new window. When the user finishes the authorization flow and returns to the application, the add-on reloads.
A UI object can only have one of  set  
,  set  
,  set  
,  set  
, or  set  
set.
// ... const action = CardService . newAuthorizationAction (). setAuthorizationUrl ( 'url' ); CardService . newTextButton (). setText ( 'Authorize' ). setAuthorizationAction ( action );
Parameters
| Name | Type | Description | 
|---|---|---|
| action |  Authorization  | The object that specifies the authorization action to take when this element is clicked. | 
Return
  Button 
 
— This object, for chaining.
 set  
 
 Sets an action that composes a draft email when the object is clicked. A UI object can only
have one of  set  
,  set  
,  set  
,  set  
, or  set  
set.
The  Action 
 
parameter must specify a callback function that returns a  Compose  
object configured using  Compose  
.
// ... const action = CardService . newAction (). setFunctionName ( 'composeEmailCallback' ); CardService . newTextButton () . setText ( 'Compose Email' ) . setComposeAction ( action , CardService . ComposedEmailType . REPLY_AS_DRAFT ); // ... function composeEmailCallback ( e ) { const thread = GmailApp . getThreadById ( e . threadId ); const draft = thread . createDraftReply ( 'This is a reply' ); return CardService . newComposeActionResponseBuilder () . setGmailDraft ( draft ) . build (); }
Parameters
| Name | Type | Description | 
|---|---|---|
| action |  Action 
 | The object that specifies the compose action to take when this element is clicked. | 
| composed  |  Composed  | An enum value that specifies whether the composed draft is a standalone or reply draft. | 
Return
  Button 
 
— This object, for chaining.
 set  
 
 Sets an action that executes when the object is clicked. A UI object can only have one of  set  
,  set  
,  set  
,  set  
, or  set  
set.
The  Action 
 
parameter must specify a callback function that returns a  Action  
object.
// ... const action = CardService . newAction (). setFunctionName ( 'notificationCallback' ); CardService . newTextButton () . setText ( 'Create notification' ) . setOnClickAction ( action ); // ... function notificationCallback () { return CardService . newActionResponseBuilder () . setNotification ( CardService . newNotification (). setText ( 'Some info to display to user' ), ) . build (); }
Parameters
| Name | Type | Description | 
|---|---|---|
| action |  Action 
 | The action to take when this element is clicked. | 
Return
  Button 
 
— This object, for chaining.
 set  
 
 Sets an action that opens a URL in a tab when the object is clicked. Use this function when the
URL needs to be built or when you need to take other actions in addition to creating the  Open  
object. A UI object can only have one of  set  
,  set  
,  set  
,  set  
, or  set  
set.
The  Action 
 
parameter must specify a callback function that returns a  Action  
object configured using  Action  
.
// ... const action = CardService . newAction (). setFunctionName ( 'openLinkCallback' ); CardService . newTextButton () . setText ( 'Open Link' ) . setOnClickOpenLinkAction ( action ); // ... function openLinkCallback () { return CardService . newActionResponseBuilder () . setOpenLink ( CardService . newOpenLink (). setUrl ( 'https://www.google.com' )) . build (); }
Parameters
| Name | Type | Description | 
|---|---|---|
| action |  Action 
 | The object that specifies the open link action to take when this element is clicked. | 
Return
  Button 
 
— This object, for chaining.
 set  
 
 Sets a URL to be opened when the object is clicked. Use this function when the URL is already
known and only needs to be opened. A UI object can only have one of  set  
,  set  
,  set  
,  set  
,
or  set  
set.
Parameters
| Name | Type | Description | 
|---|---|---|
| open  |  Open  | An  Open object describing the URL to open. | 
Return
  Button 
 
— This object, for chaining.
 set  
 
 Sets a pop-up menu to be opened when the object is clicked. Each item in the menu can specify an action to be triggered when clicked. Nested menus are not supported, actions for menu items should not specify an overflow menu.
Available for Google Chat apps. In developer preview for Google Workspace add-ons.
const overflowMenuItem = 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' )); const overflowMenu = CardService . newOverflowMenu (). addMenuItem ( overflowMenuItem ). build ();
Parameters
| Name | Type | Description | 
|---|---|---|
| menu |  Overflow  | The object that specifies the overflow menu to display when this element is clicked. | 
Return
  Button 
 
— This object, for chaining.

