Stay organized with collections
Save and categorize content based on your preferences.
Action objects let you build interactive
behavior into Google Workspace add-ons. They define
what happens when a user interacts with a widget (for example, a button) in
the add-on UI.
An action is attached to a given widget using a
widget handler function,
which also defines the condition that triggers the action. When triggered, the
action executes a designated
callback function.
The callback function is passed an
event object that carries
information about the user's client-side interactions. You must implement the
callback function and have it return a specific response object.
For example, say you want a button that builds and displays a new card when
clicked. For this, you must create a new button widget and use the button widget
handler function
setOnClickAction(action)
to set a card-building Action. The
Action you define specifies an Apps Script
callback function that executes when the button is clicked. In this case, you
implement the callback function to build the card you want and return an
ActionResponse
object. The response object tells the add-on to display the card the callback
function built.
This page describes Gmail-specific widget actions you can include in your
add-on.
Gmail interactions
Google Workspace add-ons that extend Gmail can include
an additional Gmail-specific widget action to compose draft messages. This
action requires the associated action
callback function
to return a specialized response object:
To make use of these widget actions and response objects, the add-on must
include the
https://www.googleapis.com/auth/gmail.addons.current.action.composescope in its manifest.
Compose a message
A Google Workspace add-on that extends Gmail can
define a widget that, when interacted with, generates draft messages in Gmail
(either new messages or replies). To do this, you must associate the triggering
widget with a callback function that returns a
ComposeActionResponse
object. When the callback function finishes executing, Gmail uses this
response object to open and populate a draft compose window.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-18 UTC."],[[["\u003cp\u003e\u003ccode\u003eAction\u003c/code\u003e objects enable interactive behavior in Google Workspace add-ons by defining responses to user interactions with widgets.\u003c/p\u003e\n"],["\u003cp\u003eActions are linked to widgets via handler functions and trigger callback functions that process user interactions and return response objects to update the add-on UI.\u003c/p\u003e\n"],["\u003cp\u003eGmail add-ons have a specific action for composing draft messages, requiring a \u003ccode\u003eComposeActionResponse\u003c/code\u003e object from the callback function and a specific scope in the add-on's manifest.\u003c/p\u003e\n"],["\u003cp\u003eAdd-ons can generate draft messages in Gmail by associating a widget with a callback function that returns a \u003ccode\u003eComposeActionResponse\u003c/code\u003e object, which Gmail uses to populate a draft compose window.\u003c/p\u003e\n"]]],["`Action` objects in Google Workspace add-ons enable interactive behavior. An action, triggered by a widget interaction, executes a callback function. This function receives an event object with user interaction details and returns a response object. For instance, a button click can trigger a callback to build and display a new card. Gmail add-ons can use `ComposeActionResponse` to generate draft messages, triggered by widget interaction. The add-on must include the `https://www.googleapis.com/auth/gmail.addons.current.action.compose` scope for this.\n"],null,["[`Action`](/workspace/add-ons/concepts/actions) objects let you build interactive\nbehavior into Google Workspace add-ons. They define\nwhat happens when a user interacts with a widget (for example, a button) in\nthe add-on UI.\n\nAn action is attached to a given widget using a\n[widget handler function](/workspace/add-ons/concepts/actions#widget_handler_functions),\nwhich also defines the condition that triggers the action. When triggered, the\naction executes a designated\n[callback function](/workspace/add-ons/concepts/actions#callback_functions).\nThe callback function is passed an\n[event object](/workspace/add-ons/concepts/event-objects) that carries\ninformation about the user's client-side interactions. You must implement the\ncallback function and have it return a specific response object.\n\nFor example, say you want a button that builds and displays a new card when\nclicked. For this, you must create a new button widget and use the button widget\nhandler function\n[`setOnClickAction(action)`](/apps-script/reference/card-service/text-button#setOnClickAction(Action))\nto set a card-building [`Action`](/workspace/add-ons/concepts/actions). The\n[`Action`](/workspace/add-ons/concepts/actions) you define specifies an Apps Script\ncallback function that executes when the button is clicked. In this case, you\nimplement the callback function to build the card you want and return an\n[`ActionResponse`](/apps-script/reference/card-service/action-response)\nobject. The response object tells the add-on to display the card the callback\nfunction built.\n\nThis page describes Gmail-specific widget actions you can include in your\nadd-on.\n\nGmail interactions\n\nGoogle Workspace add-ons that extend Gmail can include\nan additional Gmail-specific widget action to compose draft messages. This\naction requires the associated action\n[callback function](/workspace/add-ons/concepts/actions#callback_functions)\nto return a specialized response object:\n\n| Action attempted | Callback function should return |\n|------------------------------------------------------------|----------------------------------------------------------------------------------------|\n| [Compose draft messages](/workspace/add-ons/gmail/compose) | [`ComposeActionResponse`](/apps-script/reference/card-service/compose-action-response) |\n\nTo make use of these widget actions and response objects, the add-on must\ninclude the\n`https://www.googleapis.com/auth/gmail.addons.current.action.compose`\n[scope](/workspace/add-ons/concepts/workspace-scopes#gmail_add-on_scopes) in its manifest.\n\nCompose a message\n\nA Google Workspace add-on that extends Gmail can\ndefine a widget that, when interacted with, generates draft messages in Gmail\n(either new messages or replies). To do this, you must associate the triggering\nwidget with a callback function that returns a\n[`ComposeActionResponse`](/apps-script/reference/card-service/compose-action-response)\nobject. When the callback function finishes executing, Gmail uses this\nresponse object to open and populate a draft compose window.\n\nFor more details and an example, see\n[Compose draft messages](/workspace/add-ons/gmail/compose).\n| **Note:** This behavior is distinct from [extending the compose window UI](/workspace/add-ons/gmail/extending-compose-ui). In that case the add-on is creating a contextual card interface alongside the compose window. Here, a draft is generated in response to a widget interaction."]]