Stay organized with collectionsSave and categorize content based on your preferences.
One-click actions allow users to perform operations directly from the inbox without having to leave Gmail. One-click actions are performed by declaring anHttpActionHandlerwith your service URL. For more details, refer toHandling Action Requests.
One-click actions in Gmail.
Use Cases
One Click actions currently supported in Gmail are:
You may add a one-click confirm button to emails requiring users to approve, confirm and acknowledge something. Once the user clicks on the button, an http request will be issued from Google to your service, recording the confirmation.ConfirmActioncan only be interacted withonce.
The following declaration adds aConfirmActionbutton to an email about an expense report:
JSON-LD
<scripttype="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","potentialAction":{"@type":"ConfirmAction","name":"Approve Expense","handler":{"@type":"HttpActionHandler","url":"https://myexpenses.com/approve?expenseId=abc123"}},"description":"Approval request for John's $10.13 expense for office supplies"}</script>
Microdata
<divitemscopeitemtype="http://schema.org/EmailMessage"><divitemprop="potentialAction"itemscopeitemtype="http://schema.org/ConfirmAction"><metaitemprop="name"content="Approve Expense"/><divitemprop="handler"itemscopeitemtype="http://schema.org/HttpActionHandler"><linkitemprop="url"href="https://myexpenses.com/approve?expenseId=abc123"/></div></div><metaitemprop="description"content="Approval request for John's $10.13 expense for office supplies"/>
</div>
Save Action
SaveActioncan be used to describe interactions like saving a coupon or adding songs to the listen queue.SaveActioncan only be interacted withonce.
The following declaration adds aSaveActionbutton to an email about an offer:
JSON-LD
<scripttype="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","potentialAction":{"@type":"SaveAction","name":"Save Offer","handler":{"@type":"HttpActionHandler","url":"https://offers-everywhere.com/save?offerId=xyz789"}},"description":"$5 meal at Joe's Diner"}</script>
Microdata
<divitemscopeitemtype="http://schema.org/EmailMessage"><divitemprop="potentialAction"itemscopeitemtype="http://schema.org/SaveAction"><metaitemprop="name"content="Save Offer"/><divitemprop="handler"itemscopeitemtype="http://schema.org/HttpActionHandler"><linkitemprop="url"href="https://offers-everywhere.com/save?offerId=xyz789"/></div></div><metaitemprop="description"content="$5 meal at Joe's Diner"/>
</div>
Test your markup
You can validate your markup using theEmail Markup Tester Tool. Paste in your markup code and click theValidatebutton to scan the content and receive a report on any errors present.
Specification
For properties available to these actions, refer to the documentation for the
specific typesConfirmActionandSaveAction.
[[["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-28 UTC."],[],[],null,["# One Click Actions\n\nOne-click actions allow users to perform operations directly from the inbox without having to leave Gmail. One-click actions are performed by declaring an `HttpActionHandler` with your service URL. For more details, refer to [Handling Action Requests](../actions/handling-action-requests).\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nOne-click actions in Gmail.\n\n\u003cbr /\u003e\n\nUse Cases\n---------\n\nOne Click actions currently supported in Gmail are:\n\n- [ConfirmAction](#confirm_action)\n- [SaveAction](#save_action)\n\n| **Note:** Before you start, make sure you understand how to [embed schemas in emails](/workspace/gmail/markup/embedding-schemas-in-emails) and you are familiar with [testing schemas](/workspace/gmail/markup/testing-your-schema).\n\nConfirm Action\n--------------\n\nYou may add a one-click confirm button to emails requiring users to approve, confirm and acknowledge something. Once the user clicks on the button, an http request will be issued from Google to your service, recording the confirmation. `ConfirmAction` can only be interacted with **once**.\n\nThe following declaration adds a `ConfirmAction` button to an email about an expense report: \n\n### JSON-LD\n\n \u003cscript type=\"application/ld+json\"\u003e\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"EmailMessage\",\n \"potentialAction\": {\n \"@type\": \"ConfirmAction\",\n \"name\": \"Approve Expense\",\n \"handler\": {\n \"@type\": \"HttpActionHandler\",\n \"url\": \"https://myexpenses.com/approve?expenseId=abc123\"\n }\n },\n \"description\": \"Approval request for John's $10.13 expense for office supplies\"\n }\n \u003c/script\u003e\n\n### Microdata\n\n \u003cdiv itemscope itemtype=\"http://schema.org/EmailMessage\"\u003e\n \u003cdiv itemprop=\"potentialAction\" itemscope itemtype=\"http://schema.org/ConfirmAction\"\u003e\n \u003cmeta itemprop=\"name\" content=\"Approve Expense\"/\u003e\n \u003cdiv itemprop=\"handler\" itemscope itemtype=\"http://schema.org/HttpActionHandler\"\u003e\n \u003clink itemprop=\"url\" href=\"https://myexpenses.com/approve?expenseId=abc123\"/\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003cmeta itemprop=\"description\" content=\"Approval request for John's $10.13 expense for office supplies\"/\u003e\n \u003c/div\u003e\n\nSave Action\n-----------\n\n`SaveAction` can be used to describe interactions like saving a coupon or adding songs to the listen queue. `SaveAction` can only be interacted with **once**.\n\nThe following declaration adds a `SaveAction` button to an email about an offer: \n\n### JSON-LD\n\n \u003cscript type=\"application/ld+json\"\u003e\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"EmailMessage\",\n \"potentialAction\": {\n \"@type\": \"SaveAction\",\n \"name\": \"Save Offer\",\n \"handler\": {\n \"@type\": \"HttpActionHandler\",\n \"url\": \"https://offers-everywhere.com/save?offerId=xyz789\"\n }\n },\n \"description\": \"$5 meal at Joe's Diner\"\n }\n \u003c/script\u003e\n\n### Microdata\n\n \u003cdiv itemscope itemtype=\"http://schema.org/EmailMessage\"\u003e\n \u003cdiv itemprop=\"potentialAction\" itemscope itemtype=\"http://schema.org/SaveAction\"\u003e\n \u003cmeta itemprop=\"name\" content=\"Save Offer\"/\u003e\n \u003cdiv itemprop=\"handler\" itemscope itemtype=\"http://schema.org/HttpActionHandler\"\u003e\n \u003clink itemprop=\"url\" href=\"https://offers-everywhere.com/save?offerId=xyz789\"/\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003cmeta itemprop=\"description\" content=\"$5 meal at Joe's Diner\"/\u003e\n \u003c/div\u003e\n\nTest your markup\n----------------\n\nYou can validate your markup using the [Email Markup Tester Tool](https://www.google.com/webmasters/markup-tester/). Paste in your markup code and click the **Validate** button to scan the content and receive a report on any errors present.\n\nSpecification\n-------------\n\nFor properties available to these actions, refer to the documentation for the\nspecific types [ConfirmAction](/workspace/gmail/markup/reference/types/ConfirmAction) and\n[SaveAction](/workspace/gmail/markup/reference/types/SaveAction).\n| **Note:** Some of the schemas used by Google are still going through the standardization process of [schema.org](http://schema.org), and therefore, may change in the future. [Learn More](/workspace/gmail/markup/reference/schema-org-proposals)."]]