Class FixedFooter
Stay organized with collections
Save and categorize content based on your preferences.
FixedFooter
The fixed footer shown at the bottom of a Card
.
Available for Google Workspace add-ons and Google Chat apps.
const fixedFooter = CardService.newFixedFooter().setPrimaryButton(
CardService.newTextButton().setText('help').setOpenLink(
CardService.newOpenLink().setUrl('http://www.google.com')),
);
Detailed documentation
Set the primary button in the fixed footer. The primary button must be a TextButtonStyle.FILLED
button. If the background color is unset for the primary button, the
button uses the primary color defined in the add-on manifest.
Parameters
Name | Type | Description |
button | TextButton | The button to add. |
Return
FixedFooter
— This object, for chaining.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-01-30 UTC.
[null,null,["Last updated 2025-01-30 UTC."],[[["\u003cp\u003eA FixedFooter is displayed at the bottom of a Card in Google Workspace Add-ons and Google Chat apps.\u003c/p\u003e\n"],["\u003cp\u003eIt can contain a primary button (required) and an optional secondary button for user interaction.\u003c/p\u003e\n"],["\u003cp\u003ePrimary buttons have a filled style while secondary buttons have an outlined style.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can customize button actions, such as opening a link, using the \u003ccode\u003esetPrimaryButton\u003c/code\u003e and \u003ccode\u003esetSecondaryButton\u003c/code\u003e methods.\u003c/p\u003e\n"]]],["The `FixedFooter` feature, available in Google Workspace add-ons and Google Chat apps, allows setting buttons at the bottom of a card. You can set a `primaryButton` using `setPrimaryButton()`, which requires a `TextButtonStyle.FILLED` button. Optionally, a `secondaryButton` can be added via `setSecondaryButton()`, using a `TextButtonStyle.OUTLINED` button. Setting a secondary button is only effective if a primary button is set first. Both methods return the `FixedFooter` object for chaining.\n"],null,["# Class FixedFooter\n\nFixedFooter\n\nThe fixed footer shown at the bottom of a [Card](/apps-script/reference/card-service/card).\n\nAvailable for Google Workspace add-ons and Google Chat apps.\n\n```javascript\nconst fixedFooter = CardService.newFixedFooter().setPrimaryButton(\n CardService.newTextButton().setText('help').setOpenLink(\n CardService.newOpenLink().setUrl('http://www.google.com')),\n);\n``` \n\n### Methods\n\n| Method | Return type | Brief description |\n|---------------------------------------------------------------|------------------|-----------------------------------------------|\n| [setPrimaryButton(button)](#setPrimaryButton(TextButton)) | [FixedFooter](#) | Set the primary button in the fixed footer. |\n| [setSecondaryButton(button)](#setSecondaryButton(TextButton)) | [FixedFooter](#) | Set the secondary button in the fixed footer. |\n\nDetailed documentation\n----------------------\n\n### `set``Primary``Button(button)`\n\nSet the primary button in the fixed footer. The primary button must be a [TextButtonStyle.FILLED](/apps-script/reference/card-service/text-button-style#FILLED) button. If the background color is unset for the primary button, the\nbutton uses the primary color defined in the add-on [manifest](/gmail/add-ons/concepts/manifests#manifest_structure_for_gmail_add-ons).\n\n#### Parameters\n\n| Name | Type | Description |\n|----------|---------------------------------------------------------------|--------------------|\n| `button` | [TextButton](/apps-script/reference/card-service/text-button) | The button to add. |\n\n#### Return\n\n\n[FixedFooter](#) --- This object, for chaining.\n\n*** ** * ** ***\n\n### `set``Secondary``Button(button)`\n\nSet the secondary button in the fixed footer. The secondary button must be a [TextButtonStyle.OUTLINED](/apps-script/reference/card-service/text-button-style#OUTLINED) button. This method does nothing if [setPrimaryButton(button)](#setPrimaryButton(TextButton)) isn't called to set the primary button.\n\n#### Parameters\n\n| Name | Type | Description |\n|----------|---------------------------------------------------------------|--------------------|\n| `button` | [TextButton](/apps-script/reference/card-service/text-button) | The button to add. |\n\n#### Return\n\n\n[FixedFooter](#) --- This object, for chaining."]]