# nodes

node_type: nodes-base.googleCalendarTrigger
package_name: n8n-nodes-base
display_name: Google Calendar Trigger
description: Starts the workflow when Google Calendar events occur
category: trigger
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "googleCalendarOAuth2Api",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-12-02 22:49:17
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Calendar Trigger node documentation
  description: Learn how to use the Google Calendar Trigger node in n8n. Follow technical documentation to integrate Google Calendar Trigger node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google Calendar Trigger node

  [Google Calendar](https://www.google.com/calendar/){:target=_blank .external-link} is a time-management and scheduling calendar service developed by Google.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/google/index.md).
  ///

  ///  note  | Examples and templates
  For usage examples and templates to help you get started, refer to n8n's [Google Calendar Trigger integrations](https://n8n.io/integrations/google-calendar-trigger/){:target=_blank .external-link} page.
  ///

  ## Events

  - **Event Cancelled**
  - **Event Created**
  - **Event Ended**
  - **Event Started**
  - **Event Updated**

  [[ templatesWidget(page.title, 'google-calendar-trigger') ]]

  ## Related resources

  n8n provides an app node for Google Calendar. You can find the node docs [here](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/index.md).

  View [example workflows and related content](https://n8n.io/integrations/google-calendar-trigger/){:target=_blank .external-link} on n8n's website.

  Refer to [Google Calendar's documentation](https://developers.google.com/calendar/api/v3/reference){:target=_blank .external-link} for details about their API.

properties_schema:
  [
    {
      "displayName": "Calendar",
      "name": "calendarId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Google Calendar to operate on",
      "required": true,
      "modes": [
        {
          "displayName": "Calendar",
          "name": "list",
          "type": "list",
          "placeholder": "Select a Calendar...",
          "typeOptions": {
            "searchListMethod": "getCalendars",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*(?:[ \t]+)*$)",
                "errorMessage": "Not a valid Google Calendar ID"
              }
            }
          ],
          "extractValue": {
            "type": "regex",
            "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)"
          },
          "placeholder": "name@google.com"
        }
      ]
    },
    {
      "displayName": "Trigger On",
      "name": "triggerOn",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Event Cancelled",
          "value": "eventCancelled"
        },
        {
          "name": "Event Created",
          "value": "eventCreated"
        },
        {
          "name": "Event Ended",
          "value": "eventEnded"
        },
        {
          "name": "Event Started",
          "value": "eventStarted"
        },
        {
          "name": "Event Updated",
          "value": "eventUpdated"
        }
      ],
      "required": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Match Term",
          "name": "matchTerm",
          "type": "string",
          "default": "",
          "description": "Free text search terms to filter events that match these terms in any field, except for extended properties"
        }
      ]
    }
  ]


node_type: nodes-base.googleChat
package_name: n8n-nodes-base
display_name: Google Chat
description: Consume Google Chat API
category: input
development_style: programmatic
version: 1
outputs:
  [
  "main"
  ]

updated_at: 2025-12-02 22:49:17
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Chat node documentation
  description: Learn how to use the Google Chat node in n8n. Follow technical documentation to integrate Google Chat node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google Chat node

  Use the Google Chat node to automate work in Google Chat, and integrate Google Chat with other applications. n8n has built-in support for a wide range of Google Chat features, including getting membership and spaces, as well as creating and deleting messages. 

  On this page, you'll find a list of operations the Google Chat node supports and links to more resources.

  /// note | Credentials
  Refer to [Google credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  --8<-- "_snippets/integrations/builtin/app-nodes/ai-tools.md"

  ## Operations

  * Member
      * Get a membership
      * Get all memberships in a space
  * Message
      * Create a message
      * Delete a message
      * Get a message
  	* Send and Wait for Response
      * Update a message
  * Space
      * Get a space
      * Get all spaces the caller is a member of

  --8<-- "_snippets/integrations/builtin/send-and-wait-operation.md"

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-chat') ]]

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "serviceAccount",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "oAuth2"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ]
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Member",
          "value": "member"
        },
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "Space",
          "value": "space"
        }
      ],
      "required": true,
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get a membership",
          "action": "Get a member"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many memberships in a space",
          "action": "Get many members"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Member ID",
      "name": "memberId",
      "type": "string",
      "default": "",
      "description": "Member to be retrieved in the form \"spaces/*/members/*\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Space Name or ID",
      "name": "spaceId",
      "type": "options",
      "default": [],
      "description": "The name of the space for which to retrieve members, in the form \"spaces/*\". Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "getAll"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getSpaces"
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "maxValue": 1000
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a message",
          "action": "Create a message"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a message",
          "action": "Delete a message"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a message",
          "action": "Get a message"
        },
        {
          "name": "Send and Wait for Response",
          "value": "sendAndWait",
          "description": "Send a message and wait for response",
          "action": "Send message and wait for response"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a message",
          "action": "Update a message"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Space Name or ID",
      "name": "spaceId",
      "type": "options",
      "default": "",
      "description": "Space resource name, in the form \"spaces/*\". Example: spaces/AAAAMpdlehY. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getSpaces"
      }
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "description": "Whether to pass the message object as JSON",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Message",
      "name": "messageUi",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Text",
          "name": "text",
          "type": "string",
          "default": ""
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            false
          ]
        }
      }
    },
    {
      "displayName": "See <a href=\"https://developers.google.com/chat/reference/rest/v1/spaces.messages#Message\" target=\"_blank\">Google Chat Guide</a> To Creating Messages",
      "name": "jsonNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Message (JSON)",
      "name": "messageJson",
      "type": "json",
      "default": "",
      "description": "Message input as JSON Object or JSON String",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Request ID",
          "name": "requestId",
          "type": "string",
          "default": "",
          "description": "A unique request ID for this message. If a message has already been created in the space with this request ID, the subsequent request will return the existing message and no new message will be created."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Resource name of the message to be deleted, in the form \"spaces//messages/\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Resource name of the message to be retrieved, in the form \"spaces//messages/\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Resource name of the message to be updated, in the form \"spaces//messages/\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "description": "Whether to pass the update fields object as JSON",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFieldsUi",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Text",
          "name": "text",
          "type": "string",
          "default": ""
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            false
          ]
        }
      }
    },
    {
      "displayName": "See <a href=\"https://developers.google.com/chat/reference/rest/v1/spaces.messages#Message\" target=\"_blank\">Google Chat Guide</a> To Creating Messages",
      "name": "jsonNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Update Fields (JSON)",
      "name": "updateFieldsJson",
      "type": "json",
      "default": "",
      "description": "Message input as JSON Object or JSON String",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get a space",
          "action": "Get a space"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many spaces the caller is a member of",
          "action": "Get many spaces"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Space ID",
      "name": "spaceId",
      "type": "string",
      "default": "",
      "description": "Resource name of the space, in the form \"spaces/*\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "maxValue": 1000
      }
    },
    {
      "displayName": "Space Name or ID",
      "name": "spaceId",
      "type": "options",
      "default": "",
      "description": "Space resource name, in the form \"spaces/*\". Example: spaces/AAAAMpdlehY. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getSpaces"
      }
    },
    {
      "displayName": "Message",
      "name": "message",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "rows": 4
      }
    },
    {
      "displayName": "Response Type",
      "name": "responseType",
      "type": "options",
      "default": "approval",
      "options": [
        {
          "name": "Approval",
          "value": "approval",
          "description": "User can approve/disapprove from within the message"
        },
        {
          "name": "Free Text",
          "value": "freeText",
          "description": "User can submit a response via a form"
        },
        {
          "name": "Custom Form",
          "value": "customForm",
          "description": "User can submit a response via a custom form"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Define Form",
      "name": "defineForm",
      "type": "options",
      "default": "fields",
      "options": [
        {
          "name": "Using Fields Below",
          "value": "fields"
        },
        {
          "name": "Using JSON",
          "value": "json"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Form Fields",
      "name": "jsonOutput",
      "type": "json",
      "default": "[\n  {\n    \"fieldLabel\": \"Name\",\n    \"placeholder\": \"enter your name\",\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Age\",\n    \"fieldType\": \"number\",\n    \"placeholder\": \"enter your age\"\n  },\n  {\n    \"fieldLabel\": \"Email\",\n    \"fieldType\": \"email\",\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Textarea\",\n    \"fieldType\": \"textarea\"\n  },\n  {\n    \"fieldLabel\": \"Dropdown Options\",\n    \"fieldType\": \"dropdown\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    },\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Checkboxes\",\n    \"fieldType\": \"checkbox\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    }\n  },\n  {\n    \"fieldLabel\": \"Radio\",\n    \"fieldType\": \"radio\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    }\n  },\n  {\n    \"fieldLabel\": \"Email\",\n    \"fieldType\": \"email\",\n    \"placeholder\": \"me@mail.con\"\n  },\n  {\n    \"fieldLabel\": \"File\",\n    \"fieldType\": \"file\",\n    \"multipleFiles\": true,\n    \"acceptFileTypes\": \".jpg, .png\"\n  },\n  {\n    \"fieldLabel\": \"Number\",\n    \"fieldType\": \"number\"\n  },\n  {\n    \"fieldLabel\": \"Password\",\n    \"fieldType\": \"password\"\n  }\n]\n",
      "displayOptions": {
        "show": {
          "defineForm": [
            "json"
          ],
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "rows": 5
      }
    },
    {
      "displayName": "Form Elements",
      "name": "formFields",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Field Name",
              "name": "fieldLabel",
              "type": "string",
              "default": "",
              "placeholder": "e.g. What is your name?",
              "description": "Label that appears above the input field",
              "required": true,
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "hiddenField",
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ]
                }
              }
            },
            {
              "displayName": "Element Type",
              "name": "fieldType",
              "type": "options",
              "default": "text",
              "description": "The type of field to add to the form",
              "options": [
                {
                  "name": "Checkboxes",
                  "value": "checkbox"
                },
                {
                  "name": "Custom HTML",
                  "value": "html"
                },
                {
                  "name": "Date",
                  "value": "date"
                },
                {
                  "name": "Dropdown",
                  "value": "dropdown"
                },
                {
                  "name": "Email",
                  "value": "email"
                },
                {
                  "name": "File",
                  "value": "file"
                },
                {
                  "name": "Hidden Field",
                  "value": "hiddenField"
                },
                {
                  "name": "Number",
                  "value": "number"
                },
                {
                  "name": "Password",
                  "value": "password"
                },
                {
                  "name": "Radio Buttons",
                  "value": "radio"
                },
                {
                  "name": "Text",
                  "value": "text"
                },
                {
                  "name": "Textarea",
                  "value": "textarea"
                }
              ],
              "required": true
            },
            {
              "displayName": "Element Name",
              "name": "elementName",
              "type": "string",
              "default": "",
              "placeholder": "e.g. content-section",
              "description": "Optional field. It can be used to include the html in the output.",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Placeholder",
              "name": "placeholder",
              "description": "Sample text to display inside the field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "dropdown",
                    "date",
                    "file",
                    "html",
                    "hiddenField",
                    "radio",
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-filled in the form field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "text",
                    "number",
                    "email",
                    "textarea"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default date value that will be pre-filled in the form field (format: YYYY-MM-DD)",
              "type": "dateTime",
              "typeOptions": {
                "dateOnly": true
              },
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-selected. Must match one of the option labels.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown",
                    "radio"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value(s) that will be pre-selected. Must match one or multiple of the option labels. Separate multiple pre-selected options with a comma.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Field Value",
              "name": "fieldValue",
              "description": "Input value can be set here or will be passed as a query parameter via Field Name if no value is set",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ]
                }
              }
            },
            {
              "displayName": "Field Options",
              "name": "fieldOptions",
              "placeholder": "Add Field Option",
              "description": "List of options that can be selected from the dropdown",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Option",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Checkboxes",
              "name": "fieldOptions",
              "placeholder": "Add Checkbox",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Checkbox Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Radio Buttons",
              "name": "fieldOptions",
              "placeholder": "Add Radio Button",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "radio"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Radio Button Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Multiple Choice is a legacy option, please use Checkboxes or Radio Buttons field type instead",
              "name": "multiselectLegacyNotice",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "multiselect": [
                    true
                  ],
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Choice",
              "name": "multiselect",
              "type": "boolean",
              "default": false,
              "description": "Whether to allow the user to select multiple options from the dropdown list",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Limit Selection",
              "name": "limitSelection",
              "type": "options",
              "default": "unlimited",
              "options": [
                {
                  "name": "Exact Number",
                  "value": "exact"
                },
                {
                  "name": "Range",
                  "value": "range"
                },
                {
                  "name": "Unlimited",
                  "value": "unlimited"
                }
              ],
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Number of Selections",
              "name": "numberOfSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "exact"
                  ]
                }
              }
            },
            {
              "displayName": "Minimum Selections",
              "name": "minSelections",
              "type": "number",
              "default": 0,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 0
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "Maximum Selections",
              "name": "maxSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "HTML",
              "name": "html",
              "typeOptions": {
                "editor": "htmlEditor"
              },
              "type": "string",
              "noDataExpression": true,
              "default": "<!-- Your custom HTML here --->\n\n\n",
              "description": "HTML elements to display on the form page",
              "hint": "Does not accept <code>&lt;script&gt;</code>, <code>&lt;style&gt;</code> or <code>&lt;input&gt;</code> tags",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Files",
              "name": "multipleFiles",
              "type": "boolean",
              "default": true,
              "description": "Whether to allow the user to select multiple files from the file input or just one",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "Accepted File Types",
              "name": "acceptFileTypes",
              "type": "string",
              "default": "",
              "description": "Comma-separated list of allowed file extensions",
              "hint": "Leave empty to allow all file types",
              "placeholder": "e.g. .jpg, .png",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "The displayed date is formatted based on the locale of the user's browser",
              "name": "formatDate",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Required Field",
              "name": "requiredField",
              "type": "boolean",
              "default": false,
              "description": "Whether to require the user to enter a value for this field before submitting the form",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html",
                    "hiddenField"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "defineForm": [
            "fields"
          ],
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "sortable": true
      }
    },
    {
      "displayName": "Approval Options",
      "name": "approvalOptions",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Type of Approval",
              "name": "approvalType",
              "type": "options",
              "placeholder": "Add option",
              "default": "single",
              "options": [
                {
                  "name": "Approve Only",
                  "value": "single"
                },
                {
                  "name": "Approve and Disapprove",
                  "value": "double"
                }
              ]
            },
            {
              "displayName": "Approve Button Label",
              "name": "approveLabel",
              "type": "string",
              "default": "✅ Approve",
              "displayOptions": {
                "show": {
                  "approvalType": [
                    "single",
                    "double"
                  ]
                }
              }
            },
            {
              "displayName": "Disapprove Button Label",
              "name": "disapproveLabel",
              "type": "string",
              "default": "❌ Decline",
              "displayOptions": {
                "show": {
                  "approvalType": [
                    "double"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "approval"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Limit Wait Time",
          "name": "limitWaitTime",
          "type": "fixedCollection",
          "description": "Whether the workflow will automatically resume execution after the specified limit type",
          "default": {
            "values": {
              "limitType": "afterTimeInterval",
              "resumeAmount": 45,
              "resumeUnit": "minutes"
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Limit Type",
                  "name": "limitType",
                  "type": "options",
                  "default": "afterTimeInterval",
                  "description": "Sets the condition for the execution to resume. Can be a specified date or after some time.",
                  "options": [
                    {
                      "name": "After Time Interval",
                      "description": "Waits for a certain amount of time",
                      "value": "afterTimeInterval"
                    },
                    {
                      "name": "At Specified Time",
                      "description": "Waits until the set date and time to continue",
                      "value": "atSpecifiedTime"
                    }
                  ]
                },
                {
                  "displayName": "Amount",
                  "name": "resumeAmount",
                  "type": "number",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "typeOptions": {
                    "minValue": 0,
                    "numberPrecision": 2
                  },
                  "default": 1,
                  "description": "The time to wait"
                },
                {
                  "displayName": "Unit",
                  "name": "resumeUnit",
                  "type": "options",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "options": [
                    {
                      "name": "Minutes",
                      "value": "minutes"
                    },
                    {
                      "name": "Hours",
                      "value": "hours"
                    },
                    {
                      "name": "Days",
                      "value": "days"
                    }
                  ],
                  "default": "hours",
                  "description": "Unit of the interval value"
                },
                {
                  "displayName": "Max Date and Time",
                  "name": "maxDateAndTime",
                  "type": "dateTime",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "atSpecifiedTime"
                      ]
                    }
                  },
                  "default": "",
                  "description": "Continue execution after the specified date and time"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Append n8n Attribution",
          "name": "appendAttribution",
          "type": "boolean",
          "default": true,
          "description": "Whether to include the phrase \"This message was sent automatically with n8n\" to the end of the message"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "approval"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Message Button Label",
          "name": "messageButtonLabel",
          "type": "string",
          "default": "Respond"
        },
        {
          "displayName": "Response Form Title",
          "name": "responseFormTitle",
          "description": "Title of the form that the user can access to provide their response",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Response Form Description",
          "name": "responseFormDescription",
          "description": "Description of the form that the user can access to provide their response",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Response Form Button Label",
          "name": "responseFormButtonLabel",
          "type": "string",
          "default": "Submit"
        },
        {
          "displayName": "Response Form Custom Styling",
          "name": "responseFormCustomCss",
          "type": "string",
          "typeOptions": {
            "rows": 10,
            "editor": "cssEditor"
          },
          "default": ":root {\n\t--font-family: 'Open Sans', sans-serif;\n\t--font-weight-normal: 400;\n\t--font-weight-bold: 600;\n\t--font-size-body: 12px;\n\t--font-size-label: 14px;\n\t--font-size-test-notice: 12px;\n\t--font-size-input: 14px;\n\t--font-size-header: 20px;\n\t--font-size-paragraph: 14px;\n\t--font-size-link: 12px;\n\t--font-size-error: 12px;\n\t--font-size-html-h1: 28px;\n\t--font-size-html-h2: 20px;\n\t--font-size-html-h3: 16px;\n\t--font-size-html-h4: 14px;\n\t--font-size-html-h5: 12px;\n\t--font-size-html-h6: 10px;\n\t--font-size-subheader: 14px;\n\n\t/* Colors */\n\t--color-background: #fbfcfe;\n\t--color-test-notice-text: #e6a23d;\n\t--color-test-notice-bg: #fefaf6;\n\t--color-test-notice-border: #f6dcb7;\n\t--color-card-bg: #ffffff;\n\t--color-card-border: #dbdfe7;\n\t--color-card-shadow: rgba(99, 77, 255, 0.06);\n\t--color-link: #7e8186;\n\t--color-header: #525356;\n\t--color-label: #555555;\n\t--color-input-border: #dbdfe7;\n\t--color-input-text: #71747A;\n\t--color-focus-border: rgb(90, 76, 194);\n\t--color-submit-btn-bg: #ff6d5a;\n\t--color-submit-btn-text: #ffffff;\n\t--color-error: #ea1f30;\n\t--color-required: #ff6d5a;\n\t--color-clear-button-bg: #7e8186;\n\t--color-html-text: #555;\n\t--color-html-link: #ff6d5a;\n\t--color-header-subtext: #7e8186;\n\n\t/* Border Radii */\n\t--border-radius-card: 8px;\n\t--border-radius-input: 6px;\n\t--border-radius-clear-btn: 50%;\n\t--card-border-radius: 8px;\n\n\t/* Spacing */\n\t--padding-container-top: 24px;\n\t--padding-card: 24px;\n\t--padding-test-notice-vertical: 12px;\n\t--padding-test-notice-horizontal: 24px;\n\t--margin-bottom-card: 16px;\n\t--padding-form-input: 12px;\n\t--card-padding: 24px;\n\t--card-margin-bottom: 16px;\n\n\t/* Dimensions */\n\t--container-width: 448px;\n\t--submit-btn-height: 48px;\n\t--checkbox-size: 18px;\n\n\t/* Others */\n\t--box-shadow-card: 0px 4px 16px 0px var(--color-card-shadow);\n\t--opacity-placeholder: 0.5;\n}",
          "description": "Override default styling of the response form with CSS"
        },
        {
          "displayName": "Limit Wait Time",
          "name": "limitWaitTime",
          "type": "fixedCollection",
          "description": "Whether the workflow will automatically resume execution after the specified limit type",
          "default": {
            "values": {
              "limitType": "afterTimeInterval",
              "resumeAmount": 45,
              "resumeUnit": "minutes"
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Limit Type",
                  "name": "limitType",
                  "type": "options",
                  "default": "afterTimeInterval",
                  "description": "Sets the condition for the execution to resume. Can be a specified date or after some time.",
                  "options": [
                    {
                      "name": "After Time Interval",
                      "description": "Waits for a certain amount of time",
                      "value": "afterTimeInterval"
                    },
                    {
                      "name": "At Specified Time",
                      "description": "Waits until the set date and time to continue",
                      "value": "atSpecifiedTime"
                    }
                  ]
                },
                {
                  "displayName": "Amount",
                  "name": "resumeAmount",
                  "type": "number",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "typeOptions": {
                    "minValue": 0,
                    "numberPrecision": 2
                  },
                  "default": 1,
                  "description": "The time to wait"
                },
                {
                  "displayName": "Unit",
                  "name": "resumeUnit",
                  "type": "options",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "options": [
                    {
                      "name": "Minutes",
                      "value": "minutes"
                    },
                    {
                      "name": "Hours",
                      "value": "hours"
                    },
                    {
                      "name": "Days",
                      "value": "days"
                    }
                  ],
                  "default": "hours",
                  "description": "Unit of the interval value"
                },
                {
                  "displayName": "Max Date and Time",
                  "name": "maxDateAndTime",
                  "type": "dateTime",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "atSpecifiedTime"
                      ]
                    }
                  },
                  "default": "",
                  "description": "Continue execution after the specified date and time"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Append n8n Attribution",
          "name": "appendAttribution",
          "type": "boolean",
          "default": true,
          "description": "Whether to include the phrase \"This message was sent automatically with n8n\" to the end of the message"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "freeText",
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a membership"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many memberships in a space"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "testedBy": "testGoogleTokenAuth",
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleChatOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleCloudNaturalLanguage
package_name: n8n-nodes-base
display_name: Google Cloud Natural Language
description: Consume Google Cloud Natural Language API
category: input
development_style: programmatic
version: 1
operations:
  [
  {
  "operation": "analyzeSentiment",
  "name": "Analyze Sentiment"
  }
  ]

credentials_required:
  [
  {
  "name": "googleCloudNaturalLanguageOAuth2Api",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-12-02 22:49:17
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Cloud Natural Language node documentation
  description: Learn how to use the Google Cloud Natural Language node in n8n. Follow technical documentation to integrate Google Cloud Natural Language node into your workflows.
  contentType: [integration, reference]
  ---

  # Google Cloud Natural Language node

  Use the Google Cloud Natural Language node to automate work in Google Cloud Natural Language, and integrate Google Cloud Natural Language with other applications. n8n has built-in support for a wide range of Google Cloud Natural Language features, including analyzing documents.

  On this page, you'll find a list of operations the Google Cloud Natural Language node supports and links to more resources.

  /// note | Credentials
  Refer to [Google Cloud Natural Language credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  ## Operations

  * Document
      * Analyze Sentiment

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-cloud-natural-language') ]]

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyzeSentiment",
      "options": [
        {
          "name": "Analyze Sentiment",
          "value": "analyzeSentiment",
          "action": "Analyze sentiment"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Source",
      "name": "source",
      "type": "options",
      "default": "content",
      "description": "The source of the document: a string containing the content or a Google Cloud Storage URI",
      "options": [
        {
          "name": "Content",
          "value": "content"
        },
        {
          "name": "Google Cloud Storage URI",
          "value": "gcsContentUri"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyzeSentiment"
          ]
        }
      }
    },
    {
      "displayName": "Content",
      "name": "content",
      "type": "string",
      "default": "",
      "description": "The content of the input in string format. Cloud audit logging exempt since it is based on user data.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyzeSentiment"
          ],
          "source": [
            "content"
          ]
        }
      }
    },
    {
      "displayName": "Google Cloud Storage URI",
      "name": "gcsContentUri",
      "type": "string",
      "default": "",
      "description": "The Google Cloud Storage URI where the file content is located. This URI must be of the form: <code>gs://bucket_name/object_name</code>. For more details, see <a href=\"https://cloud.google.com/storage/docs/reference-uris.\">reference</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyzeSentiment"
          ],
          "source": [
            "gcsContentUri"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Document Type",
          "name": "documentType",
          "type": "options",
          "options": [
            {
              "name": "HTML",
              "value": "HTML"
            },
            {
              "name": "Plain Text",
              "value": "PLAIN_TEXT"
            }
          ],
          "default": "PLAIN_TEXT",
          "description": "The type of input document"
        },
        {
          "displayName": "Encoding Type",
          "name": "encodingType",
          "type": "options",
          "options": [
            {
              "name": "None",
              "value": "NONE"
            },
            {
              "name": "UTF-8",
              "value": "UTF8"
            },
            {
              "name": "UTF-16",
              "value": "UTF16"
            },
            {
              "name": "UTF-32",
              "value": "UTF32"
            }
          ],
          "default": "UTF16",
          "description": "The encoding type used by the API to calculate sentence offsets"
        },
        {
          "displayName": "Language",
          "name": "language",
          "type": "options",
          "options": [
            {
              "name": "Arabic",
              "value": "ar"
            },
            {
              "name": "Chinese (Simplified)",
              "value": "zh"
            },
            {
              "name": "Chinese (Traditional)",
              "value": "zh-Hant"
            },
            {
              "name": "Dutch",
              "value": "nl"
            },
            {
              "name": "English",
              "value": "en"
            },
            {
              "name": "French",
              "value": "fr"
            },
            {
              "name": "German",
              "value": "de"
            },
            {
              "name": "Indonesian",
              "value": "id"
            },
            {
              "name": "Italian",
              "value": "it"
            },
            {
              "name": "Japanese",
              "value": "ja"
            },
            {
              "name": "Korean",
              "value": "ko"
            },
            {
              "name": "Portuguese (Brazilian & Continental)",
              "value": "pt"
            },
            {
              "name": "Spanish",
              "value": "es"
            },
            {
              "name": "Thai",
              "value": "th"
            },
            {
              "name": "Turkish",
              "value": "tr"
            },
            {
              "name": "Vietnamese",
              "value": "vi"
            }
          ],
          "default": "en",
          "placeholder": "",
          "description": "The language of the document (if not specified, the language is automatically detected). Both ISO and BCP-47 language codes are accepted."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyzeSentiment"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleCloudStorage
package_name: n8n-nodes-base
display_name: Google Cloud Storage
description: Use the Google Cloud Storage API
category: transform
development_style: programmatic
version: 1
outputs:
  [
  "main"
  ]

updated_at: 2025-12-02 22:49:17
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Cloud Storage node documentation
  description: Learn how to use the Google Cloud Storage node in n8n. Follow technical documentation to integrate Google Cloud Storage node into your workflows.
  contentType: [integration, reference]
  ---

  # Google Cloud Storage node

  Use the Google Cloud Storage node to automate work in Google Cloud Storage, and integrate Google Cloud Storage with other applications. n8n has built-in support for a wide range of Google Cloud Storage features, including creating, updating, deleting, and getting buckets and objects. 

  On this page, you'll find a list of operations the Google Cloud Storage node supports and links to more resources.

  /// note | Credentials
  Refer to [Google Cloud Storage credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  ## Operations

  * Bucket
  	* Create
  	* Delete
  	* Get
  	* Get Many
  	* Update
  * Object
  	* Create
  	* Delete
  	* Get
  	* Get Many
  	* Update

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-cloud-storage') ]]

  ## Related resources

  Refer to Google's [Cloud Storage API documentation](https://cloud.google.com/storage/docs/apis){:target=_blank .external-link} for detailed information about the API that this node integrates with.

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "bucket",
      "options": [
        {
          "name": "Bucket",
          "value": "bucket"
        },
        {
          "name": "Object",
          "value": "object"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a new Bucket",
          "routing": {
            "request": {
              "method": "POST",
              "url": "/b/",
              "qs": {},
              "body": {
                "name": "={{$parameter[\"bucketName\"]}}"
              },
              "returnFullResponse": true
            },
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "action": "Create a new Bucket"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete an empty Bucket",
          "routing": {
            "request": {
              "method": "DELETE",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"]}}",
              "returnFullResponse": true
            }
          },
          "action": "Delete an empty Bucket"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get metadata for a specific Bucket",
          "routing": {
            "request": {
              "method": "GET",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"]}}",
              "returnFullResponse": true,
              "qs": {}
            }
          },
          "action": "Get a Bucket"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get list of Buckets",
          "routing": {
            "request": {
              "method": "GET",
              "url": "/b/",
              "qs": {}
            },
            "send": {
              "paginate": true,
              "preSend": [
                null
              ]
            },
            "operations": {}
          },
          "action": "Get a list of Buckets for a given project"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update the metadata of a bucket",
          "routing": {
            "request": {
              "method": "PATCH",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"]}}",
              "qs": {
                "project": "={{$parameter[\"projectId\"]}}"
              },
              "body": {},
              "returnFullResponse": true
            },
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "action": "Update the metadata of a Bucket"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Project ID",
      "name": "projectId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "get",
            "update",
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Prefix",
      "name": "prefix",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Projection",
      "name": "projection",
      "type": "options",
      "default": "noAcl",
      "options": [
        {
          "name": "All Properties",
          "value": "full"
        },
        {
          "name": "No ACL",
          "value": "noAcl"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "get",
            "getAll",
            "update"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Filters",
      "name": "getFilters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Metageneration Match",
          "name": "ifMetagenerationMatch",
          "type": "number",
          "description": "Only return data if the metageneration value of the Bucket matches the sent value",
          "default": 0,
          "routing": {
            "request": {
              "qs": {
                "ifMetagenerationMatch": "={{$value}}"
              }
            }
          }
        },
        {
          "displayName": "Metageneration Exclude",
          "name": "ifMetagenerationNotMatch",
          "type": "number",
          "description": "Only return data if the metageneration value of the Bucket does not match the sent value",
          "default": 0,
          "routing": {
            "request": {
              "qs": {
                "ifMetagenerationNotMatch": "={{$value}}"
              }
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "delete",
            "get",
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Predefined Access Control",
      "name": "createAcl",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Predefined ACL",
          "name": "predefinedAcl",
          "type": "options",
          "default": "authenticatedRead",
          "placeholder": "Apply a predefined set of access controls to this bucket",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Project Private",
              "value": "projectPrivate"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            },
            {
              "name": "Public Read/Write",
              "value": "publicReadWrite"
            }
          ],
          "routing": {
            "request": {
              "qs": {
                "predefinedAcl": "={{$value}}"
              }
            }
          }
        },
        {
          "displayName": "Predefined Default Object ACL",
          "name": "predefinedDefaultObjectAcl",
          "type": "options",
          "default": "authenticatedRead",
          "placeholder": "Apply a predefined set of default object access controls to this bucket",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "Bucket Owner Full Control",
              "value": "bucketOwnerFullControl"
            },
            {
              "name": "Bucket Owner Read",
              "value": "bucketOwnerRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Project Private",
              "value": "projectPrivate"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            }
          ],
          "routing": {
            "request": {
              "qs": {
                "predefinedObjectAcl": "={{$value}}"
              }
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "update"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Additional Parameters",
      "name": "createBody",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Access Control",
          "name": "acl",
          "type": "json",
          "default": "[]",
          "placeholder": "Access controls on the Bucket"
        },
        {
          "displayName": "Billing",
          "name": "billing",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's billing configuration"
        },
        {
          "displayName": "CORS",
          "name": "cors",
          "type": "json",
          "default": "[]",
          "placeholder": "The bucket's Cross Origin Resource Sharing configuration"
        },
        {
          "displayName": "Custom Placement Config",
          "name": "customPlacementConfig",
          "type": "json",
          "default": "{}",
          "placeholder": "The configuration for the region(s) for the Bucket"
        },
        {
          "displayName": "Data Locations",
          "name": "dataLocations",
          "type": "json",
          "default": "[]",
          "placeholder": "The list of individual regions that comprise a dual-region Bucket"
        },
        {
          "displayName": "Default Event Based Hold",
          "name": "defaultEventBasedHold",
          "type": "boolean",
          "default": true,
          "placeholder": "Whether or not to automatically apply an event based hold to new objects"
        },
        {
          "displayName": "Default Object ACL",
          "name": "defaultObjectAcl",
          "type": "json",
          "default": "[]",
          "placeholder": "Default Access Controls for new objects when no ACL is provided"
        },
        {
          "displayName": "Encryption",
          "name": "encryption",
          "type": "json",
          "default": "{}",
          "placeholder": "Encryption configuration for a bucket"
        },
        {
          "displayName": "IAM Configuration",
          "name": "iamConfiguration",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's IAM configuration"
        },
        {
          "displayName": "Labels",
          "name": "labels",
          "type": "json",
          "default": "{}",
          "placeholder": "User provided bucket labels, in key/value pairs"
        },
        {
          "displayName": "Lifecycle",
          "name": "lifecycle",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's lifecycle configuration"
        },
        {
          "displayName": "Location",
          "name": "location",
          "type": "string",
          "default": "US",
          "placeholder": "The location of the bucket"
        },
        {
          "displayName": "Logging",
          "name": "logging",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's logging configuration"
        },
        {
          "displayName": "Retention Policy",
          "name": "retentionPolicy",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's retention policy"
        },
        {
          "displayName": "Recovery Point Objective",
          "name": "rpo",
          "type": "string",
          "default": "DEFAULT",
          "placeholder": "The recovery point objective for the bucket"
        },
        {
          "displayName": "Storage Class",
          "name": "storageClass",
          "type": "string",
          "default": "STANDARD",
          "placeholder": "The bucket's default storage class for objects that don't define one"
        },
        {
          "displayName": "Versioning",
          "name": "versioning",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's versioning configuration"
        },
        {
          "displayName": "Website",
          "name": "website",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's website configuration for when it is used to host a website"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "update"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create an object",
          "routing": {
            "request": {
              "method": "POST",
              "baseURL": "https://storage.googleapis.com/upload/storage/v1",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"] + \"/o/\"}}",
              "qs": {
                "name": "={{$parameter[\"objectName\"]}}",
                "uploadType": "multipart"
              },
              "headers": {}
            },
            "send": {
              "preSend": [
                null,
                null
              ]
            }
          },
          "action": "Create an object"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete an object",
          "routing": {
            "request": {
              "method": "DELETE",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"] + \"/o/\" + $parameter[\"objectName\"]}}",
              "qs": {}
            }
          },
          "action": "Delete an object from a bucket"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get object data or metadata",
          "routing": {
            "request": {
              "method": "GET",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"] + \"/o/\" + $parameter[\"objectName\"]}}",
              "returnFullResponse": true,
              "qs": {
                "alt": "={{$parameter[\"alt\"]}}"
              }
            },
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          },
          "action": "Get object data or metadata"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve a list of objects",
          "routing": {
            "request": {
              "method": "GET",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"] + \"/o/\"}}",
              "returnFullResponse": true,
              "qs": {}
            },
            "send": {
              "preSend": [
                null
              ],
              "paginate": true
            },
            "operations": {}
          },
          "action": "Get a list of objects"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update an object's metadata",
          "routing": {
            "request": {
              "method": "PATCH",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"] + \"/o/\" + $parameter[\"objectName\"]}}",
              "qs": {},
              "body": {}
            },
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "action": "Update an object's metadata"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ]
        }
      }
    },
    {
      "displayName": "Object Name",
      "name": "objectName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create",
            "delete",
            "get",
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Projection",
      "name": "projection",
      "type": "options",
      "default": "noAcl",
      "options": [
        {
          "name": "All Properties",
          "value": "full"
        },
        {
          "name": "No ACL",
          "value": "noAcl"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "get",
            "getAll"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Projection",
      "name": "updateProjection",
      "type": "options",
      "default": "full",
      "options": [
        {
          "name": "All Properties",
          "value": "full"
        },
        {
          "name": "No ACL",
          "value": "noAcl"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create",
            "update"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Return Data",
      "name": "alt",
      "type": "options",
      "default": "json",
      "options": [
        {
          "name": "Metadata",
          "value": "json"
        },
        {
          "name": "Object Data",
          "value": "media"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Use Input Binary Field",
      "name": "createFromBinary",
      "type": "boolean",
      "default": true,
      "description": "Whether the data for creating a file should come from a binary field",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Input Binary Field",
      "name": "createBinaryPropertyName",
      "type": "string",
      "default": "data",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create"
          ],
          "createFromBinary": [
            true
          ]
        }
      }
    },
    {
      "displayName": "File Content",
      "name": "createContent",
      "type": "string",
      "default": "",
      "description": "Content of the file to be uploaded",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create"
          ],
          "createFromBinary": [
            false
          ]
        }
      }
    },
    {
      "displayName": "Put Output File in Field",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "get"
          ],
          "alt": [
            "media"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "maxResults",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 1000
      }
    },
    {
      "displayName": "Create Fields",
      "name": "createData",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Access Control List",
          "name": "acl",
          "type": "json",
          "default": "[]"
        },
        {
          "displayName": "Cache Control",
          "name": "cacheControl",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Disposition",
          "name": "contentDisposition",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Encoding",
          "name": "contentEncoding",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Language",
          "name": "contentLanguage",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Type",
          "name": "contentType",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "CRC32c Checksum",
          "name": "crc32c",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Custom Time",
          "name": "customTime",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Event Based Hold",
          "name": "eventBasedHold",
          "type": "boolean",
          "default": false
        },
        {
          "displayName": "MD5 Hash",
          "name": "md5Hash",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Metadata",
          "name": "metadata",
          "type": "json",
          "default": "{}"
        },
        {
          "displayName": "Storage Class",
          "name": "storageClass",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Temporary Hold",
          "name": "temporaryHold",
          "type": "boolean",
          "default": false
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateData",
      "type": "collection",
      "default": {
        "acl": "[]"
      },
      "options": [
        {
          "displayName": "Access Control",
          "name": "acl",
          "type": "json",
          "default": "[]"
        },
        {
          "displayName": "Cache Control",
          "name": "cacheControl",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Disposition",
          "name": "contentDisposition",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Encoding",
          "name": "contentEncoding",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Language",
          "name": "contentLanguage",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Type",
          "name": "contentType",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Custom Time",
          "name": "customTime",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Event Based Hold",
          "name": "eventBasedHold",
          "type": "boolean",
          "default": false
        },
        {
          "displayName": "Metadata",
          "name": "metadata",
          "type": "json",
          "default": "{}"
        },
        {
          "displayName": "Temporary Hold",
          "name": "temporaryHold",
          "type": "boolean",
          "default": false
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Additional Parameters",
      "name": "createQuery",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Content Encoding",
          "name": "contentEncoding",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Generation",
          "name": "generation",
          "type": "number",
          "placeholder": "Select a specific revision of the chosen object",
          "default": -1
        },
        {
          "displayName": "Generation Match",
          "name": "ifGenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation matching this value",
          "default": -1
        },
        {
          "displayName": "Generation Exclude",
          "name": "ifGenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation not matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Match",
          "name": "ifMetagenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Exclude",
          "name": "ifMetagenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration not matching this value",
          "default": -1
        },
        {
          "displayName": "KMS Key Name",
          "name": "kmsKeyName",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Predefined ACL",
          "name": "predefinedAcl",
          "type": "options",
          "placeholder": "Apply a predefined set of Access Controls to the object",
          "default": "authenticatedRead",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "Bucket Owner Full Control",
              "value": "bucketOwnerFullControl"
            },
            {
              "name": "Bucket Owner Read",
              "value": "bucketOwnerRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Project Private",
              "value": "projectPrivate"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Parameters",
      "name": "getParameters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Generation",
          "name": "generation",
          "type": "number",
          "placeholder": "Select a specific revision of the chosen object",
          "default": -1
        },
        {
          "displayName": "Generation Match",
          "name": "ifGenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation matching this value",
          "default": -1
        },
        {
          "displayName": "Generation Exclude",
          "name": "ifGenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation not matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Match",
          "name": "ifMetagenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Exclude",
          "name": "ifMetagenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration not matching this value",
          "default": -1
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "delete",
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Additional Parameters",
      "name": "metagenAndAclQuery",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Generation",
          "name": "generation",
          "type": "number",
          "placeholder": "Select a specific revision of the chosen object",
          "default": -1
        },
        {
          "displayName": "Generation Match",
          "name": "ifGenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation matching this value",
          "default": -1
        },
        {
          "displayName": "Generation Exclude",
          "name": "ifGenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation not matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Match",
          "name": "ifMetagenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Exclude",
          "name": "ifMetagenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration not matching this value",
          "default": -1
        },
        {
          "displayName": "Predefined ACL",
          "name": "predefinedAcl",
          "type": "options",
          "placeholder": "Apply a predefined set of Access Controls to the object",
          "default": "authenticatedRead",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "Bucket Owner Full Control",
              "value": "bucketOwnerFullControl"
            },
            {
              "name": "Bucket Owner Read",
              "value": "bucketOwnerRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Project Private",
              "value": "projectPrivate"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Encryption Headers",
      "name": "encryptionHeaders",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Encryption Algorithm",
          "name": "X-Goog-Encryption-Algorithm",
          "type": "options",
          "placeholder": "The encryption algorithm to use, which must be AES256. Use to supply your own key in the request",
          "default": "AES256",
          "options": [
            {
              "name": "AES256",
              "value": "AES256"
            }
          ]
        },
        {
          "displayName": "Encryption Key",
          "name": "X-Goog-Encryption-Key",
          "type": "string",
          "placeholder": "Base64 encoded string of your AES256 encryption key",
          "default": ""
        },
        {
          "displayName": "Encryption Key Hash",
          "name": "X-Goog-Encryption-Key-Sha256",
          "type": "string",
          "placeholder": "Base64 encoded string of the SHA256 hash of your encryption key",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create",
            "get",
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Additional Parameters",
      "name": "listFilters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Delimiter",
          "name": "delimiter",
          "type": "string",
          "placeholder": "Returns results in directory-like mode, using this value as the delimiter",
          "default": "/"
        },
        {
          "displayName": "End Offset",
          "name": "endOffset",
          "type": "string",
          "placeholder": "Filter results to names lexicographically before this value",
          "default": ""
        },
        {
          "displayName": "Include Trailing Delimiter",
          "name": "includeTrailingDelimiter",
          "type": "boolean",
          "placeholder": "If true, objects will appear with exactly one instance of delimiter at the end of the name",
          "default": false
        },
        {
          "displayName": "Prefix",
          "name": "prefix",
          "type": "string",
          "placeholder": "Filter results to names that start with this value",
          "default": ""
        },
        {
          "displayName": "Start Offset",
          "name": "startOffset",
          "type": "string",
          "placeholder": "Filter results to names lexicographically equal or after this value",
          "default": ""
        },
        {
          "displayName": "Versions",
          "name": "versions",
          "type": "boolean",
          "placeholder": "If true, list all versions of objects as distinct entries",
          "default": false
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a new Bucket"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an empty Bucket"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get metadata for a specific Bucket"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get list of Buckets"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update the metadata of a bucket"
    }
  ]

credentials_required:
  [
    {
      "name": "googleCloudStorageOAuth2Api",
      "required": true,
      "testedBy": {
        "request": {
          "method": "GET",
          "url": "/b/"
        }
      }
    }
  ]


node_type: nodes-base.googleContacts
package_name: n8n-nodes-base
display_name: Google Contacts
description: Consume Google Contacts API
category: input
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "googleContactsOAuth2Api",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-12-02 22:49:17
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Contacts node documentation
  description: Learn how to use the Google Contacts node in n8n. Follow technical documentation to integrate Google Contacts node into your workflows.
  contentType: [integration, reference]
  ---

  # Google Contacts node

  Use the Google Contacts node to automate work in Google Contacts, and integrate Google Contacts with other applications. n8n has built-in support for a wide range of Google Contacts features, including creating, updating, retrieving, deleting, and getting contacts. 

  On this page, you'll find a list of operations the Google Contacts node supports and links to more resources.

  /// note | Credentials
  Refer to [Google Contacts credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  --8<-- "_snippets/integrations/builtin/app-nodes/ai-tools.md"

  ## Operations

  * Contact
      * Create a contact
      * Delete a contact
      * Get a contact
      * Retrieve all contacts
      * Update a contact

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-contacts') ]]

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Contact",
          "value": "contact"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a contact",
          "action": "Create a contact"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a contact",
          "action": "Delete a contact"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a contact",
          "action": "Get a contact"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many contacts",
          "action": "Get many contacts"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a contact",
          "action": "Update a contact"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Family Name",
      "name": "familyName",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Given Name",
      "name": "givenName",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Addresses",
          "name": "addressesUi",
          "placeholder": "Add Address",
          "type": "fixedCollection",
          "default": {},
          "options": [
            {
              "displayName": "Address",
              "name": "addressesValues",
              "values": [
                {
                  "displayName": "Street Address",
                  "name": "streetAddress",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "City",
                  "name": "city",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Region",
                  "name": "region",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Country Code",
                  "name": "countryCode",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Postal Code",
                  "name": "postalCode",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Birthday",
          "name": "birthday",
          "type": "dateTime",
          "default": ""
        },
        {
          "displayName": "Company",
          "name": "companyUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Company",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "companyValues",
              "displayName": "Company",
              "values": [
                {
                  "displayName": "Current",
                  "name": "current",
                  "type": "boolean",
                  "default": false
                },
                {
                  "displayName": "Domain",
                  "name": "domain",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Name",
                  "name": "name",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Title",
                  "name": "title",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Custom Field",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "description": "The end user specified key of the user defined data",
                  "default": ""
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "description": "The end user specified value of the user defined data",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Emails",
          "name": "emailsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Email",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "emailsValues",
              "displayName": "Email",
              "values": [
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": "",
                  "description": "The type of the email address. The type can be custom or one of these predefined values."
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "The email address"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Events",
          "name": "eventsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Event",
          "description": "An event related to the person",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "eventsValues",
              "displayName": "Event",
              "values": [
                {
                  "displayName": "Date",
                  "name": "date",
                  "type": "dateTime",
                  "default": "",
                  "description": "The date of the event"
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Anniversary",
                      "value": "anniversary"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": "",
                  "description": "The type of the event. The type can be custom or one of these predefined values."
                }
              ]
            }
          ]
        },
        {
          "displayName": "File As",
          "name": "fileAs",
          "type": "string",
          "default": "",
          "description": "The name that should be used to sort the person in a list"
        },
        {
          "displayName": "Group Names or IDs",
          "name": "group",
          "type": "multiOptions",
          "description": "Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "typeOptions": {
            "loadOptionsMethod": "getGroups"
          },
          "default": []
        },
        {
          "displayName": "Honorific Prefix",
          "name": "honorificPrefix",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Honorific Suffix",
          "name": "honorificSuffix",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Middle Name",
          "name": "middleName",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Notes",
          "name": "biographies",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Phone",
          "name": "phoneUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Phone",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "phoneValues",
              "displayName": "Phone",
              "values": [
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Google Voice",
                      "value": "googleVoice"
                    },
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Home Fax",
                      "value": "homeFax"
                    },
                    {
                      "name": "Main",
                      "value": "main"
                    },
                    {
                      "name": "Mobile",
                      "value": "mobile"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    },
                    {
                      "name": "Other Fax",
                      "value": "otherFax"
                    },
                    {
                      "name": "Pager",
                      "value": "pager"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Work Fax",
                      "value": "workFax"
                    },
                    {
                      "name": "Work Mobile",
                      "value": "workMobile"
                    },
                    {
                      "name": "Work Pager",
                      "value": "workPager"
                    }
                  ],
                  "default": ""
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "The phone number"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Relations",
          "name": "relationsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Relation",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "relationsValues",
              "displayName": "Relation",
              "values": [
                {
                  "displayName": "Person",
                  "name": "person",
                  "type": "string",
                  "default": "",
                  "description": "The name of the other person this relation refers to"
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Assistant",
                      "value": "assistant"
                    },
                    {
                      "name": "Brother",
                      "value": "brother"
                    },
                    {
                      "name": "Child",
                      "value": "child"
                    },
                    {
                      "name": "Domestic Partner",
                      "value": "domesticPartner"
                    },
                    {
                      "name": "Father",
                      "value": "father"
                    },
                    {
                      "name": "Friend",
                      "value": "friend"
                    },
                    {
                      "name": "Manager",
                      "value": "manager"
                    },
                    {
                      "name": "Mother",
                      "value": "mother"
                    },
                    {
                      "name": "Parent",
                      "value": "parent"
                    },
                    {
                      "name": "Referred By",
                      "value": "referredBy"
                    },
                    {
                      "name": "Relative",
                      "value": "relative"
                    },
                    {
                      "name": "Sister",
                      "value": "sister"
                    },
                    {
                      "name": "Spouse",
                      "value": "spouse"
                    }
                  ],
                  "default": "",
                  "description": "The person's relation to the other person. The type can be custom or one of these predefined values."
                }
              ]
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "fields",
      "type": "multiOptions",
      "default": [],
      "description": "A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas.",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Addresses",
          "value": "addresses"
        },
        {
          "name": "Biographies",
          "value": "biographies"
        },
        {
          "name": "Birthdays",
          "value": "birthdays"
        },
        {
          "name": "Cover Photos",
          "value": "coverPhotos"
        },
        {
          "name": "Email Addresses",
          "value": "emailAddresses"
        },
        {
          "name": "Events",
          "value": "events"
        },
        {
          "name": "Genders",
          "value": "genders"
        },
        {
          "name": "IM Clients",
          "value": "imClients"
        },
        {
          "name": "Interests",
          "value": "interests"
        },
        {
          "name": "Locales",
          "value": "locales"
        },
        {
          "name": "Memberships",
          "value": "memberships"
        },
        {
          "name": "Metadata",
          "value": "metadata"
        },
        {
          "name": "Names",
          "value": "names"
        },
        {
          "name": "Nicknames",
          "value": "nicknames"
        },
        {
          "name": "Occupations",
          "value": "occupations"
        },
        {
          "name": "Organizations",
          "value": "organizations"
        },
        {
          "name": "Phone Numbers",
          "value": "phoneNumbers"
        },
        {
          "name": "Photos",
          "value": "photos"
        },
        {
          "name": "Relations",
          "value": "relations"
        },
        {
          "name": "Residences",
          "value": "residences"
        },
        {
          "name": "Sip Addresses",
          "value": "sipAddresses"
        },
        {
          "name": "Skills",
          "value": "skills"
        },
        {
          "name": "URLs",
          "value": "urls"
        },
        {
          "name": "User Defined",
          "value": "userDefined"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "RAW Data",
      "name": "rawData",
      "type": "boolean",
      "default": false,
      "description": "Whether to return the data exactly in the way it got received from the API",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Fields",
      "name": "fields",
      "type": "multiOptions",
      "default": [],
      "description": "A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas.",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Addresses",
          "value": "addresses"
        },
        {
          "name": "Biographies",
          "value": "biographies"
        },
        {
          "name": "Birthdays",
          "value": "birthdays"
        },
        {
          "name": "Cover Photos",
          "value": "coverPhotos"
        },
        {
          "name": "Email Addresses",
          "value": "emailAddresses"
        },
        {
          "name": "Events",
          "value": "events"
        },
        {
          "name": "Genders",
          "value": "genders"
        },
        {
          "name": "IM Clients",
          "value": "imClients"
        },
        {
          "name": "Interests",
          "value": "interests"
        },
        {
          "name": "Locales",
          "value": "locales"
        },
        {
          "name": "Memberships",
          "value": "memberships"
        },
        {
          "name": "Metadata",
          "value": "metadata"
        },
        {
          "name": "Names",
          "value": "names"
        },
        {
          "name": "Nicknames",
          "value": "nicknames"
        },
        {
          "name": "Occupations",
          "value": "occupations"
        },
        {
          "name": "Organizations",
          "value": "organizations"
        },
        {
          "name": "Phone Numbers",
          "value": "phoneNumbers"
        },
        {
          "name": "Photos",
          "value": "photos"
        },
        {
          "name": "Relations",
          "value": "relations"
        },
        {
          "name": "Residences",
          "value": "residences"
        },
        {
          "name": "Sip Addresses",
          "value": "sipAddresses"
        },
        {
          "name": "Skills",
          "value": "skills"
        },
        {
          "name": "URLs",
          "value": "urls"
        },
        {
          "name": "User Defined",
          "value": "userDefined"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Use Query",
      "name": "useQuery",
      "type": "boolean",
      "default": false,
      "description": "Whether or not to use a query to filter the results",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Query",
      "name": "query",
      "type": "string",
      "default": "",
      "description": "The plain-text query for the request. The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ],
          "useQuery": [
            true
          ]
        }
      }
    },
    {
      "displayName": "RAW Data",
      "name": "rawData",
      "type": "boolean",
      "default": false,
      "description": "Whether to return the data exactly in the way it got received from the API",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Sort Order",
          "name": "sortOrder",
          "type": "options",
          "options": [
            {
              "name": "Last Modified Ascending",
              "value": "LAST_MODIFIED_ASCENDING",
              "description": "Sort people by when they were changed; older entries first"
            },
            {
              "name": "Last Modified Descending",
              "value": "LAST_MODIFIED_DESCENDING",
              "description": "Sort people by when they were changed; newer entries first"
            },
            {
              "name": "First Name Ascending",
              "value": "FIRST_NAME_ASCENDING",
              "description": "Sort people by first name"
            },
            {
              "name": "Last Name Ascending",
              "value": "LAST_NAME_ASCENDING",
              "description": "Sort people by last name"
            }
          ],
          "default": "",
          "description": "The order of the contacts returned in the result"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ],
          "useQuery": [
            false
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "fields",
      "type": "multiOptions",
      "default": [],
      "description": "A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas.",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Addresses",
          "value": "addresses"
        },
        {
          "name": "Biographies",
          "value": "biographies"
        },
        {
          "name": "Birthdays",
          "value": "birthdays"
        },
        {
          "name": "Cover Photos",
          "value": "coverPhotos"
        },
        {
          "name": "Email Addresses",
          "value": "emailAddresses"
        },
        {
          "name": "Events",
          "value": "events"
        },
        {
          "name": "Genders",
          "value": "genders"
        },
        {
          "name": "IM Clients",
          "value": "imClients"
        },
        {
          "name": "Interests",
          "value": "interests"
        },
        {
          "name": "Locales",
          "value": "locales"
        },
        {
          "name": "Memberships",
          "value": "memberships"
        },
        {
          "name": "Metadata",
          "value": "metadata"
        },
        {
          "name": "Names",
          "value": "names"
        },
        {
          "name": "Nicknames",
          "value": "nicknames"
        },
        {
          "name": "Occupations",
          "value": "occupations"
        },
        {
          "name": "Organizations",
          "value": "organizations"
        },
        {
          "name": "Phone Numbers",
          "value": "phoneNumbers"
        },
        {
          "name": "Photos",
          "value": "photos"
        },
        {
          "name": "Relations",
          "value": "relations"
        },
        {
          "name": "Residences",
          "value": "residences"
        },
        {
          "name": "Sip Addresses",
          "value": "sipAddresses"
        },
        {
          "name": "Skills",
          "value": "skills"
        },
        {
          "name": "URLs",
          "value": "urls"
        },
        {
          "name": "User Defined",
          "value": "userDefined"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Etag",
          "name": "etag",
          "type": "string",
          "default": "",
          "description": "The etag field in the person is nedded to make sure the contact has not changed since your last read"
        },
        {
          "displayName": "Family Name",
          "name": "familyName",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Given Name",
          "name": "givenName",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Addresses",
          "name": "addressesUi",
          "placeholder": "Add Address",
          "type": "fixedCollection",
          "default": {},
          "options": [
            {
              "displayName": "Address",
              "name": "addressesValues",
              "values": [
                {
                  "displayName": "Street Address",
                  "name": "streetAddress",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "City",
                  "name": "city",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Region",
                  "name": "region",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Country Code",
                  "name": "countryCode",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Postal Code",
                  "name": "postalCode",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Birthday",
          "name": "birthday",
          "type": "dateTime",
          "default": ""
        },
        {
          "displayName": "Company",
          "name": "companyUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Company",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "companyValues",
              "displayName": "Company",
              "values": [
                {
                  "displayName": "Current",
                  "name": "current",
                  "type": "boolean",
                  "default": false
                },
                {
                  "displayName": "Domain",
                  "name": "domain",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Name",
                  "name": "name",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Title",
                  "name": "title",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Custom Field",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "description": "The end user specified key of the user defined data",
                  "default": ""
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "description": "The end user specified value of the user defined data",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Emails",
          "name": "emailsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Email",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "emailsValues",
              "displayName": "Email",
              "values": [
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": "",
                  "description": "The type of the email address. The type can be custom or one of these predefined values."
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "The email address"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Events",
          "name": "eventsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Event",
          "description": "An event related to the person",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "eventsValues",
              "displayName": "Event",
              "values": [
                {
                  "displayName": "Date",
                  "name": "date",
                  "type": "dateTime",
                  "default": "",
                  "description": "The date of the event"
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Anniversary",
                      "value": "anniversary"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": "",
                  "description": "The type of the event. The type can be custom or one of these predefined values."
                }
              ]
            }
          ]
        },
        {
          "displayName": "File As",
          "name": "fileAs",
          "type": "string",
          "default": "",
          "description": "The name that should be used to sort the person in a list"
        },
        {
          "displayName": "Group Names or IDs",
          "name": "group",
          "type": "multiOptions",
          "description": "Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "typeOptions": {
            "loadOptionsMethod": "getGroups"
          },
          "default": []
        },
        {
          "displayName": "Honorific Prefix",
          "name": "honorificPrefix",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Honorific Suffix",
          "name": "honorificSuffix",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Middle Name",
          "name": "middleName",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Notes",
          "name": "biographies",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Phone",
          "name": "phoneUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Phone",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "phoneValues",
              "displayName": "Phone",
              "values": [
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Google Voice",
                      "value": "googleVoice"
                    },
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Home Fax",
                      "value": "homeFax"
                    },
                    {
                      "name": "Main",
                      "value": "main"
                    },
                    {
                      "name": "Mobile",
                      "value": "mobile"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    },
                    {
                      "name": "Other Fax",
                      "value": "otherFax"
                    },
                    {
                      "name": "Pager",
                      "value": "pager"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Work Fax",
                      "value": "workFax"
                    },
                    {
                      "name": "Work Mobile",
                      "value": "workMobile"
                    },
                    {
                      "name": "Work Pager",
                      "value": "workPager"
                    }
                  ],
                  "default": ""
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "The phone number"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Relations",
          "name": "relationsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Relation",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "relationsValues",
              "displayName": "Relation",
              "values": [
                {
                  "displayName": "Person",
                  "name": "person",
                  "type": "string",
                  "default": "",
                  "description": "The name of the other person this relation refers to"
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Assistant",
                      "value": "assistant"
                    },
                    {
                      "name": "Brother",
                      "value": "brother"
                    },
                    {
                      "name": "Child",
                      "value": "child"
                    },
                    {
                      "name": "Domestic Partner",
                      "value": "domesticPartner"
                    },
                    {
                      "name": "Father",
                      "value": "father"
                    },
                    {
                      "name": "Friend",
                      "value": "friend"
                    },
                    {
                      "name": "Manager",
                      "value": "manager"
                    },
                    {
                      "name": "Mother",
                      "value": "mother"
                    },
                    {
                      "name": "Parent",
                      "value": "parent"
                    },
                    {
                      "name": "Referred By",
                      "value": "referredBy"
                    },
                    {
                      "name": "Relative",
                      "value": "relative"
                    },
                    {
                      "name": "Sister",
                      "value": "sister"
                    },
                    {
                      "name": "Spouse",
                      "value": "spouse"
                    }
                  ],
                  "default": "",
                  "description": "The person's relation to the other person. The type can be custom or one of these predefined values."
                }
              ]
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a contact"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a contact"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a contact"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve many contacts"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a contact"
    }
  ]


node_type: nodes-base.googleDocs
package_name: n8n-nodes-base
display_name: Google Docs
description: Consume Google Docs API.
category: input
development_style: programmatic
version: 2
outputs:
  [
  "main"
  ]

updated_at: 2025-12-02 22:49:17
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Docs node documentation
  description: Learn how to use the Google Docs node in n8n. Follow technical documentation to integrate Google Docs node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google Docs node

  Use the Google Docs node to automate work in Google Docs, and integrate Google Docs with other applications. n8n has built-in support for a wide range of Google Docs features, including creating, updating, and getting documents. 

  On this page, you'll find a list of operations the Google Docs node supports and links to more resources.

  /// note | Credentials
  Refer to [Google Docs credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  --8<-- "_snippets/integrations/builtin/app-nodes/ai-tools.md"

  ## Operations 

  * Document
      * Create
      * Get
      * Update

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-docs') ]]

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "serviceAccount",
      "options": [
        {
          "name": "Service Account",
          "value": "serviceAccount"
        },
        {
          "name": "OAuth2",
          "value": "oAuth2"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            1
          ]
        }
      }
    },
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "oAuth2",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "oAuth2"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            2
          ]
        }
      }
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a document"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a document"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a document"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Drive Name or ID",
      "name": "driveId",
      "type": "options",
      "default": "myDrive",
      "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getDrives"
      }
    },
    {
      "displayName": "Folder Name or ID",
      "name": "folderId",
      "type": "options",
      "default": "",
      "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "driveId"
        ],
        "loadOptionsMethod": "getFolders"
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Doc ID or URL",
      "name": "documentURL",
      "type": "string",
      "default": "",
      "description": "The ID in the document URL (or just paste the whole URL)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Doc ID or URL",
      "name": "documentURL",
      "type": "string",
      "default": "",
      "description": "The ID in the document URL (or just paste the whole URL)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Actions",
      "name": "actionsUi",
      "type": "fixedCollection",
      "default": {
        "actionFields": [
          {
            "object": "text",
            "action": "insert",
            "locationChoice": "endOfSegmentLocation",
            "index": 0,
            "text": ""
          }
        ]
      },
      "description": "Actions applied to update the document",
      "options": [
        {
          "name": "actionFields",
          "displayName": "Action Fields",
          "values": [
            {
              "displayName": "Object",
              "name": "object",
              "type": "options",
              "options": [
                {
                  "name": "Footer",
                  "value": "footer"
                },
                {
                  "name": "Header",
                  "value": "header"
                },
                {
                  "name": "Named Range",
                  "value": "namedRange"
                },
                {
                  "name": "Page Break",
                  "value": "pageBreak"
                },
                {
                  "name": "Paragraph Bullets",
                  "value": "paragraphBullets"
                },
                {
                  "name": "Positioned Object",
                  "value": "positionedObject"
                },
                {
                  "name": "Table",
                  "value": "table"
                },
                {
                  "name": "Table Column",
                  "value": "tableColumn"
                },
                {
                  "name": "Table Row",
                  "value": "tableRow"
                },
                {
                  "name": "Text",
                  "value": "text"
                }
              ],
              "description": "The update object",
              "default": "text"
            },
            {
              "displayName": "Action",
              "name": "action",
              "type": "options",
              "options": [
                {
                  "name": "Find and Replace Text",
                  "value": "replaceAll"
                },
                {
                  "name": "Insert",
                  "value": "insert"
                }
              ],
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ]
                }
              },
              "description": "The update action",
              "default": ""
            },
            {
              "displayName": "Action",
              "name": "action",
              "type": "options",
              "options": [
                {
                  "name": "Create",
                  "value": "create"
                },
                {
                  "name": "Delete",
                  "value": "delete"
                }
              ],
              "displayOptions": {
                "show": {
                  "object": [
                    "footer",
                    "header",
                    "namedRange",
                    "paragraphBullets"
                  ]
                }
              },
              "description": "The update action",
              "default": ""
            },
            {
              "displayName": "Action",
              "name": "action",
              "type": "options",
              "options": [
                {
                  "name": "Delete",
                  "value": "delete"
                },
                {
                  "name": "Insert",
                  "value": "insert"
                }
              ],
              "displayOptions": {
                "show": {
                  "object": [
                    "tableColumn",
                    "tableRow"
                  ]
                }
              },
              "description": "The update action",
              "default": ""
            },
            {
              "displayName": "Action",
              "name": "action",
              "type": "options",
              "options": [
                {
                  "name": "Insert",
                  "value": "insert"
                }
              ],
              "displayOptions": {
                "show": {
                  "object": [
                    "pageBreak",
                    "table"
                  ]
                }
              },
              "description": "The update action",
              "default": ""
            },
            {
              "displayName": "Action",
              "name": "action",
              "type": "options",
              "options": [
                {
                  "name": "Delete",
                  "value": "delete"
                }
              ],
              "displayOptions": {
                "show": {
                  "object": [
                    "positionedObject"
                  ]
                }
              },
              "description": "The update action",
              "default": ""
            },
            {
              "displayName": "Insert Segment",
              "name": "insertSegment",
              "type": "options",
              "options": [
                {
                  "name": "Header",
                  "value": "header"
                },
                {
                  "name": "Body",
                  "value": "body"
                },
                {
                  "name": "Footer",
                  "value": "footer"
                }
              ],
              "description": "The location where to create the object",
              "default": "body",
              "displayOptions": {
                "show": {
                  "object": [
                    "footer",
                    "header",
                    "paragraphBullets",
                    "namedRange"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "Segment ID",
              "name": "segmentId",
              "type": "string",
              "description": "The ID of the header, footer or footnote. The <code>Document → Get</code> operation lists all segment IDs (make sure you disable the <code>simple</code> toggle).",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "footer",
                    "header",
                    "paragraphBullets",
                    "namedRange"
                  ],
                  "action": [
                    "create"
                  ]
                },
                "hide": {
                  "insertSegment": [
                    "body"
                  ]
                }
              }
            },
            {
              "displayName": "Index",
              "name": "index",
              "type": "number",
              "description": "The zero-based index, relative to the beginning of the specified segment",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "footer",
                    "header"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "description": "The name of the Named Range. Names do not need to be unique.",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "Start Index",
              "name": "startIndex",
              "type": "number",
              "description": "The zero-based start index of this range",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "End Index",
              "name": "endIndex",
              "type": "number",
              "description": "The zero-based end index of this range",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "Style",
              "name": "bulletPreset",
              "type": "options",
              "options": [
                {
                  "name": "Bullet List",
                  "value": "BULLET_DISC_CIRCLE_SQUARE",
                  "description": "A bulleted list with a <code>DISC</code>, <code>CIRCLE</code> and <code>SQUARE</code> bullet glyph for the first 3 list nesting levels"
                },
                {
                  "name": "Checkbox List",
                  "value": "BULLET_CHECKBOX",
                  "description": "A bulleted list with CHECKBOX bullet glyphs for all list nesting levels"
                },
                {
                  "name": "Numbered List",
                  "value": "NUMBERED_DECIMAL_NESTED",
                  "description": "A numbered list with <code>DECIMAL</code> numeric glyphs separated by periods, where each nesting level uses the previous nesting level's glyph as a prefix. For example: 1., 1.1., 2., 2.2 ."
                }
              ],
              "description": "The Preset pattern of bullet glyphs for list",
              "default": "BULLET_DISC_CIRCLE_SQUARE",
              "displayOptions": {
                "show": {
                  "object": [
                    "paragraphBullets"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "Footer ID",
              "name": "footerId",
              "type": "string",
              "description": "The ID of the footer to delete. To retrieve it, use the <code>get document</code> where you can find under <code>footers</code> attribute.",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "footer"
                  ],
                  "action": [
                    "delete"
                  ]
                }
              }
            },
            {
              "displayName": "Header ID",
              "name": "headerId",
              "type": "string",
              "description": "The ID of the header to delete. To retrieve it, use the <code>get document</code> where you can find under <code>headers</code> attribute.",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "header"
                  ],
                  "action": [
                    "delete"
                  ]
                }
              }
            },
            {
              "displayName": "Specify Range By",
              "name": "namedRangeReference",
              "type": "options",
              "options": [
                {
                  "name": "ID",
                  "value": "namedRangeId"
                },
                {
                  "name": "Name",
                  "value": "name"
                }
              ],
              "description": "The value determines which range or ranges to delete",
              "default": "namedRangeId",
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "delete"
                  ]
                }
              }
            },
            {
              "displayName": "ID",
              "name": "value",
              "type": "string",
              "description": "The ID of the range",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "delete"
                  ],
                  "namedRangeReference": [
                    "namedRangeId"
                  ]
                }
              }
            },
            {
              "displayName": "Name",
              "name": "value",
              "type": "string",
              "description": "The name of the range",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "delete"
                  ],
                  "namedRangeReference": [
                    "name"
                  ]
                }
              }
            },
            {
              "displayName": "Object ID",
              "name": "objectId",
              "type": "string",
              "description": "The ID of the positioned object to delete (An object that is tied to a paragraph and positioned relative to its beginning), See the Google <a href=\"https://developers.google.com/docs/api/reference/rest/v1/documents#positionedobject\" target=\"_blank\">documentation</a>",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "positionedObject"
                  ],
                  "action": [
                    "delete"
                  ]
                }
              }
            },
            {
              "displayName": "Insert Segment",
              "name": "insertSegment",
              "type": "options",
              "options": [
                {
                  "name": "Header",
                  "value": "header"
                },
                {
                  "name": "Body",
                  "value": "body"
                },
                {
                  "name": "Footer",
                  "value": "footer"
                }
              ],
              "description": "The location where to create the object",
              "default": "body",
              "displayOptions": {
                "show": {
                  "object": [
                    "pageBreak",
                    "table",
                    "tableColumn",
                    "tableRow",
                    "text"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Segment ID",
              "name": "segmentId",
              "type": "string",
              "description": "The ID of the header, footer or footnote. The <code>Document → Get</code> operation lists all segment IDs (make sure you disable the <code>simple</code> toggle).",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "pageBreak",
                    "table",
                    "tableColumn",
                    "tableRow",
                    "text"
                  ],
                  "action": [
                    "insert"
                  ]
                },
                "hide": {
                  "insertSegment": [
                    "body"
                  ]
                }
              }
            },
            {
              "displayName": "Insert Location",
              "name": "locationChoice",
              "type": "options",
              "options": [
                {
                  "name": "At End of Specific Position",
                  "value": "endOfSegmentLocation",
                  "description": "Inserts the text at the end of a header, footer, footnote, or document body"
                },
                {
                  "name": "At Index",
                  "value": "location"
                }
              ],
              "description": "The location where the text will be inserted",
              "default": "endOfSegmentLocation",
              "displayOptions": {
                "show": {
                  "object": [
                    "pageBreak"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Index",
              "name": "index",
              "type": "number",
              "description": "The zero-based index, relative to the beginning of the specified segment",
              "displayOptions": {
                "show": {
                  "locationChoice": [
                    "location"
                  ],
                  "object": [
                    "pageBreak"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              },
              "typeOptions": {
                "minValue": 1
              },
              "default": 1
            },
            {
              "displayName": "Insert Location",
              "name": "locationChoice",
              "type": "options",
              "options": [
                {
                  "name": "At End of Specific Position",
                  "value": "endOfSegmentLocation",
                  "description": "Inserts the text at the end of a header, footer, footnote, or document body"
                },
                {
                  "name": "At Index",
                  "value": "location"
                }
              ],
              "description": "The location where the text will be inserted",
              "default": "endOfSegmentLocation",
              "displayOptions": {
                "show": {
                  "object": [
                    "table"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Index",
              "name": "index",
              "type": "number",
              "description": "The zero-based index, relative to the beginning of the specified segment (use index + 1 to refer to a table)",
              "displayOptions": {
                "show": {
                  "locationChoice": [
                    "location"
                  ],
                  "object": [
                    "table"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              },
              "default": 1,
              "typeOptions": {
                "minValue": 1
              }
            },
            {
              "displayName": "Rows",
              "name": "rows",
              "type": "number",
              "description": "The number of rows in the table",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "table"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Columns",
              "name": "columns",
              "type": "number",
              "description": "The number of columns in the table",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "table"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Insert Location",
              "name": "locationChoice",
              "type": "options",
              "options": [
                {
                  "name": "At End of Specific Position",
                  "value": "endOfSegmentLocation",
                  "description": "Inserts the text at the end of a header, footer, footnote, or document body"
                },
                {
                  "name": "At Index",
                  "value": "location"
                }
              ],
              "description": "The location where the text will be inserted",
              "default": "endOfSegmentLocation",
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Index",
              "name": "index",
              "type": "number",
              "typeOptions": {
                "minValue": 1
              },
              "description": "The zero-based index, relative to the beginning of the specified segment",
              "displayOptions": {
                "show": {
                  "locationChoice": [
                    "location"
                  ],
                  "object": [
                    "text"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              },
              "default": 1
            },
            {
              "displayName": "Text",
              "name": "text",
              "type": "string",
              "description": "The text to insert in the document",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Old Text",
              "name": "text",
              "type": "string",
              "description": "The text to search for in the document",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ],
                  "action": [
                    "replaceAll"
                  ]
                }
              }
            },
            {
              "displayName": "New Text",
              "name": "replaceText",
              "type": "string",
              "description": "The text that will replace the matched text",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ],
                  "action": [
                    "replaceAll"
                  ]
                }
              }
            },
            {
              "displayName": "Match Case",
              "name": "matchCase",
              "type": "boolean",
              "description": "Whether the search should respect case sensitivity",
              "default": false,
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ],
                  "action": [
                    "replaceAll"
                  ]
                }
              }
            },
            {
              "displayName": "Insert Segment",
              "name": "insertSegment",
              "type": "options",
              "options": [
                {
                  "name": "Header",
                  "value": "header"
                },
                {
                  "name": "Body",
                  "value": "body"
                },
                {
                  "name": "Footer",
                  "value": "footer"
                }
              ],
              "description": "The location where to create the object",
              "default": "body",
              "displayOptions": {
                "show": {
                  "object": [
                    "paragraphBullets",
                    "tableColumn",
                    "tableRow"
                  ],
                  "action": [
                    "delete"
                  ]
                }
              }
            },
            {
              "displayName": "Segment ID",
              "name": "segmentId",
              "type": "string",
              "description": "The ID of the header, footer or footnote. The <code>Document → Get</code> operation lists all segment IDs (make sure you disable the <code>simple</code> toggle).",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "paragraphBullets",
                    "tableColumn",
                    "tableRow"
                  ],
                  "action": [
                    "delete"
                  ]
                },
                "hide": {
                  "insertSegment": [
                    "body"
                  ]
                }
              }
            },
            {
              "displayName": "Start Index",
              "name": "startIndex",
              "type": "number",
              "description": "The zero-based start index of this range",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "paragraphBullets"
                  ]
                }
              }
            },
            {
              "displayName": "End Index",
              "name": "endIndex",
              "type": "number",
              "description": "The zero-based end index of this range",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "paragraphBullets"
                  ]
                }
              }
            },
            {
              "displayName": "Insert Position",
              "name": "insertPosition",
              "type": "options",
              "options": [
                {
                  "name": "Before Content at Index",
                  "value": false
                },
                {
                  "name": "After Content at Index",
                  "value": true
                }
              ],
              "default": true,
              "displayOptions": {
                "show": {
                  "object": [
                    "tableColumn",
                    "tableRow"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Index",
              "name": "index",
              "type": "number",
              "description": "The zero-based index, relative to the beginning of the specified segment (use index + 1 to refer to a table)",
              "default": 1,
              "typeOptions": {
                "minValue": 1
              },
              "displayOptions": {
                "show": {
                  "object": [
                    "tableColumn",
                    "tableRow"
                  ]
                }
              }
            },
            {
              "displayName": "Row Index",
              "name": "rowIndex",
              "type": "number",
              "description": "The zero-based row index",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "tableColumn",
                    "tableRow"
                  ]
                }
              }
            },
            {
              "displayName": "Column Index",
              "name": "columnIndex",
              "type": "number",
              "description": "The zero-based column index",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "tableColumn",
                    "tableRow"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Write Control Object",
          "name": "writeControlObject",
          "values": [
            {
              "displayName": "Revision Mode",
              "name": "control",
              "type": "options",
              "options": [
                {
                  "name": "Target",
                  "value": "targetRevisionId",
                  "description": "Apply changes to the latest revision. Otherwise changes will not be processed."
                },
                {
                  "name": "Required",
                  "value": "requiredRevisionId",
                  "description": "Apply changes to the provided revision while incorporating other collaborators' changes. This mode is used for the recent revision, Otherwise changes will not be processed."
                }
              ],
              "default": "requiredRevisionId",
              "description": "Determines how the changes are applied to the revision"
            },
            {
              "displayName": "Revision ID",
              "name": "value",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "document"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create"
    },
    {
      "operation": "get",
      "name": "Get"
    },
    {
      "operation": "update",
      "name": "Update"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleDocsOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleDrive
package_name: n8n-nodes-base
display_name: Google Drive
description: Access data on Google Drive
category: input
development_style: programmatic
version: 3
outputs:
  [
  "main"
  ]

updated_at: 2025-12-02 22:49:17
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Drive node documentation
  description: Learn how to use the Google Drive node in n8n. Follow technical documentation to integrate Google Drive node into your workflows.
  contentType: [integration, reference]
  priority: high
  ---

  # Google Drive node

  Use the Google Drive node to automate work in Google Drive, and integrate Google Drive with other applications. n8n has built-in support for a wide range of Google Drive features, including creating, updating, listing, deleting, and getting drives, files, and folders. 

  On this page, you'll find a list of operations the Google Drive node supports and links to more resources.

  /// note | Credentials
  Refer to [Google Drive credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  ## Operations

  * **File**
      * [**Copy**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#copy-a-file) a file
      * [**Create from text**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#create-from-text)
      * [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#delete-a-file) a file
      * [**Download**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#download-a-file) a file
      * [**Move**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#move-a-file) a file
      * [**Share**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#share-a-file) a file
      * [**Update**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#update-a-file) a file
      * [**Upload**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#upload-a-file) a file
  * **File/Folder**
      * [**Search**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-folder-operations.md#search-files-and-folders) files and folders
  * **Folder**
      * [**Create**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/folder-operations.md#create-a-folder) a folder
      * [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/folder-operations.md#delete-a-folder) a folder
      * [**Share**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/folder-operations.md#share-a-folder) a folder
  * **Shared Drive**
      * [**Create**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/shared-drive-operations.md#create-a-shared-drive) a shared drive
      * [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/shared-drive-operations.md#delete-a-shared-drive) a shared drive
      * [**Get**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/shared-drive-operations.md#get-a-shared-drive) a shared drive
      * [**Get Many**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/shared-drive-operations.md#get-many-shared-drives) shared drives
      * [**Update**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/shared-drive-operations.md#update-a-shared-drive) a shared drive

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-drive') ]]

  ## Common issues

  For common questions or issues and suggested solutions, refer to [Common issues](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/common-issues.md).

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Retrieve, analyze, and answer questions using your Google Drive documents with our pre-built",
      "name": "preBuiltAgentsCalloutGoogleDrive",
      "type": "callout",
      "default": "",
      "typeOptions": {
        "calloutAction": {
          "label": "Knowledge store agent",
          "icon": "bot",
          "type": "openSampleWorkflowTemplate",
          "templateId": "knowledge_store_agent_with_google_drive"
        }
      }
    },
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "oAuth2",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "oAuth2"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ]
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "file",
      "options": [
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "File/Folder",
          "value": "fileFolder"
        },
        {
          "name": "Folder",
          "value": "folder"
        },
        {
          "name": "Shared Drive",
          "value": "drive"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a shared drive",
          "action": "Create shared drive"
        },
        {
          "name": "Delete",
          "value": "deleteDrive",
          "description": "Permanently delete a shared drive",
          "action": "Delete shared drive"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a shared drive",
          "action": "Get shared drive"
        },
        {
          "name": "Get Many",
          "value": "list",
          "description": "Get the list of shared drives",
          "action": "Get many shared drives"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a shared drive",
          "action": "Update shared drive"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the shared drive to create",
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Capabilities",
          "name": "capabilities",
          "type": "collection",
          "placeholder": "Add Field",
          "default": {},
          "options": [
            {
              "displayName": "Can Add Children",
              "name": "canAddChildren",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can add children to folders in this shared drive"
            },
            {
              "displayName": "Can Change Copy Requires Writer Permission Restriction",
              "name": "canChangeCopyRequiresWriterPermissionRestriction",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can change the copyRequiresWriterPermission restriction of this shared drive"
            },
            {
              "displayName": "Can Change Domain Users Only Restriction",
              "name": "canChangeDomainUsersOnlyRestriction",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can change the domainUsersOnly restriction of this shared drive"
            },
            {
              "displayName": "Can Change Drive Background",
              "name": "canChangeDriveBackground",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can change the background of this shared drive"
            },
            {
              "displayName": "Can Change Drive Members Only Restriction",
              "name": "canChangeDriveMembersOnlyRestriction",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can change the driveMembersOnly restriction of this shared drive"
            },
            {
              "displayName": "Can Comment",
              "name": "canComment",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can comment on files in this shared drive"
            },
            {
              "displayName": "Can Copy",
              "name": "canCopy",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can copy files in this shared drive"
            },
            {
              "displayName": "Can Delete Children",
              "name": "canDeleteChildren",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can delete children from folders in this shared drive"
            },
            {
              "displayName": "Can Delete Drive",
              "name": "canDeleteDrive",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can delete this shared drive. Attempting to delete the shared drive may still fail if there are untrashed items inside the shared drive."
            },
            {
              "displayName": "Can Download",
              "name": "canDownload",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can download files in this shared drive"
            },
            {
              "displayName": "Can Edit",
              "name": "canEdit",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can edit files in this shared drive"
            },
            {
              "displayName": "Can List Children",
              "name": "canListChildren",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can list the children of folders in this shared drive"
            },
            {
              "displayName": "Can Manage Members",
              "name": "canManageMembers",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can add members to this shared drive or remove them or change their role"
            },
            {
              "displayName": "Can Read Revisions",
              "name": "canReadRevisions",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can read the revisions resource of files in this shared drive"
            },
            {
              "displayName": "Can Rename",
              "name": "canRename",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can rename files or folders in this shared drive"
            },
            {
              "displayName": "Can Rename Drive",
              "name": "canRenameDrive",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can rename this shared drive"
            },
            {
              "displayName": "Can Share",
              "name": "canShare",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can share files or folders in this shared drive"
            },
            {
              "displayName": "Can Trash Children",
              "name": "canTrashChildren",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can trash children from folders in this shared drive"
            }
          ]
        },
        {
          "displayName": "Color RGB",
          "name": "colorRgb",
          "type": "color",
          "default": "",
          "description": "The color of this shared drive as an RGB hex string"
        },
        {
          "displayName": "Hidden",
          "name": "hidden",
          "type": "boolean",
          "default": false,
          "description": "Whether the shared drive is hidden from default view"
        },
        {
          "displayName": "Restrictions",
          "name": "restrictions",
          "type": "collection",
          "placeholder": "Add Field",
          "default": {},
          "options": [
            {
              "displayName": "Admin Managed Restrictions",
              "name": "adminManagedRestrictions",
              "type": "boolean",
              "default": false,
              "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive."
            },
            {
              "displayName": "Copy Requires Writer Permission",
              "name": "copyRequiresWriterPermission",
              "type": "boolean",
              "default": false,
              "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive."
            },
            {
              "displayName": "Domain Users Only",
              "name": "domainUsersOnly",
              "type": "boolean",
              "default": false,
              "description": "Whether access to this shared drive and items inside this shared drive is restricted to users of the domain to which this shared drive belongs. This restriction may be overridden by other sharing policies controlled outside of this shared drive."
            },
            {
              "displayName": "Drive Members Only",
              "name": "driveMembersOnly",
              "type": "boolean",
              "default": false,
              "description": "Whether access to items inside this shared drive is restricted to its members"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Shared Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The shared drive to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "deleteDrive"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Drive",
          "name": "list",
          "type": "list",
          "placeholder": "Select a shared drive...",
          "typeOptions": {
            "searchListMethod": "driveSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/drive/u/1/folders/0AIjtcbwnjtcbwn9PVA",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Drive URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 0AMXTKI5ZSiM7Uk9PVA",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Drive ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Shared Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The shared drive to get",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "get"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Drive",
          "name": "list",
          "type": "list",
          "placeholder": "Select a shared drive...",
          "typeOptions": {
            "searchListMethod": "driveSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/drive/u/1/folders/0AIjtcbwnjtcbwn9PVA",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Drive URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 0AMXTKI5ZSiM7Uk9PVA",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Drive ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Use Domain Admin Access",
          "name": "useDomainAdminAccess",
          "type": "boolean",
          "default": false,
          "description": "Whether to issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "list"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "returnAll": [
            false
          ],
          "resource": [
            "drive"
          ],
          "operation": [
            "list"
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 200
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Query",
          "name": "q",
          "type": "string",
          "default": "",
          "description": "Query string for searching shared drives. See the <a href=\"https://developers.google.com/drive/api/v3/search-shareddrives\">\"Search for shared drives\"</a> guide for supported syntax."
        },
        {
          "displayName": "Use Domain Admin Access",
          "name": "useDomainAdminAccess",
          "type": "boolean",
          "default": false,
          "description": "Whether to issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "list"
          ]
        }
      }
    },
    {
      "displayName": "Shared Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The shared drive to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "update"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Drive",
          "name": "list",
          "type": "list",
          "placeholder": "Select a shared drive...",
          "typeOptions": {
            "searchListMethod": "driveSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/drive/u/1/folders/0AIjtcbwnjtcbwn9PVA",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Drive URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 0AMXTKI5ZSiM7Uk9PVA",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Drive ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Update Fields",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Color RGB",
          "name": "colorRgb",
          "type": "color",
          "default": "",
          "description": "The color of this shared drive as an RGB hex string"
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "The updated name of the shared drive"
        },
        {
          "displayName": "Restrictions",
          "name": "restrictions",
          "type": "collection",
          "placeholder": "Add Field",
          "default": {},
          "options": [
            {
              "displayName": "Admin Managed Restrictions",
              "name": "adminManagedRestrictions",
              "type": "boolean",
              "default": false,
              "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive."
            },
            {
              "displayName": "Copy Requires Writer Permission",
              "name": "copyRequiresWriterPermission",
              "type": "boolean",
              "default": false,
              "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive."
            },
            {
              "displayName": "Domain Users Only",
              "name": "domainUsersOnly",
              "type": "boolean",
              "default": false,
              "description": "Whether access to this shared drive and items inside this shared drive is restricted to users of the domain to which this shared drive belongs. This restriction may be overridden by other sharing policies controlled outside of this shared drive."
            },
            {
              "displayName": "Drive Members Only",
              "name": "driveMembersOnly",
              "type": "boolean",
              "default": false,
              "description": "Whether access to items inside this shared drive is restricted to its members"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "drive"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Copy",
          "value": "copy",
          "description": "Create a copy of an existing file",
          "action": "Copy file"
        },
        {
          "name": "Create From Text",
          "value": "createFromText",
          "description": "Create a file from a provided text",
          "action": "Create file from text"
        },
        {
          "name": "Delete",
          "value": "deleteFile",
          "description": "Permanently delete a file",
          "action": "Delete a file"
        },
        {
          "name": "Download",
          "value": "download",
          "description": "Download a file",
          "action": "Download file"
        },
        {
          "name": "Move",
          "value": "move",
          "description": "Move a file to another folder",
          "action": "Move file"
        },
        {
          "name": "Share",
          "value": "share",
          "description": "Add sharing permissions to a file",
          "action": "Share file"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a file",
          "action": "Update file"
        },
        {
          "name": "Upload",
          "value": "upload",
          "description": "Upload an existing file to Google Drive",
          "action": "Upload file"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to copy",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      },
      "modes": [
        {
          "displayName": "File",
          "name": "list",
          "type": "list",
          "placeholder": "Select a file...",
          "typeOptions": {
            "searchListMethod": "fileSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/file/d/1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A/edit",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive File URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive File ID"
              }
            }
          ],
          "url": "=https://drive.google.com/file/d/{{$value}}/view"
        }
      ]
    },
    {
      "displayName": "File Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the new file. If not set, “Copy of {original file name}” will be used.",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Copy In The Same Folder",
      "name": "sameFolder",
      "type": "boolean",
      "default": true,
      "description": "Whether to copy the file in the same folder as the original file",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Parent Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "My Drive"
      },
      "description": "The drive where to save the copied file",
      "required": true,
      "displayOptions": {
        "show": {
          "sameFolder": [
            false
          ],
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Drive",
          "name": "list",
          "type": "list",
          "placeholder": "Select a drive...",
          "typeOptions": {
            "searchListMethod": "driveSearchWithDefault",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "https://drive.google.com/drive/folders/0AaaaaAAAAAAAaa",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Drive URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "hint": "The ID of the shared drive",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Drive ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Parent Folder",
      "name": "folderId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "root",
        "cachedResultName": "/ (Root folder)"
      },
      "description": "The folder where to save the copied file",
      "required": true,
      "displayOptions": {
        "show": {
          "sameFolder": [
            false
          ],
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Folder",
          "name": "list",
          "type": "list",
          "placeholder": "Select a folder...",
          "typeOptions": {
            "searchListMethod": "folderSearchWithDefault",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/drive/folders/1Tx9WHbA3wBpPB4C_HcoZDH9WZFWYxAMU",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Folder URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Folder ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Copy Requires Writer Permission",
          "name": "copyRequiresWriterPermission",
          "type": "boolean",
          "default": false,
          "description": "Whether the options to copy, print, or download this file, should be disabled for readers and commenters"
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "A short description of the file"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "deleteFile"
          ]
        }
      },
      "modes": [
        {
          "displayName": "File",
          "name": "list",
          "type": "list",
          "placeholder": "Select a file...",
          "typeOptions": {
            "searchListMethod": "fileSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/file/d/1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A/edit",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive File URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive File ID"
              }
            }
          ],
          "url": "=https://drive.google.com/file/d/{{$value}}/view"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Delete Permanently",
          "name": "deletePermanently",
          "type": "boolean",
          "default": false,
          "description": "Whether to delete the file immediately. If false, the file will be moved to the trash."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "deleteFile"
          ]
        }
      }
    },
    {
      "displayName": "File Content",
      "name": "content",
      "type": "string",
      "default": "",
      "description": "The text to create the file with",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "createFromText"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "File Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the file you want to create. If not specified, 'Untitled' will be used.",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "createFromText"
          ]
        }
      }
    },
    {
      "displayName": "Parent Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "My Drive"
      },
      "description": "The drive where to create the new file",
      "required": false,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "createFromText"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Drive",
          "name": "list",
          "type": "list",
          "placeholder": "Select a drive...",
          "typeOptions": {
            "searchListMethod": "driveSearchWithDefault",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "https://drive.google.com/drive/folders/0AaaaaAAAAAAAaa",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Drive URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "hint": "The ID of the shared drive",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Drive ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Parent Folder",
      "name": "folderId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "root",
        "cachedResultName": "/ (Root folder)"
      },
      "description": "The folder where to create the new file",
      "required": false,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "createFromText"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Folder",
          "name": "list",
          "type": "list",
          "placeholder": "Select a folder...",
          "typeOptions": {
            "searchListMethod": "folderSearchWithDefault",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/drive/folders/1Tx9WHbA3wBpPB4C_HcoZDH9WZFWYxAMU",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Folder URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Folder ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "APP Properties",
          "name": "appPropertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are private to the requesting app",
          "options": [
            {
              "name": "appPropertyValues",
              "displayName": "APP Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Properties",
          "name": "propertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are visible to all apps",
          "options": [
            {
              "name": "propertyValues",
              "displayName": "Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Keep Revision Forever",
          "name": "keepRevisionForever",
          "type": "boolean",
          "default": false,
          "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions."
        },
        {
          "displayName": "OCR Language",
          "name": "ocrLanguage",
          "type": "string",
          "default": "",
          "placeholder": "e.g. en",
          "description": "A language hint for OCR processing during image import (ISO 639-1 code)"
        },
        {
          "displayName": "Use Content As Indexable Text",
          "name": "useContentAsIndexableText",
          "type": "boolean",
          "default": false,
          "description": "Whether to use the uploaded content as indexable text"
        },
        {
          "displayName": "Convert to Google Document",
          "name": "convertToGoogleDocument",
          "type": "boolean",
          "default": false,
          "description": "Whether to create a Google Document (instead of the .txt default format)",
          "hint": "Google Docs API has to be enabled in the <a href=\"https://console.developers.google.com/apis/library/docs.googleapis.com\" target=\"_blank\">Google API Console</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "createFromText"
          ]
        }
      }
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to download",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "download"
          ]
        }
      },
      "modes": [
        {
          "displayName": "File",
          "name": "list",
          "type": "list",
          "placeholder": "Select a file...",
          "typeOptions": {
            "searchListMethod": "fileSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/file/d/1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A/edit",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive File URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive File ID"
              }
            }
          ],
          "url": "=https://drive.google.com/file/d/{{$value}}/view"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Put Output File in Field",
          "name": "binaryPropertyName",
          "type": "string",
          "placeholder": "e.g. data",
          "default": "data",
          "description": "Use this field name in the following nodes, to use the binary file data",
          "hint": "The name of the output binary field to put the file in"
        },
        {
          "displayName": "Google File Conversion",
          "name": "googleFileConversion",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": false
          },
          "default": {},
          "placeholder": "Add Conversion",
          "options": [
            {
              "displayName": "Conversion",
              "name": "conversion",
              "values": [
                {
                  "displayName": "Google Docs",
                  "name": "docsToFormat",
                  "type": "options",
                  "options": [
                    {
                      "name": "HTML",
                      "value": "text/html"
                    },
                    {
                      "name": "MS Word Document",
                      "value": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                    },
                    {
                      "name": "Open Office Document",
                      "value": "application/vnd.oasis.opendocument.text"
                    },
                    {
                      "name": "PDF",
                      "value": "application/pdf"
                    },
                    {
                      "name": "Rich Text (rtf)",
                      "value": "application/rtf"
                    },
                    {
                      "name": "Text (txt)",
                      "value": "text/plain"
                    }
                  ],
                  "default": "text/html",
                  "description": "Format used to export when downloading Google Docs files"
                },
                {
                  "displayName": "Google Drawings",
                  "name": "drawingsToFormat",
                  "type": "options",
                  "options": [
                    {
                      "name": "JPEG",
                      "value": "image/jpeg"
                    },
                    {
                      "name": "PDF",
                      "value": "application/pdf"
                    },
                    {
                      "name": "PNG",
                      "value": "image/png"
                    },
                    {
                      "name": "SVG",
                      "value": "image/svg+xml"
                    }
                  ],
                  "default": "image/jpeg",
                  "description": "Format used to export when downloading Google Drawings files"
                },
                {
                  "displayName": "Google Slides",
                  "name": "slidesToFormat",
                  "type": "options",
                  "options": [
                    {
                      "name": "MS PowerPoint",
                      "value": "application/vnd.openxmlformats-officedocument.presentationml.presentation"
                    },
                    {
                      "name": "OpenOffice Presentation",
                      "value": "application/vnd.oasis.opendocument.presentation"
                    },
                    {
                      "name": "PDF",
                      "value": "application/pdf"
                    }
                  ],
                  "default": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
                  "description": "Format used to export when downloading Google Slides files"
                },
                {
                  "displayName": "Google Sheets",
                  "name": "sheetsToFormat",
                  "type": "options",
                  "options": [
                    {
                      "name": "CSV",
                      "value": "text/csv"
                    },
                    {
                      "name": "MS Excel",
                      "value": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                    },
                    {
                      "name": "Open Office Sheet",
                      "value": "application/vnd.oasis.opendocument.spreadsheet"
                    },
                    {
                      "name": "PDF",
                      "value": "application/pdf"
                    }
                  ],
                  "default": "text/csv",
                  "description": "Format used to export when downloading Google Sheets files"
                }
              ]
            }
          ]
        },
        {
          "displayName": "File Name",
          "name": "fileName",
          "type": "string",
          "default": "",
          "description": "File name. Ex: data.pdf."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "download"
          ]
        }
      }
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to move",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "move"
          ]
        }
      },
      "modes": [
        {
          "displayName": "File",
          "name": "list",
          "type": "list",
          "placeholder": "Select a file...",
          "typeOptions": {
            "searchListMethod": "fileSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/file/d/1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A/edit",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive File URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive File ID"
              }
            }
          ],
          "url": "=https://drive.google.com/file/d/{{$value}}/view"
        }
      ]
    },
    {
      "displayName": "Parent Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "My Drive"
      },
      "description": "The drive where to move the file",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "move"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Drive",
          "name": "list",
          "type": "list",
          "placeholder": "Select a drive...",
          "typeOptions": {
            "searchListMethod": "driveSearchWithDefault",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "https://drive.google.com/drive/folders/0AaaaaAAAAAAAaa",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Drive URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "hint": "The ID of the shared drive",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Drive ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Parent Folder",
      "name": "folderId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "root",
        "cachedResultName": "/ (Root folder)"
      },
      "description": "The folder where to move the file",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "move"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Folder",
          "name": "list",
          "type": "list",
          "placeholder": "Select a folder...",
          "typeOptions": {
            "searchListMethod": "folderSearchWithDefault",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/drive/folders/1Tx9WHbA3wBpPB4C_HcoZDH9WZFWYxAMU",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Folder URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Folder ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to share",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "share"
          ]
        }
      },
      "modes": [
        {
          "displayName": "File",
          "name": "list",
          "type": "list",
          "placeholder": "Select a file...",
          "typeOptions": {
            "searchListMethod": "fileSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/file/d/1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A/edit",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive File URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive File ID"
              }
            }
          ],
          "url": "=https://drive.google.com/file/d/{{$value}}/view"
        }
      ]
    },
    {
      "displayName": "Permissions",
      "name": "permissionsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Permission",
          "name": "permissionsValues",
          "values": [
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Defines what users can do with the file or folder",
              "options": [
                {
                  "name": "Commenter",
                  "value": "commenter"
                },
                {
                  "name": "File Organizer",
                  "value": "fileOrganizer"
                },
                {
                  "name": "Organizer",
                  "value": "organizer"
                },
                {
                  "name": "Owner",
                  "value": "owner"
                },
                {
                  "name": "Reader",
                  "value": "reader"
                },
                {
                  "name": "Writer",
                  "value": "writer"
                }
              ],
              "default": ""
            },
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "User",
                  "value": "user"
                },
                {
                  "name": "Group",
                  "value": "group"
                },
                {
                  "name": "Domain",
                  "value": "domain"
                },
                {
                  "name": "Anyone",
                  "value": "anyone"
                }
              ],
              "default": "",
              "description": "The scope of the permission. A permission with type=user applies to a specific user whereas a permission with type=domain applies to everyone in a specific domain."
            },
            {
              "displayName": "Email Address",
              "name": "emailAddress",
              "type": "string",
              "displayOptions": {
                "show": {
                  "type": [
                    "user",
                    "group"
                  ]
                }
              },
              "placeholder": "“e.g. name@mail.com",
              "default": "",
              "description": "The email address of the user or group to which this permission refers"
            },
            {
              "displayName": "Domain",
              "name": "domain",
              "type": "string",
              "displayOptions": {
                "show": {
                  "type": [
                    "domain"
                  ]
                }
              },
              "placeholder": "e.g. mycompany.com",
              "default": "",
              "description": "The domain to which this permission refers"
            },
            {
              "displayName": "Allow File Discovery",
              "name": "allowFileDiscovery",
              "type": "boolean",
              "displayOptions": {
                "show": {
                  "type": [
                    "domain",
                    "anyone"
                  ]
                }
              },
              "default": false,
              "description": "Whether to allow the file to be discovered through search"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "share"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": false
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Email Message",
          "name": "emailMessage",
          "type": "string",
          "default": "",
          "description": "A plain text custom message to include in the notification email",
          "typeOptions": {
            "rows": 2
          }
        },
        {
          "displayName": "Move To New Owners Root",
          "name": "moveToNewOwnersRoot",
          "type": "boolean",
          "default": false,
          "description": "<p>This parameter only takes effect if the item is not in a shared drive and the request is attempting to transfer the ownership of the item.</p><p>When set to true, the item is moved to the new owner's My Drive root folder and all prior parents removed.</p>"
        },
        {
          "displayName": "Send Notification Email",
          "name": "sendNotificationEmail",
          "type": "boolean",
          "default": false,
          "description": "Whether to send a notification email when sharing to users or groups"
        },
        {
          "displayName": "Transfer Ownership",
          "name": "transferOwnership",
          "type": "boolean",
          "default": false,
          "description": "Whether to transfer ownership to the specified user and downgrade the current owner to a writer"
        },
        {
          "displayName": "Use Domain Admin Access",
          "name": "useDomainAdminAccess",
          "type": "boolean",
          "default": false,
          "description": "Whether to perform the operation as domain administrator, i.e. if you are an administrator of the domain to which the shared drive belongs, you will be granted access automatically."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "share"
          ]
        }
      }
    },
    {
      "displayName": "File to Update",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "update"
          ]
        }
      },
      "modes": [
        {
          "displayName": "File",
          "name": "list",
          "type": "list",
          "placeholder": "Select a file...",
          "typeOptions": {
            "searchListMethod": "fileSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/file/d/1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A/edit",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive File URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive File ID"
              }
            }
          ],
          "url": "=https://drive.google.com/file/d/{{$value}}/view"
        }
      ]
    },
    {
      "displayName": "Change File Content",
      "name": "changeFileContent",
      "type": "boolean",
      "default": false,
      "description": "Whether to send a new binary data to update the file",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "inputDataFieldName",
      "type": "string",
      "default": "data",
      "description": "Find the name of input field containing the binary data to update the file in the Input panel on the left, in the Binary tab",
      "displayOptions": {
        "show": {
          "changeFileContent": [
            true
          ],
          "resource": [
            "file"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "New Updated File Name",
      "name": "newUpdatedFileName",
      "type": "string",
      "default": "",
      "description": "If not specified, the file name will not be changed",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "APP Properties",
          "name": "appPropertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are private to the requesting app",
          "options": [
            {
              "name": "appPropertyValues",
              "displayName": "APP Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Properties",
          "name": "propertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are visible to all apps",
          "options": [
            {
              "name": "propertyValues",
              "displayName": "Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Keep Revision Forever",
          "name": "keepRevisionForever",
          "type": "boolean",
          "default": false,
          "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions."
        },
        {
          "displayName": "OCR Language",
          "name": "ocrLanguage",
          "type": "string",
          "default": "",
          "placeholder": "e.g. en",
          "description": "A language hint for OCR processing during image import (ISO 639-1 code)"
        },
        {
          "displayName": "Use Content As Indexable Text",
          "name": "useContentAsIndexableText",
          "type": "boolean",
          "default": false,
          "description": "Whether to use the uploaded content as indexable text"
        },
        {
          "displayName": "Move to Trash",
          "name": "trashed",
          "type": "boolean",
          "default": false,
          "description": "Whether to move a file to the trash. Only the owner may trash a file."
        },
        {
          "displayName": "Return Fields",
          "name": "fields",
          "type": "multiOptions",
          "options": [
            {
              "name": "[All]",
              "value": "*",
              "description": "All fields"
            },
            {
              "name": "explicitlyTrashed",
              "value": "explicitlyTrashed"
            },
            {
              "name": "exportLinks",
              "value": "exportLinks"
            },
            {
              "name": "hasThumbnail",
              "value": "hasThumbnail"
            },
            {
              "name": "iconLink",
              "value": "iconLink"
            },
            {
              "name": "ID",
              "value": "id"
            },
            {
              "name": "Kind",
              "value": "kind"
            },
            {
              "name": "mimeType",
              "value": "mimeType"
            },
            {
              "name": "Name",
              "value": "name"
            },
            {
              "name": "Permissions",
              "value": "permissions"
            },
            {
              "name": "Shared",
              "value": "shared"
            },
            {
              "name": "Spaces",
              "value": "spaces"
            },
            {
              "name": "Starred",
              "value": "starred"
            },
            {
              "name": "thumbnailLink",
              "value": "thumbnailLink"
            },
            {
              "name": "Trashed",
              "value": "trashed"
            },
            {
              "name": "Version",
              "value": "version"
            },
            {
              "name": "webViewLink",
              "value": "webViewLink"
            }
          ],
          "default": [],
          "description": "The fields to return"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "inputDataFieldName",
      "type": "string",
      "default": "data",
      "description": "Find the name of input field containing the binary data to update the file in the Input panel on the left, in the Binary tab",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "File Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "If not specified, the original file name will be used",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "Parent Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "My Drive"
      },
      "description": "The drive where to upload the file",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Drive",
          "name": "list",
          "type": "list",
          "placeholder": "Select a drive...",
          "typeOptions": {
            "searchListMethod": "driveSearchWithDefault",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "https://drive.google.com/drive/folders/0AaaaaAAAAAAAaa",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Drive URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "hint": "The ID of the shared drive",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Drive ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Parent Folder",
      "name": "folderId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "root",
        "cachedResultName": "/ (Root folder)"
      },
      "description": "The folder where to upload the file",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Folder",
          "name": "list",
          "type": "list",
          "placeholder": "Select a folder...",
          "typeOptions": {
            "searchListMethod": "folderSearchWithDefault",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/drive/folders/1Tx9WHbA3wBpPB4C_HcoZDH9WZFWYxAMU",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Folder URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Folder ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "APP Properties",
          "name": "appPropertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are private to the requesting app",
          "options": [
            {
              "name": "appPropertyValues",
              "displayName": "APP Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Properties",
          "name": "propertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are visible to all apps",
          "options": [
            {
              "name": "propertyValues",
              "displayName": "Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Keep Revision Forever",
          "name": "keepRevisionForever",
          "type": "boolean",
          "default": false,
          "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions."
        },
        {
          "displayName": "OCR Language",
          "name": "ocrLanguage",
          "type": "string",
          "default": "",
          "placeholder": "e.g. en",
          "description": "A language hint for OCR processing during image import (ISO 639-1 code)"
        },
        {
          "displayName": "Use Content As Indexable Text",
          "name": "useContentAsIndexableText",
          "type": "boolean",
          "default": false,
          "description": "Whether to use the uploaded content as indexable text"
        },
        {
          "displayName": "Simplify Output",
          "name": "simplifyOutput",
          "type": "boolean",
          "default": true,
          "description": "Whether to return a simplified version of the response instead of all fields"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "description": "Search or list files and folders",
          "action": "Search files and folders"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "fileFolder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Search Method",
      "name": "searchMethod",
      "type": "options",
      "default": "name",
      "description": "Whether to search for the file/folder name or use a query string",
      "options": [
        {
          "name": "Search File/Folder Name",
          "value": "name"
        },
        {
          "name": "Advanced Search",
          "value": "query"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Search Query",
      "name": "queryString",
      "type": "string",
      "default": "",
      "description": "The name of the file or folder to search for. Returns also files and folders whose names partially match this search term.",
      "displayOptions": {
        "show": {
          "searchMethod": [
            "name"
          ],
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Query String",
      "name": "queryString",
      "type": "string",
      "default": "",
      "description": "Use the Google query strings syntax to search for a specific set of files or folders. <a href=\"https://developers.google.com/drive/api/v3/search-files\" target=\"_blank\">Learn more</a>.",
      "displayOptions": {
        "show": {
          "searchMethod": [
            "query"
          ],
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "returnAll": [
            false
          ],
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Filter",
      "name": "filter",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Drive",
          "name": "driveId",
          "type": "resourceLocator",
          "default": {
            "mode": "list",
            "value": "My Drive"
          },
          "required": false,
          "modes": [
            {
              "displayName": "Drive",
              "name": "list",
              "type": "list",
              "placeholder": "Select a drive...",
              "typeOptions": {
                "searchListMethod": "driveSearchWithDefault",
                "searchable": true
              }
            },
            {
              "displayName": "Link",
              "name": "url",
              "type": "string",
              "placeholder": "https://drive.google.com/drive/folders/0AaaaaAAAAAAAaa",
              "extractValue": {
                "type": "regex",
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
              },
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                    "errorMessage": "Not a valid Google Drive Drive URL"
                  }
                }
              ]
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "hint": "The ID of the shared drive",
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "[a-zA-Z0-9\\-_]{2,}",
                    "errorMessage": "Not a valid Google Drive Drive ID"
                  }
                }
              ],
              "url": "=https://drive.google.com/drive/folders/{{$value}}"
            }
          ],
          "description": "The drive you want to search in. By default, the personal \"My Drive\" is used."
        },
        {
          "displayName": "Folder",
          "name": "folderId",
          "type": "resourceLocator",
          "default": {
            "mode": "list",
            "value": "root",
            "cachedResultName": "/ (Root folder)"
          },
          "required": false,
          "modes": [
            {
              "displayName": "Folder",
              "name": "list",
              "type": "list",
              "placeholder": "Select a folder...",
              "typeOptions": {
                "searchListMethod": "folderSearchWithDefault",
                "searchable": true
              }
            },
            {
              "displayName": "Link",
              "name": "url",
              "type": "string",
              "placeholder": "e.g. https://drive.google.com/drive/folders/1Tx9WHbA3wBpPB4C_HcoZDH9WZFWYxAMU",
              "extractValue": {
                "type": "regex",
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
              },
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                    "errorMessage": "Not a valid Google Drive Folder URL"
                  }
                }
              ]
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "[a-zA-Z0-9\\-_]{2,}",
                    "errorMessage": "Not a valid Google Drive Folder ID"
                  }
                }
              ],
              "url": "=https://drive.google.com/drive/folders/{{$value}}"
            }
          ],
          "description": "The folder you want to search in. By default, the root folder of the drive is used. If you select a folder other than the root folder, only the direct children will be included."
        },
        {
          "displayName": "What to Search",
          "name": "whatToSearch",
          "type": "options",
          "default": "all",
          "options": [
            {
              "name": "Files and Folders",
              "value": "all"
            },
            {
              "name": "Files",
              "value": "files"
            },
            {
              "name": "Folders",
              "value": "folders"
            }
          ]
        },
        {
          "displayName": "File Types",
          "name": "fileTypes",
          "type": "multiOptions",
          "default": [],
          "description": "Return only items corresponding to the selected MIME types",
          "options": [
            {
              "name": "All",
              "value": "*",
              "description": "Return all file types"
            },
            {
              "name": "3rd Party Shortcut",
              "value": "application/vnd.google-apps.drive-sdk"
            },
            {
              "name": "Audio",
              "value": "application/vnd.google-apps.audio"
            },
            {
              "name": "Folder",
              "value": "application/vnd.google-apps.folder"
            },
            {
              "name": "Google Apps Scripts",
              "value": "application/vnd.google-apps.script"
            },
            {
              "name": "Google Docs",
              "value": "application/vnd.google-apps.document"
            },
            {
              "name": "Google Drawing",
              "value": "application/vnd.google-apps.drawing"
            },
            {
              "name": "Google Forms",
              "value": "application/vnd.google-apps.form"
            },
            {
              "name": "Google Fusion Tables",
              "value": "application/vnd.google-apps.fusiontable"
            },
            {
              "name": "Google My Maps",
              "value": "application/vnd.google-apps.map"
            },
            {
              "name": "Google Sheets",
              "value": "application/vnd.google-apps.spreadsheet"
            },
            {
              "name": "Google Sites",
              "value": "application/vnd.google-apps.sites"
            },
            {
              "name": "Google Slides",
              "value": "application/vnd.google-apps.presentation"
            },
            {
              "name": "Photo",
              "value": "application/vnd.google-apps.photo"
            },
            {
              "name": "Unknown",
              "value": "application/vnd.google-apps.unknown"
            },
            {
              "name": "Video",
              "value": "application/vnd.google-apps.video"
            }
          ],
          "displayOptions": {
            "show": {
              "whatToSearch": [
                "all"
              ]
            }
          }
        },
        {
          "displayName": "File Types",
          "name": "fileTypes",
          "type": "multiOptions",
          "default": [],
          "description": "Return only items corresponding to the selected MIME types",
          "options": [
            {
              "name": "All",
              "value": "*",
              "description": "Return all file types"
            },
            {
              "name": "3rd Party Shortcut",
              "value": "application/vnd.google-apps.drive-sdk"
            },
            {
              "name": "Audio",
              "value": "application/vnd.google-apps.audio"
            },
            {
              "name": "Google Apps Scripts",
              "value": "application/vnd.google-apps.script"
            },
            {
              "name": "Google Docs",
              "value": "application/vnd.google-apps.document"
            },
            {
              "name": "Google Drawing",
              "value": "application/vnd.google-apps.drawing"
            },
            {
              "name": "Google Forms",
              "value": "application/vnd.google-apps.form"
            },
            {
              "name": "Google Fusion Tables",
              "value": "application/vnd.google-apps.fusiontable"
            },
            {
              "name": "Google My Maps",
              "value": "application/vnd.google-apps.map"
            },
            {
              "name": "Google Sheets",
              "value": "application/vnd.google-apps.spreadsheet"
            },
            {
              "name": "Google Sites",
              "value": "application/vnd.google-apps.sites"
            },
            {
              "name": "Google Slides",
              "value": "application/vnd.google-apps.presentation"
            },
            {
              "name": "Photo",
              "value": "application/vnd.google-apps.photo"
            },
            {
              "name": "Unknown",
              "value": "application/vnd.google-apps.unknown"
            },
            {
              "name": "Video",
              "value": "application/vnd.google-apps.video"
            }
          ],
          "displayOptions": {
            "show": {
              "whatToSearch": [
                "files"
              ]
            }
          }
        },
        {
          "displayName": "Include Trashed Items",
          "name": "includeTrashed",
          "type": "boolean",
          "default": false,
          "description": "Whether to return also items in the Drive's bin"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "multiOptions",
          "options": [
            {
              "name": "*",
              "value": "*",
              "description": "All fields"
            },
            {
              "name": "explicitlyTrashed",
              "value": "explicitlyTrashed"
            },
            {
              "name": "exportLinks",
              "value": "exportLinks"
            },
            {
              "name": "hasThumbnail",
              "value": "hasThumbnail"
            },
            {
              "name": "iconLink",
              "value": "iconLink"
            },
            {
              "name": "ID",
              "value": "id"
            },
            {
              "name": "Kind",
              "value": "kind"
            },
            {
              "name": "mimeType",
              "value": "mimeType"
            },
            {
              "name": "Name",
              "value": "name"
            },
            {
              "name": "Permissions",
              "value": "permissions"
            },
            {
              "name": "Shared",
              "value": "shared"
            },
            {
              "name": "Spaces",
              "value": "spaces"
            },
            {
              "name": "Starred",
              "value": "starred"
            },
            {
              "name": "thumbnailLink",
              "value": "thumbnailLink"
            },
            {
              "name": "Trashed",
              "value": "trashed"
            },
            {
              "name": "Version",
              "value": "version"
            },
            {
              "name": "webViewLink",
              "value": "webViewLink"
            }
          ],
          "default": [],
          "description": "The fields to return"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a folder",
          "action": "Create folder"
        },
        {
          "name": "Delete",
          "value": "deleteFolder",
          "description": "Permanently delete a folder",
          "action": "Delete folder"
        },
        {
          "name": "Share",
          "value": "share",
          "description": "Add sharing permissions to a folder",
          "action": "Share folder"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Folder Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the new folder. If not set, 'Untitled' will be used.",
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Parent Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "My Drive"
      },
      "description": "The drive where to create the new folder",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Drive",
          "name": "list",
          "type": "list",
          "placeholder": "Select a drive...",
          "typeOptions": {
            "searchListMethod": "driveSearchWithDefault",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "https://drive.google.com/drive/folders/0AaaaaAAAAAAAaa",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Drive URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "hint": "The ID of the shared drive",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Drive ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Parent Folder",
      "name": "folderId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "root",
        "cachedResultName": "/ (Root folder)"
      },
      "description": "The parent folder where to create the new folder",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Folder",
          "name": "list",
          "type": "list",
          "placeholder": "Select a folder...",
          "typeOptions": {
            "searchListMethod": "folderSearchWithDefault",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/drive/folders/1Tx9WHbA3wBpPB4C_HcoZDH9WZFWYxAMU",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Folder URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Folder ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Simplify Output",
          "name": "simplifyOutput",
          "type": "boolean",
          "default": true,
          "description": "Whether to return a simplified version of the response instead of all fields"
        },
        {
          "displayName": "Folder Color",
          "name": "folderColorRgb",
          "type": "color",
          "default": "",
          "description": "The color of the folder as an RGB hex string. If an unsupported color is specified, the closest color in the palette will be used instead."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Folder",
      "name": "folderNoRootId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The folder to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "deleteFolder"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Folder",
          "name": "list",
          "type": "list",
          "placeholder": "Select a folder...",
          "typeOptions": {
            "searchListMethod": "folderSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/drive/folders/1Tx9WHbA3wBpPB4C_HcoZDH9WZFWYxAMU",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Folder URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Folder ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Delete Permanently",
          "name": "deletePermanently",
          "type": "boolean",
          "default": false,
          "description": "Whether to delete the folder immediately. If false, the folder will be moved to the trash."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "deleteFolder"
          ]
        }
      }
    },
    {
      "displayName": "Folder",
      "name": "folderNoRootId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The folder to share",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "share"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Folder",
          "name": "list",
          "type": "list",
          "placeholder": "Select a folder...",
          "typeOptions": {
            "searchListMethod": "folderSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "e.g. https://drive.google.com/drive/folders/1Tx9WHbA3wBpPB4C_HcoZDH9WZFWYxAMU",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Folder URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Folder ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Permissions",
      "name": "permissionsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Permission",
          "name": "permissionsValues",
          "values": [
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Defines what users can do with the file or folder",
              "options": [
                {
                  "name": "Commenter",
                  "value": "commenter"
                },
                {
                  "name": "File Organizer",
                  "value": "fileOrganizer"
                },
                {
                  "name": "Organizer",
                  "value": "organizer"
                },
                {
                  "name": "Owner",
                  "value": "owner"
                },
                {
                  "name": "Reader",
                  "value": "reader"
                },
                {
                  "name": "Writer",
                  "value": "writer"
                }
              ],
              "default": ""
            },
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "User",
                  "value": "user"
                },
                {
                  "name": "Group",
                  "value": "group"
                },
                {
                  "name": "Domain",
                  "value": "domain"
                },
                {
                  "name": "Anyone",
                  "value": "anyone"
                }
              ],
              "default": "",
              "description": "The scope of the permission. A permission with type=user applies to a specific user whereas a permission with type=domain applies to everyone in a specific domain."
            },
            {
              "displayName": "Email Address",
              "name": "emailAddress",
              "type": "string",
              "displayOptions": {
                "show": {
                  "type": [
                    "user",
                    "group"
                  ]
                }
              },
              "placeholder": "“e.g. name@mail.com",
              "default": "",
              "description": "The email address of the user or group to which this permission refers"
            },
            {
              "displayName": "Domain",
              "name": "domain",
              "type": "string",
              "displayOptions": {
                "show": {
                  "type": [
                    "domain"
                  ]
                }
              },
              "placeholder": "e.g. mycompany.com",
              "default": "",
              "description": "The domain to which this permission refers"
            },
            {
              "displayName": "Allow File Discovery",
              "name": "allowFileDiscovery",
              "type": "boolean",
              "displayOptions": {
                "show": {
                  "type": [
                    "domain",
                    "anyone"
                  ]
                }
              },
              "default": false,
              "description": "Whether to allow the file to be discovered through search"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "share"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": false
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Email Message",
          "name": "emailMessage",
          "type": "string",
          "default": "",
          "description": "A plain text custom message to include in the notification email",
          "typeOptions": {
            "rows": 2
          }
        },
        {
          "displayName": "Move To New Owners Root",
          "name": "moveToNewOwnersRoot",
          "type": "boolean",
          "default": false,
          "description": "<p>This parameter only takes effect if the item is not in a shared drive and the request is attempting to transfer the ownership of the item.</p><p>When set to true, the item is moved to the new owner's My Drive root folder and all prior parents removed.</p>"
        },
        {
          "displayName": "Send Notification Email",
          "name": "sendNotificationEmail",
          "type": "boolean",
          "default": false,
          "description": "Whether to send a notification email when sharing to users or groups"
        },
        {
          "displayName": "Transfer Ownership",
          "name": "transferOwnership",
          "type": "boolean",
          "default": false,
          "description": "Whether to transfer ownership to the specified user and downgrade the current owner to a writer"
        },
        {
          "displayName": "Use Domain Admin Access",
          "name": "useDomainAdminAccess",
          "type": "boolean",
          "default": false,
          "description": "Whether to perform the operation as domain administrator, i.e. if you are an administrator of the domain to which the shared drive belongs, you will be granted access automatically."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "share"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a shared drive"
    },
    {
      "operation": "deleteDrive",
      "name": "Delete",
      "description": "Permanently delete a shared drive"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a shared drive"
    },
    {
      "operation": "list",
      "name": "Get Many",
      "description": "Get the list of shared drives"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a shared drive"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleDriveOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleDriveTrigger
package_name: n8n-nodes-base
display_name: Google Drive Trigger
description: Starts the workflow when Google Drive events occur
category: trigger
development_style: programmatic
version: 1
operations: []
outputs:
  [
  "main"
  ]

updated_at: 2025-12-02 22:49:17
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Drive Trigger node documentation
  description: Learn how to use the Google Drive Trigger node in n8n. Follow technical documentation to integrate Google Drive Trigger node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google Drive Trigger node

  [Google Drive](https://drive.google.com){:target=_blank .external-link} is a file storage and synchronization service developed by Google. It allows users to store files on their servers, synchronize files across devices, and share files.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/google/index.md).
  ///

  ///  note  | Examples and templates
  For usage examples and templates to help you get started, refer to n8n's [Google Drive Trigger integrations](https://n8n.io/integrations/google-drive-trigger/){:target=_blank .external-link} page.
  ///

  /// note | Manual Executions vs. Activation
  On manual executions this node will return the last event matching its search criteria. If no event matches the criteria (for example because you are watching for files to be created but no files have been created so far), an error is thrown. Once saved and activated, the node will regularly check for any matching events and will trigger your workflow for each event found.
  ///

  ## Common issues

  For common questions or issues and suggested solutions, refer to [Common issues](/integrations/builtin/trigger-nodes/n8n-nodes-base.googledrivetrigger/common-issues.md).

properties_schema:
  [
    {
      "displayName": "Credential Type",
      "name": "authentication",
      "type": "options",
      "default": "oAuth2",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "oAuth2"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ]
    },
    {
      "displayName": "Trigger On",
      "name": "triggerOn",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Changes to a Specific File",
          "value": "specificFile"
        },
        {
          "name": "Changes Involving a Specific Folder",
          "value": "specificFolder"
        }
      ],
      "required": true
    },
    {
      "displayName": "File",
      "name": "fileToWatch",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "triggerOn": [
            "specificFile"
          ]
        }
      },
      "modes": [
        {
          "displayName": "File",
          "name": "list",
          "type": "list",
          "placeholder": "Select a file...",
          "typeOptions": {
            "searchListMethod": "fileSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "https://drive.google.com/file/d/1wroCSfK-hupQIYf_xzeoUEzOhvfTFH2P/edit",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive File URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive File ID"
              }
            }
          ],
          "url": "=https://drive.google.com/file/d/{{$value}}/view"
        }
      ]
    },
    {
      "displayName": "Watch For",
      "name": "event",
      "type": "options",
      "default": "fileUpdated",
      "description": "When to trigger this node",
      "options": [
        {
          "name": "File Updated",
          "value": "fileUpdated"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "triggerOn": [
            "specificFile"
          ]
        }
      }
    },
    {
      "displayName": "Folder",
      "name": "folderToWatch",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "triggerOn": [
            "specificFolder"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Folder",
          "name": "list",
          "type": "list",
          "placeholder": "Select a folder...",
          "typeOptions": {
            "searchListMethod": "folderSearch",
            "searchable": true
          }
        },
        {
          "displayName": "Link",
          "name": "url",
          "type": "string",
          "placeholder": "https://drive.google.com/drive/folders/1Tx9WHbA3wBpPB4C_HcoZDH9WZFWYxAMU",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                "errorMessage": "Not a valid Google Drive Folder URL"
              }
            }
          ]
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Drive Folder ID"
              }
            }
          ],
          "url": "=https://drive.google.com/drive/folders/{{$value}}"
        }
      ]
    },
    {
      "displayName": "Watch For",
      "name": "event",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "File Created",
          "value": "fileCreated",
          "description": "When a file is created in the watched folder"
        },
        {
          "name": "File Updated",
          "value": "fileUpdated",
          "description": "When a file is updated in the watched folder"
        },
        {
          "name": "Folder Created",
          "value": "folderCreated",
          "description": "When a folder is created in the watched folder"
        },
        {
          "name": "Folder Updated",
          "value": "folderUpdated",
          "description": "When a folder is updated in the watched folder"
        },
        {
          "name": "Watch Folder Updated",
          "value": "watchFolderUpdated",
          "description": "When the watched folder itself is modified"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "triggerOn": [
            "specificFolder"
          ]
        }
      }
    },
    {
      "displayName": "Changes within subfolders won't trigger this node",
      "name": "asas",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "triggerOn": [
            "specificFolder"
          ]
        },
        "hide": {
          "event": [
            "watchFolderUpdated"
          ]
        }
      }
    },
    {
      "displayName": "Drive To Watch",
      "name": "driveToWatch",
      "type": "options",
      "default": "root",
      "description": "The drive to monitor. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "triggerOn": [
            "anyFileFolder"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getDrives"
      }
    },
    {
      "displayName": "Watch For",
      "name": "event",
      "type": "options",
      "default": "fileCreated",
      "description": "When to trigger this node",
      "options": [
        {
          "name": "File Created",
          "value": "fileCreated",
          "description": "When a file is created in the watched drive"
        },
        {
          "name": "File Updated",
          "value": "fileUpdated",
          "description": "When a file is updated in the watched drive"
        },
        {
          "name": "Folder Created",
          "value": "folderCreated",
          "description": "When a folder is created in the watched drive"
        },
        {
          "name": "Folder Updated",
          "value": "folderUpdated",
          "description": "When a folder is updated in the watched drive"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "triggerOn": [
            "anyFileFolder"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "File Type",
          "name": "fileType",
          "type": "options",
          "options": [
            {
              "name": "[All]",
              "value": "all"
            },
            {
              "name": "Audio",
              "value": "application/vnd.google-apps.audio"
            },
            {
              "name": "Google Docs",
              "value": "application/vnd.google-apps.document"
            },
            {
              "name": "Google Drawings",
              "value": "application/vnd.google-apps.drawing"
            },
            {
              "name": "Google Slides",
              "value": "application/vnd.google-apps.presentation"
            },
            {
              "name": "Google Spreadsheets",
              "value": "application/vnd.google-apps.spreadsheet"
            },
            {
              "name": "Photos and Images",
              "value": "application/vnd.google-apps.photo"
            },
            {
              "name": "Videos",
              "value": "application/vnd.google-apps.video"
            }
          ],
          "default": "all",
          "description": "Triggers only when the file is this type"
        }
      ],
      "displayOptions": {
        "show": {
          "event": [
            "fileCreated",
            "fileUpdated"
          ]
        },
        "hide": {
          "triggerOn": [
            "specificFile"
          ]
        }
      }
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleDriveOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleFirebaseCloudFirestore
package_name: n8n-nodes-base
display_name: Google Cloud Firestore
description: Interact with Google Firebase - Cloud Firestore API
category: input
development_style: programmatic
version: 1.1
outputs:
  [
  "main"
  ]

updated_at: 2025-12-02 22:49:17
properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "googleFirebaseCloudFirestoreOAuth2Api",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "googleFirebaseCloudFirestoreOAuth2Api"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ]
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Collection",
          "value": "collection"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a document",
          "action": "Create a document"
        },
        {
          "name": "Create or Update",
          "value": "upsert",
          "description": "Create a new document, or update the current one if it already exists (upsert)",
          "action": "Create or update a document"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a document",
          "action": "Delete a document"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a document",
          "action": "Get a document"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many documents from a collection",
          "action": "Get many documents"
        },
        {
          "name": "Query",
          "value": "query",
          "description": "Runs a query against your documents",
          "action": "Query a document"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Project Name or ID",
      "name": "projectId",
      "type": "options",
      "default": "",
      "description": "As displayed in firebase console URL. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getProjects"
      }
    },
    {
      "displayName": "Database",
      "name": "database",
      "type": "string",
      "default": "(default)",
      "description": "Usually the provided default value will work",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Collection",
      "name": "collection",
      "type": "string",
      "default": "",
      "description": "Collection name",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Document ID",
      "name": "documentId",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Columns / Attributes",
      "name": "columns",
      "type": "string",
      "default": "",
      "description": "List of attributes to save",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Project Name or ID",
      "name": "projectId",
      "type": "options",
      "default": "",
      "description": "As displayed in firebase console URL. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "get"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getProjects"
      }
    },
    {
      "displayName": "Database",
      "name": "database",
      "type": "string",
      "default": "(default)",
      "description": "Usually the provided default value will work",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Collection",
      "name": "collection",
      "type": "string",
      "default": "",
      "description": "Collection name",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Document ID",
      "name": "documentId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Project Name or ID",
      "name": "projectId",
      "type": "options",
      "default": "",
      "description": "As displayed in firebase console URL. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "getAll"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getProjects"
      }
    },
    {
      "displayName": "Database",
      "name": "database",
      "type": "string",
      "default": "(default)",
      "description": "Usually the provided default value will work",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Collection",
      "name": "collection",
      "type": "string",
      "default": "",
      "description": "Collection name",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Simplify",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Project Name or ID",
      "name": "projectId",
      "type": "options",
      "default": "",
      "description": "As displayed in firebase console URL. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "delete"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getProjects"
      }
    },
    {
      "displayName": "Database",
      "name": "database",
      "type": "string",
      "default": "(default)",
      "description": "Usually the provided default value will work",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Collection",
      "name": "collection",
      "type": "string",
      "default": "",
      "description": "Collection name",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Document ID",
      "name": "documentId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Project Name or ID",
      "name": "projectId",
      "type": "options",
      "default": "",
      "description": "As displayed in firebase console URL. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "upsert"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getProjects"
      }
    },
    {
      "displayName": "Database",
      "name": "database",
      "type": "string",
      "default": "(default)",
      "description": "Usually the provided default value will work",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Collection",
      "name": "collection",
      "type": "string",
      "default": "",
      "description": "Collection name",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Update Key",
      "name": "updateKey",
      "type": "string",
      "default": "",
      "description": "Name of the field in an input item that contains the document ID",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Columns /Attributes",
      "name": "columns",
      "type": "string",
      "default": "",
      "description": "Columns to insert",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Project Name or ID",
      "name": "projectId",
      "type": "options",
      "default": "",
      "description": "As displayed in firebase console URL. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "query"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getProjects"
      }
    },
    {
      "displayName": "Database",
      "name": "database",
      "type": "string",
      "default": "(default)",
      "description": "Usually the provided default value will work",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "query"
          ]
        }
      }
    },
    {
      "displayName": "Query JSON",
      "name": "query",
      "type": "string",
      "default": "",
      "description": "JSON query to execute",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "query"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "query"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many root collections",
          "action": "Get many collections"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "collection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Project Name or ID",
      "name": "projectId",
      "type": "options",
      "default": "",
      "description": "As displayed in firebase console URL. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "collection"
          ],
          "operation": [
            "getAll"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getProjects"
      }
    },
    {
      "displayName": "Database",
      "name": "database",
      "type": "string",
      "default": "(default)",
      "description": "Usually the provided default value will work",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "collection"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "collection"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "collection"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a document"
    },
    {
      "operation": "upsert",
      "name": "Create or Update",
      "description": "Create a new document, or update the current one if it already exists (upsert)"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a document"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a document"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many documents from a collection"
    },
    {
      "operation": "query",
      "name": "Query",
      "description": "Runs a query against your documents"
    }
  ]

credentials_required:
  [
    {
      "name": "googleFirebaseCloudFirestoreOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "googleFirebaseCloudFirestoreOAuth2Api"
          ]
        }
      }
    },
    {
      "name": "googleApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleFirebaseRealtimeDatabase
package_name: n8n-nodes-base
display_name: Google Cloud Realtime Database
description: Interact with Google Firebase - Realtime Database API
category: input
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "googleFirebaseRealtimeDatabaseOAuth2Api"
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-12-02 22:49:17
properties_schema:
  [
    {
      "displayName": "Project Name or ID",
      "name": "projectId",
      "type": "options",
      "default": "",
      "description": "As displayed in firebase console URL. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "typeOptions": {
        "loadOptionsMethod": "getProjects"
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Write data to a database",
          "action": "Write data to a database"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete data from a database",
          "action": "Delete data from a database"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a record from a database",
          "action": "Get a record from a database"
        },
        {
          "name": "Push",
          "value": "push",
          "description": "Append to a list of data",
          "action": "Append to a list of data"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update item on a database",
          "action": "Update item in a database"
        }
      ],
      "required": true,
      "noDataExpression": true
    },
    {
      "displayName": "Object Path",
      "name": "path",
      "type": "string",
      "default": "",
      "description": "Object path on database. Do not append .json.",
      "required": true,
      "displayOptions": {
        "hide": {
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Object Path",
      "name": "path",
      "type": "string",
      "default": "",
      "description": "Object path on database. Do not append .json.",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Columns / Attributes",
      "name": "attributes",
      "type": "string",
      "default": "",
      "description": "Attributes to save",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create",
            "push",
            "update"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Write data to a database"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete data from a database"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a record from a database"
    },
    {
      "operation": "push",
      "name": "Push",
      "description": "Append to a list of data"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update item on a database"
    }
  ]


node_type: nodes-base.gmail
package_name: n8n-nodes-base
display_name: Gmail
description: Consume the Gmail API
category: transform
development_style: programmatic
version: 2.2
outputs:
  [
  "main"
  ]

updated_at: 2025-12-02 22:49:17
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Gmail node documentation
  description: Learn how to use the Gmail node in n8n. Follow technical documentation to integrate Gmail node into your workflows.
  contentType: [integration, reference]
  priority: high
  ---

  # Gmail node

  Use the Gmail node to automate work in Gmail, and integrate Gmail with other applications. n8n has built-in support for a wide range of Gmail features, including creating, updating, deleting, and getting drafts, messages, labels, thread.  

  On this page, you'll find a list of operations the Gmail node supports and links to more resources.

  /// note | Credentials
  Refer to [Google credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  --8<-- "_snippets/integrations/builtin/app-nodes/ai-tools.md"

  ## Operations

  * **Draft**
  	* [**Create**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/draft-operations.md#create-a-draft) a draft
  	* [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/draft-operations.md#delete-a-draft) a draft
  	* [**Get**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/draft-operations.md#get-a-draft) a draft
  	* [**Get Many**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/draft-operations.md#get-many-drafts) drafts
  * **Label**
  	* [**Create**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/label-operations.md#create-a-label) a label
  	* [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/label-operations.md#delete-a-label) a label
  	* [**Get**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/label-operations.md#get-a-label) a label
  	* [**Get Many**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/label-operations.md#get-many-labels) labels
  * **Message**
  	* [**Add Label**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/message-operations.md#add-label-to-a-message) to a message
  	* [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/message-operations.md#delete-a-message) a message
  	* [**Get**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/message-operations.md#get-a-message) a message
  	* [**Get Many**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/message-operations.md#get-many-messages) messages
  	* [**Mark as Read**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/message-operations.md#mark-as-read)
  	* [**Mark as Unread**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/message-operations.md#mark-as-unread)
  	* [**Remove Label**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/message-operations.md#remove-label-from-a-message) from a message
  	* [**Reply**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/message-operations.md#reply-to-a-message) to a message
  	* [**Send**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/message-operations.md#send-a-message) a message
  * **Thread**
  	* [**Add Label**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/thread-operations.md#add-label-to-a-thread) to a thread
  	* [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/thread-operations.md#delete-a-thread) a thread
  	* [**Get**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/thread-operations.md#get-a-thread) a thread
  	* [**Get Many**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/thread-operations.md#get-many-threads) threads
  	* [**Remove Label**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/thread-operations.md#remove-label-from-a-thread) from thread
  	* [**Reply**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/thread-operations.md#reply-to-a-message) to a message
  	* [**Trash**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/thread-operations.md#trash-a-thread) a thread
  	* [**Untrash**](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/thread-operations.md#untrash-a-thread) a thread

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'gmail') ]]

  ## Related resources

  Refer to Google's [Gmail API documentation](https://developers.google.com/gmail/api) for detailed information about the API that this node integrates with.

  n8n provides a trigger node for Gmail. You can find the trigger node docs [here](/integrations/builtin/trigger-nodes/n8n-nodes-base.gmailtrigger/index.md).

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

  ## Common issues

  For common errors or issues and suggested resolution steps, refer to [Common Issues](/integrations/builtin/app-nodes/n8n-nodes-base.gmail/common-issues.md).

properties_schema:
  [
    {
      "displayName": "Sort your Gmail inbox using our pre-built",
      "name": "preBuiltAgentsCalloutGmail",
      "type": "callout",
      "default": "",
      "typeOptions": {
        "calloutAction": {
          "label": "Email triage agent",
          "icon": "bot",
          "type": "openSampleWorkflowTemplate",
          "templateId": "email_triage_agent_with_gmail"
        }
      }
    },
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "oAuth2",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "oAuth2"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ]
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "Label",
          "value": "label"
        },
        {
          "name": "Draft",
          "value": "draft"
        },
        {
          "name": "Thread",
          "value": "thread"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a draft"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a draft"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a draft"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many drafts"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "draft"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Draft ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "draft"
          ],
          "operation": [
            "delete",
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Subject",
      "name": "subject",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "draft"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "To reply to an existing thread, specify the exact subject title of that thread.",
      "name": "threadNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "draft"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Email Type",
      "name": "emailType",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "HTML",
          "value": "html"
        },
        {
          "name": "Text",
          "value": "text"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "draft"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Message",
      "name": "message",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "draft"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Attachments",
          "name": "attachmentsUi",
          "placeholder": "Add Attachment",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "attachmentsBinary",
              "displayName": "Attachment Binary",
              "values": [
                {
                  "displayName": "Attachment Field Name (in Input)",
                  "name": "property",
                  "type": "string",
                  "default": "",
                  "description": "Add the field name from the input node. Multiple properties can be set separated by comma."
                }
              ]
            }
          ],
          "default": {},
          "description": "Array of supported attachments to add to the message"
        },
        {
          "displayName": "BCC",
          "name": "bccList",
          "type": "string",
          "description": "The email addresses of the blind copy recipients. Multiple addresses can be separated by a comma. e.g. jay@getsby.com, jon@smith.com.",
          "placeholder": "info@example.com",
          "default": ""
        },
        {
          "displayName": "CC",
          "name": "ccList",
          "type": "string",
          "description": "The email addresses of the copy recipients. Multiple addresses can be separated by a comma. e.g. jay@getsby.com, jon@smith.com.",
          "placeholder": "info@example.com",
          "default": ""
        },
        {
          "displayName": "From Alias Name or ID",
          "name": "fromAlias",
          "type": "options",
          "default": "",
          "description": "Select the alias to send the email from. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
          "typeOptions": {
            "loadOptionsMethod": "getGmailAliases"
          }
        },
        {
          "displayName": "Send Replies To",
          "name": "replyTo",
          "type": "string",
          "placeholder": "reply@example.com",
          "default": "",
          "description": "The email address that the reply message is sent to"
        },
        {
          "displayName": "Thread ID",
          "name": "threadId",
          "type": "string",
          "placeholder": "18cc573e2431878f",
          "default": "",
          "description": "The identifier of the thread to attach the draft"
        },
        {
          "displayName": "To Email",
          "name": "sendTo",
          "type": "string",
          "default": "",
          "placeholder": "info@example.com",
          "description": "The email addresses of the recipients. Multiple addresses can be separated by a comma. e.g. jay@getsby.com, jon@smith.com."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "draft"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Attachment Prefix",
          "name": "dataPropertyAttachmentsPrefixName",
          "type": "string",
          "default": "attachment_",
          "description": "Prefix for name of the binary property to which to write the attachment. An index starting with 0 will be added. So if name is 'attachment_' the first attachment is saved to 'attachment_0'."
        },
        {
          "displayName": "Download Attachments",
          "name": "downloadAttachments",
          "type": "boolean",
          "default": false,
          "description": "Whether the draft's attachments will be downloaded"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "draft"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "draft"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "draft"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Attachment Prefix",
          "name": "dataPropertyAttachmentsPrefixName",
          "type": "string",
          "default": "attachment_",
          "description": "Prefix for name of the binary property to which to write the attachments. An index starting with 0 will be added. So if name is 'attachment_' the first attachment is saved to 'attachment_0'."
        },
        {
          "displayName": "Download Attachments",
          "name": "downloadAttachments",
          "type": "boolean",
          "default": false,
          "description": "Whether the draft's attachments will be downloaded"
        },
        {
          "displayName": "Include Spam and Trash",
          "name": "includeSpamTrash",
          "type": "boolean",
          "default": false,
          "description": "Whether to include messages from SPAM and TRASH in the results"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "draft"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a label"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a label"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a label info"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many labels"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "label"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "Label Name",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "label"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Label ID",
      "name": "labelId",
      "type": "string",
      "default": "",
      "description": "The ID of the label",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "label"
          ],
          "operation": [
            "get",
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Label List Visibility",
          "name": "labelListVisibility",
          "type": "options",
          "options": [
            {
              "name": "Hide",
              "value": "labelHide"
            },
            {
              "name": "Show",
              "value": "labelShow"
            },
            {
              "name": "Show If Unread",
              "value": "labelShowIfUnread"
            }
          ],
          "default": "labelShow",
          "description": "The visibility of the label in the label list in the Gmail web interface"
        },
        {
          "displayName": "Message List Visibility",
          "name": "messageListVisibility",
          "type": "options",
          "options": [
            {
              "name": "Hide",
              "value": "hide"
            },
            {
              "name": "Show",
              "value": "show"
            }
          ],
          "default": "show",
          "description": "The visibility of messages with this label in the message list in the Gmail web interface"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "label"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "label"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "label"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Add Label",
          "value": "addLabels",
          "action": "Add label to message"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a message"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a message"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many messages"
        },
        {
          "name": "Mark as Read",
          "value": "markAsRead",
          "action": "Mark a message as read"
        },
        {
          "name": "Mark as Unread",
          "value": "markAsUnread",
          "action": "Mark a message as unread"
        },
        {
          "name": "Remove Label",
          "value": "removeLabels",
          "action": "Remove label from message"
        },
        {
          "name": "Reply",
          "value": "reply",
          "action": "Reply to a message"
        },
        {
          "name": "Send",
          "value": "send",
          "action": "Send a message"
        },
        {
          "name": "Send and Wait for Response",
          "value": "sendAndWait",
          "action": "Send message and wait for response"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "get",
            "delete",
            "markAsRead",
            "markAsUnread"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "reply"
          ]
        }
      }
    },
    {
      "displayName": "To",
      "name": "sendTo",
      "type": "string",
      "default": "",
      "description": "The email addresses of the recipients. Multiple addresses can be separated by a comma. e.g. jay@getsby.com, jon@smith.com.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "send"
          ]
        }
      }
    },
    {
      "displayName": "Subject",
      "name": "subject",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "send"
          ]
        }
      }
    },
    {
      "displayName": "Email Type",
      "name": "emailType",
      "type": "options",
      "default": "html",
      "options": [
        {
          "name": "Text",
          "value": "text"
        },
        {
          "name": "HTML",
          "value": "html"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "send",
            "reply"
          ]
        },
        "hide": {
          "@version": [
            2
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Email Type",
      "name": "emailType",
      "type": "options",
      "default": "html",
      "options": [
        {
          "name": "Text",
          "value": "text"
        },
        {
          "name": "HTML",
          "value": "html"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "send",
            "reply"
          ],
          "@version": [
            2
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Message",
      "name": "message",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "reply",
            "send"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Append n8n Attribution",
          "name": "appendAttribution",
          "type": "boolean",
          "default": true,
          "description": "Whether to include the phrase “This email was sent automatically with n8n” to the end of the email"
        },
        {
          "displayName": "Attachments",
          "name": "attachmentsUi",
          "placeholder": "Add Attachment",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "attachmentsBinary",
              "displayName": "Attachment Binary",
              "values": [
                {
                  "displayName": "Attachment Field Name",
                  "name": "property",
                  "type": "string",
                  "default": "data",
                  "description": "Add the field name from the input node. Multiple properties can be set separated by comma.",
                  "hint": "The name of the field with the attachment in the node input"
                }
              ]
            }
          ],
          "default": {},
          "description": "Array of supported attachments to add to the message"
        },
        {
          "displayName": "BCC",
          "name": "bccList",
          "type": "string",
          "description": "The email addresses of the blind copy recipients. Multiple addresses can be separated by a comma. e.g. jay@getsby.com, jon@smith.com.",
          "placeholder": "info@example.com",
          "default": ""
        },
        {
          "displayName": "CC",
          "name": "ccList",
          "type": "string",
          "description": "The email addresses of the copy recipients. Multiple addresses can be separated by a comma. e.g. jay@getsby.com, jon@smith.com.",
          "placeholder": "info@example.com",
          "default": ""
        },
        {
          "displayName": "Sender Name",
          "name": "senderName",
          "type": "string",
          "placeholder": "e.g. Nathan",
          "default": "",
          "description": "The name that will be shown in recipients' inboxes"
        },
        {
          "displayName": "Send Replies To",
          "name": "replyTo",
          "type": "string",
          "placeholder": "reply@example.com",
          "default": "",
          "description": "The email address that the reply message is sent to",
          "displayOptions": {
            "hide": {
              "/operation": [
                "reply"
              ]
            }
          }
        },
        {
          "displayName": "Reply to Sender Only",
          "name": "replyToSenderOnly",
          "type": "boolean",
          "default": false,
          "description": "Whether to reply to the sender only or to the entire list of recipients"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "send",
            "reply"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "message"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Attachment Prefix",
          "name": "dataPropertyAttachmentsPrefixName",
          "type": "string",
          "default": "attachment_",
          "description": "Prefix for name of the binary property to which to write the attachment. An index starting with 0 will be added. So if name is 'attachment_' the first attachment is saved to 'attachment_0'."
        },
        {
          "displayName": "Download Attachments",
          "name": "downloadAttachments",
          "type": "boolean",
          "default": false,
          "description": "Whether the email's attachments will be downloaded and included in the output"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "get"
          ]
        },
        "hide": {
          "simple": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "message"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "message"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Simplify",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "message"
          ]
        }
      }
    },
    {
      "displayName": "Fetching a lot of messages may take a long time. Consider using filters to speed things up",
      "name": "filtersNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "message"
          ],
          "returnAll": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include Spam and Trash",
          "name": "includeSpamTrash",
          "type": "boolean",
          "default": false,
          "description": "Whether to include messages from SPAM and TRASH in the results"
        },
        {
          "displayName": "Label Names or IDs",
          "name": "labelIds",
          "type": "multiOptions",
          "typeOptions": {
            "loadOptionsMethod": "getLabels"
          },
          "default": [],
          "description": "Only return messages with labels that match all of the specified label IDs. Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Search",
          "name": "q",
          "type": "string",
          "default": "",
          "placeholder": "has:attachment",
          "hint": "Use the same format as in the Gmail search box. <a href=\"https://support.google.com/mail/answer/7190?hl=en\">More info</a>.",
          "description": "Only return messages matching the specified query"
        },
        {
          "displayName": "Read Status",
          "name": "readStatus",
          "type": "options",
          "default": "unread",
          "hint": "Filter emails by whether they have been read or not",
          "options": [
            {
              "name": "Unread and read emails",
              "value": "both"
            },
            {
              "name": "Unread emails only",
              "value": "unread"
            },
            {
              "name": "Read emails only",
              "value": "read"
            }
          ]
        },
        {
          "displayName": "Received After",
          "name": "receivedAfter",
          "type": "dateTime",
          "default": "",
          "description": "Get all emails received after the specified date. In an expression you can set date using string in ISO format or a timestamp in miliseconds."
        },
        {
          "displayName": "Received Before",
          "name": "receivedBefore",
          "type": "dateTime",
          "default": "",
          "description": "Get all emails received before the specified date. In an expression you can set date using string in ISO format or a timestamp in miliseconds."
        },
        {
          "displayName": "Sender",
          "name": "sender",
          "type": "string",
          "default": "",
          "description": "Sender name or email to filter by",
          "hint": "Enter an email or part of a sender name"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "message"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Attachment Prefix",
          "name": "dataPropertyAttachmentsPrefixName",
          "type": "string",
          "default": "attachment_",
          "description": "Prefix for name of the binary property to which to write the attachment. An index starting with 0 will be added. So if name is 'attachment_' the first attachment is saved to 'attachment_0'."
        },
        {
          "displayName": "Download Attachments",
          "name": "downloadAttachments",
          "type": "boolean",
          "default": false,
          "description": "Whether the email's attachments will be downloaded and included in the output"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "message"
          ]
        },
        "hide": {
          "simple": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "addLabels",
            "removeLabels"
          ]
        }
      }
    },
    {
      "displayName": "Label Names or IDs",
      "name": "labelIds",
      "type": "multiOptions",
      "default": [],
      "description": "Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "addLabels",
            "removeLabels"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getLabels"
      }
    },
    {
      "displayName": "To",
      "name": "sendTo",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Subject",
      "name": "subject",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Message",
      "name": "message",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "rows": 4
      }
    },
    {
      "displayName": "Response Type",
      "name": "responseType",
      "type": "options",
      "default": "approval",
      "options": [
        {
          "name": "Approval",
          "value": "approval",
          "description": "User can approve/disapprove from within the message"
        },
        {
          "name": "Free Text",
          "value": "freeText",
          "description": "User can submit a response via a form"
        },
        {
          "name": "Custom Form",
          "value": "customForm",
          "description": "User can submit a response via a custom form"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Define Form",
      "name": "defineForm",
      "type": "options",
      "default": "fields",
      "options": [
        {
          "name": "Using Fields Below",
          "value": "fields"
        },
        {
          "name": "Using JSON",
          "value": "json"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Form Fields",
      "name": "jsonOutput",
      "type": "json",
      "default": "[\n  {\n    \"fieldLabel\": \"Name\",\n    \"placeholder\": \"enter your name\",\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Age\",\n    \"fieldType\": \"number\",\n    \"placeholder\": \"enter your age\"\n  },\n  {\n    \"fieldLabel\": \"Email\",\n    \"fieldType\": \"email\",\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Textarea\",\n    \"fieldType\": \"textarea\"\n  },\n  {\n    \"fieldLabel\": \"Dropdown Options\",\n    \"fieldType\": \"dropdown\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    },\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Checkboxes\",\n    \"fieldType\": \"checkbox\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    }\n  },\n  {\n    \"fieldLabel\": \"Radio\",\n    \"fieldType\": \"radio\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    }\n  },\n  {\n    \"fieldLabel\": \"Email\",\n    \"fieldType\": \"email\",\n    \"placeholder\": \"me@mail.con\"\n  },\n  {\n    \"fieldLabel\": \"File\",\n    \"fieldType\": \"file\",\n    \"multipleFiles\": true,\n    \"acceptFileTypes\": \".jpg, .png\"\n  },\n  {\n    \"fieldLabel\": \"Number\",\n    \"fieldType\": \"number\"\n  },\n  {\n    \"fieldLabel\": \"Password\",\n    \"fieldType\": \"password\"\n  }\n]\n",
      "displayOptions": {
        "show": {
          "defineForm": [
            "json"
          ],
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "rows": 5
      }
    },
    {
      "displayName": "Form Elements",
      "name": "formFields",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Field Name",
              "name": "fieldLabel",
              "type": "string",
              "default": "",
              "placeholder": "e.g. What is your name?",
              "description": "Label that appears above the input field",
              "required": true,
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "hiddenField",
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ]
                }
              }
            },
            {
              "displayName": "Element Type",
              "name": "fieldType",
              "type": "options",
              "default": "text",
              "description": "The type of field to add to the form",
              "options": [
                {
                  "name": "Checkboxes",
                  "value": "checkbox"
                },
                {
                  "name": "Custom HTML",
                  "value": "html"
                },
                {
                  "name": "Date",
                  "value": "date"
                },
                {
                  "name": "Dropdown",
                  "value": "dropdown"
                },
                {
                  "name": "Email",
                  "value": "email"
                },
                {
                  "name": "File",
                  "value": "file"
                },
                {
                  "name": "Hidden Field",
                  "value": "hiddenField"
                },
                {
                  "name": "Number",
                  "value": "number"
                },
                {
                  "name": "Password",
                  "value": "password"
                },
                {
                  "name": "Radio Buttons",
                  "value": "radio"
                },
                {
                  "name": "Text",
                  "value": "text"
                },
                {
                  "name": "Textarea",
                  "value": "textarea"
                }
              ],
              "required": true
            },
            {
              "displayName": "Element Name",
              "name": "elementName",
              "type": "string",
              "default": "",
              "placeholder": "e.g. content-section",
              "description": "Optional field. It can be used to include the html in the output.",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Placeholder",
              "name": "placeholder",
              "description": "Sample text to display inside the field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "dropdown",
                    "date",
                    "file",
                    "html",
                    "hiddenField",
                    "radio",
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-filled in the form field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "text",
                    "number",
                    "email",
                    "textarea"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default date value that will be pre-filled in the form field (format: YYYY-MM-DD)",
              "type": "dateTime",
              "typeOptions": {
                "dateOnly": true
              },
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-selected. Must match one of the option labels.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown",
                    "radio"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value(s) that will be pre-selected. Must match one or multiple of the option labels. Separate multiple pre-selected options with a comma.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Field Value",
              "name": "fieldValue",
              "description": "Input value can be set here or will be passed as a query parameter via Field Name if no value is set",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ]
                }
              }
            },
            {
              "displayName": "Field Options",
              "name": "fieldOptions",
              "placeholder": "Add Field Option",
              "description": "List of options that can be selected from the dropdown",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Option",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Checkboxes",
              "name": "fieldOptions",
              "placeholder": "Add Checkbox",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Checkbox Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Radio Buttons",
              "name": "fieldOptions",
              "placeholder": "Add Radio Button",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "radio"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Radio Button Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Multiple Choice is a legacy option, please use Checkboxes or Radio Buttons field type instead",
              "name": "multiselectLegacyNotice",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "multiselect": [
                    true
                  ],
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Choice",
              "name": "multiselect",
              "type": "boolean",
              "default": false,
              "description": "Whether to allow the user to select multiple options from the dropdown list",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Limit Selection",
              "name": "limitSelection",
              "type": "options",
              "default": "unlimited",
              "options": [
                {
                  "name": "Exact Number",
                  "value": "exact"
                },
                {
                  "name": "Range",
                  "value": "range"
                },
                {
                  "name": "Unlimited",
                  "value": "unlimited"
                }
              ],
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Number of Selections",
              "name": "numberOfSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "exact"
                  ]
                }
              }
            },
            {
              "displayName": "Minimum Selections",
              "name": "minSelections",
              "type": "number",
              "default": 0,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 0
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "Maximum Selections",
              "name": "maxSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "HTML",
              "name": "html",
              "typeOptions": {
                "editor": "htmlEditor"
              },
              "type": "string",
              "noDataExpression": true,
              "default": "<!-- Your custom HTML here --->\n\n\n",
              "description": "HTML elements to display on the form page",
              "hint": "Does not accept <code>&lt;script&gt;</code>, <code>&lt;style&gt;</code> or <code>&lt;input&gt;</code> tags",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Files",
              "name": "multipleFiles",
              "type": "boolean",
              "default": true,
              "description": "Whether to allow the user to select multiple files from the file input or just one",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "Accepted File Types",
              "name": "acceptFileTypes",
              "type": "string",
              "default": "",
              "description": "Comma-separated list of allowed file extensions",
              "hint": "Leave empty to allow all file types",
              "placeholder": "e.g. .jpg, .png",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "The displayed date is formatted based on the locale of the user's browser",
              "name": "formatDate",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Required Field",
              "name": "requiredField",
              "type": "boolean",
              "default": false,
              "description": "Whether to require the user to enter a value for this field before submitting the form",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html",
                    "hiddenField"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "defineForm": [
            "fields"
          ],
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "sortable": true
      }
    },
    {
      "displayName": "Approval Options",
      "name": "approvalOptions",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Type of Approval",
              "name": "approvalType",
              "type": "options",
              "placeholder": "Add option",
              "default": "single",
              "options": [
                {
                  "name": "Approve Only",
                  "value": "single"
                },
                {
                  "name": "Approve and Disapprove",
                  "value": "double"
                }
              ]
            },
            {
              "displayName": "Approve Button Label",
              "name": "approveLabel",
              "type": "string",
              "default": "Approve",
              "displayOptions": {
                "show": {
                  "approvalType": [
                    "single",
                    "double"
                  ]
                }
              }
            },
            {
              "displayName": "Approve Button Style",
              "name": "buttonApprovalStyle",
              "type": "options",
              "default": "primary",
              "options": [
                {
                  "name": "Primary",
                  "value": "primary"
                },
                {
                  "name": "Secondary",
                  "value": "secondary"
                }
              ],
              "displayOptions": {
                "show": {
                  "approvalType": [
                    "single",
                    "double"
                  ]
                }
              }
            },
            {
              "displayName": "Disapprove Button Label",
              "name": "disapproveLabel",
              "type": "string",
              "default": "Decline",
              "displayOptions": {
                "show": {
                  "approvalType": [
                    "double"
                  ]
                }
              }
            },
            {
              "displayName": "Disapprove Button Style",
              "name": "buttonDisapprovalStyle",
              "type": "options",
              "default": "secondary",
              "options": [
                {
                  "name": "Primary",
                  "value": "primary"
                },
                {
                  "name": "Secondary",
                  "value": "secondary"
                }
              ],
              "displayOptions": {
                "show": {
                  "approvalType": [
                    "double"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "approval"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Limit Wait Time",
          "name": "limitWaitTime",
          "type": "fixedCollection",
          "description": "Whether the workflow will automatically resume execution after the specified limit type",
          "default": {
            "values": {
              "limitType": "afterTimeInterval",
              "resumeAmount": 45,
              "resumeUnit": "minutes"
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Limit Type",
                  "name": "limitType",
                  "type": "options",
                  "default": "afterTimeInterval",
                  "description": "Sets the condition for the execution to resume. Can be a specified date or after some time.",
                  "options": [
                    {
                      "name": "After Time Interval",
                      "description": "Waits for a certain amount of time",
                      "value": "afterTimeInterval"
                    },
                    {
                      "name": "At Specified Time",
                      "description": "Waits until the set date and time to continue",
                      "value": "atSpecifiedTime"
                    }
                  ]
                },
                {
                  "displayName": "Amount",
                  "name": "resumeAmount",
                  "type": "number",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "typeOptions": {
                    "minValue": 0,
                    "numberPrecision": 2
                  },
                  "default": 1,
                  "description": "The time to wait"
                },
                {
                  "displayName": "Unit",
                  "name": "resumeUnit",
                  "type": "options",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "options": [
                    {
                      "name": "Minutes",
                      "value": "minutes"
                    },
                    {
                      "name": "Hours",
                      "value": "hours"
                    },
                    {
                      "name": "Days",
                      "value": "days"
                    }
                  ],
                  "default": "hours",
                  "description": "Unit of the interval value"
                },
                {
                  "displayName": "Max Date and Time",
                  "name": "maxDateAndTime",
                  "type": "dateTime",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "atSpecifiedTime"
                      ]
                    }
                  },
                  "default": "",
                  "description": "Continue execution after the specified date and time"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Append n8n Attribution",
          "name": "appendAttribution",
          "type": "boolean",
          "default": true,
          "description": "Whether to include the phrase \"This message was sent automatically with n8n\" to the end of the message"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "approval"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Message Button Label",
          "name": "messageButtonLabel",
          "type": "string",
          "default": "Respond"
        },
        {
          "displayName": "Response Form Title",
          "name": "responseFormTitle",
          "description": "Title of the form that the user can access to provide their response",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Response Form Description",
          "name": "responseFormDescription",
          "description": "Description of the form that the user can access to provide their response",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Response Form Button Label",
          "name": "responseFormButtonLabel",
          "type": "string",
          "default": "Submit"
        },
        {
          "displayName": "Response Form Custom Styling",
          "name": "responseFormCustomCss",
          "type": "string",
          "typeOptions": {
            "rows": 10,
            "editor": "cssEditor"
          },
          "default": ":root {\n\t--font-family: 'Open Sans', sans-serif;\n\t--font-weight-normal: 400;\n\t--font-weight-bold: 600;\n\t--font-size-body: 12px;\n\t--font-size-label: 14px;\n\t--font-size-test-notice: 12px;\n\t--font-size-input: 14px;\n\t--font-size-header: 20px;\n\t--font-size-paragraph: 14px;\n\t--font-size-link: 12px;\n\t--font-size-error: 12px;\n\t--font-size-html-h1: 28px;\n\t--font-size-html-h2: 20px;\n\t--font-size-html-h3: 16px;\n\t--font-size-html-h4: 14px;\n\t--font-size-html-h5: 12px;\n\t--font-size-html-h6: 10px;\n\t--font-size-subheader: 14px;\n\n\t/* Colors */\n\t--color-background: #fbfcfe;\n\t--color-test-notice-text: #e6a23d;\n\t--color-test-notice-bg: #fefaf6;\n\t--color-test-notice-border: #f6dcb7;\n\t--color-card-bg: #ffffff;\n\t--color-card-border: #dbdfe7;\n\t--color-card-shadow: rgba(99, 77, 255, 0.06);\n\t--color-link: #7e8186;\n\t--color-header: #525356;\n\t--color-label: #555555;\n\t--color-input-border: #dbdfe7;\n\t--color-input-text: #71747A;\n\t--color-focus-border: rgb(90, 76, 194);\n\t--color-submit-btn-bg: #ff6d5a;\n\t--color-submit-btn-text: #ffffff;\n\t--color-error: #ea1f30;\n\t--color-required: #ff6d5a;\n\t--color-clear-button-bg: #7e8186;\n\t--color-html-text: #555;\n\t--color-html-link: #ff6d5a;\n\t--color-header-subtext: #7e8186;\n\n\t/* Border Radii */\n\t--border-radius-card: 8px;\n\t--border-radius-input: 6px;\n\t--border-radius-clear-btn: 50%;\n\t--card-border-radius: 8px;\n\n\t/* Spacing */\n\t--padding-container-top: 24px;\n\t--padding-card: 24px;\n\t--padding-test-notice-vertical: 12px;\n\t--padding-test-notice-horizontal: 24px;\n\t--margin-bottom-card: 16px;\n\t--padding-form-input: 12px;\n\t--card-padding: 24px;\n\t--card-margin-bottom: 16px;\n\n\t/* Dimensions */\n\t--container-width: 448px;\n\t--submit-btn-height: 48px;\n\t--checkbox-size: 18px;\n\n\t/* Others */\n\t--box-shadow-card: 0px 4px 16px 0px var(--color-card-shadow);\n\t--opacity-placeholder: 0.5;\n}",
          "description": "Override default styling of the response form with CSS"
        },
        {
          "displayName": "Limit Wait Time",
          "name": "limitWaitTime",
          "type": "fixedCollection",
          "description": "Whether the workflow will automatically resume execution after the specified limit type",
          "default": {
            "values": {
              "limitType": "afterTimeInterval",
              "resumeAmount": 45,
              "resumeUnit": "minutes"
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Limit Type",
                  "name": "limitType",
                  "type": "options",
                  "default": "afterTimeInterval",
                  "description": "Sets the condition for the execution to resume. Can be a specified date or after some time.",
                  "options": [
                    {
                      "name": "After Time Interval",
                      "description": "Waits for a certain amount of time",
                      "value": "afterTimeInterval"
                    },
                    {
                      "name": "At Specified Time",
                      "description": "Waits until the set date and time to continue",
                      "value": "atSpecifiedTime"
                    }
                  ]
                },
                {
                  "displayName": "Amount",
                  "name": "resumeAmount",
                  "type": "number",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "typeOptions": {
                    "minValue": 0,
                    "numberPrecision": 2
                  },
                  "default": 1,
                  "description": "The time to wait"
                },
                {
                  "displayName": "Unit",
                  "name": "resumeUnit",
                  "type": "options",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "options": [
                    {
                      "name": "Minutes",
                      "value": "minutes"
                    },
                    {
                      "name": "Hours",
                      "value": "hours"
                    },
                    {
                      "name": "Days",
                      "value": "days"
                    }
                  ],
                  "default": "hours",
                  "description": "Unit of the interval value"
                },
                {
                  "displayName": "Max Date and Time",
                  "name": "maxDateAndTime",
                  "type": "dateTime",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "atSpecifiedTime"
                      ]
                    }
                  },
                  "default": "",
                  "description": "Continue execution after the specified date and time"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Append n8n Attribution",
          "name": "appendAttribution",
          "type": "boolean",
          "default": true,
          "description": "Whether to include the phrase \"This message was sent automatically with n8n\" to the end of the message"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "freeText",
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add Label",
          "value": "addLabels",
          "action": "Add label to thread"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a thread"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a thread"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many threads"
        },
        {
          "name": "Remove Label",
          "value": "removeLabels",
          "action": "Remove label from thread"
        },
        {
          "name": "Reply",
          "value": "reply",
          "action": "Reply to a message"
        },
        {
          "name": "Trash",
          "value": "trash",
          "action": "Trash a thread"
        },
        {
          "name": "Untrash",
          "value": "untrash",
          "action": "Untrash a thread"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Thread ID",
      "name": "threadId",
      "type": "string",
      "default": "",
      "description": "The ID of the thread you are operating on",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "get",
            "delete",
            "reply",
            "trash",
            "untrash"
          ]
        }
      }
    },
    {
      "displayName": "Message Snippet or ID",
      "name": "messageId",
      "type": "options",
      "default": "",
      "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "reply"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getThreadMessages",
        "loadOptionsDependsOn": [
          "threadId"
        ]
      }
    },
    {
      "displayName": "Email Type",
      "name": "emailType",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Text",
          "value": "text"
        },
        {
          "name": "HTML",
          "value": "html"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "reply"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Message",
      "name": "message",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "reply"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Attachments",
          "name": "attachmentsUi",
          "placeholder": "Add Attachment",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "attachmentsBinary",
              "displayName": "Attachment Binary",
              "values": [
                {
                  "displayName": "Attachment Field Name",
                  "name": "property",
                  "type": "string",
                  "default": "",
                  "description": "Add the field name from the input node. Multiple properties can be set separated by comma."
                }
              ]
            }
          ],
          "default": {},
          "description": "Array of supported attachments to add to the message"
        },
        {
          "displayName": "BCC",
          "name": "bccList",
          "type": "string",
          "description": "The email addresses of the blind copy recipients. Multiple addresses can be separated by a comma. e.g. jay@getsby.com, jon@smith.com.",
          "placeholder": "info@example.com",
          "default": ""
        },
        {
          "displayName": "CC",
          "name": "ccList",
          "type": "string",
          "description": "The email addresses of the copy recipients. Multiple addresses can be separated by a comma. e.g. jay@getsby.com, jon@smith.com.",
          "placeholder": "info@example.com",
          "default": ""
        },
        {
          "displayName": "Sender Name",
          "name": "senderName",
          "type": "string",
          "placeholder": "e.g. Nathan",
          "default": "",
          "description": "The name displayed in your contacts inboxes"
        },
        {
          "displayName": "Reply to Sender Only",
          "name": "replyToSenderOnly",
          "type": "boolean",
          "default": false,
          "description": "Whether to reply to the sender only or to the entire list of recipients",
          "displayOptions": {
            "hide": {
              "replyToRecipientsOnly": [
                true
              ]
            }
          }
        },
        {
          "displayName": "Reply to Recipients Only",
          "name": "replyToRecipientsOnly",
          "type": "boolean",
          "default": false,
          "description": "Whether to exclude the sender from the reply",
          "displayOptions": {
            "hide": {
              "replyToSenderOnly": [
                true
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "reply"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "thread"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Return Only Messages",
          "name": "returnOnlyMessages",
          "type": "boolean",
          "default": true,
          "description": "Whether to return only thread messages"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "thread"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "thread"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Fetching a lot of messages may take a long time. Consider using filters to speed things up",
      "name": "filtersNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "thread"
          ],
          "returnAll": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include Spam and Trash",
          "name": "includeSpamTrash",
          "type": "boolean",
          "default": false,
          "description": "Whether to include threads from SPAM and TRASH in the results"
        },
        {
          "displayName": "Label ID Names or IDs",
          "name": "labelIds",
          "type": "multiOptions",
          "typeOptions": {
            "loadOptionsMethod": "getLabels"
          },
          "default": [],
          "description": "Only return threads with labels that match all of the specified label IDs. Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Search",
          "name": "q",
          "type": "string",
          "default": "",
          "placeholder": "has:attachment",
          "hint": "Use the same format as in the Gmail search box. <a href=\"https://support.google.com/mail/answer/7190?hl=en\">More info</a>.",
          "description": "Only return messages matching the specified query"
        },
        {
          "displayName": "Read Status",
          "name": "readStatus",
          "type": "options",
          "default": "unread",
          "hint": "Filter emails by whether they have been read or not",
          "options": [
            {
              "name": "Unread and read emails",
              "value": "both"
            },
            {
              "name": "Unread emails only",
              "value": "unread"
            },
            {
              "name": "Read emails only",
              "value": "read"
            }
          ]
        },
        {
          "displayName": "Received After",
          "name": "receivedAfter",
          "type": "dateTime",
          "default": "",
          "description": "Get all emails received after the specified date. In an expression you can set date using string in ISO format or a timestamp in miliseconds."
        },
        {
          "displayName": "Received Before",
          "name": "receivedBefore",
          "type": "dateTime",
          "default": "",
          "description": "Get all emails received before the specified date. In an expression you can set date using string in ISO format or a timestamp in miliseconds."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "thread"
          ]
        }
      }
    },
    {
      "displayName": "Thread ID",
      "name": "threadId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "addLabels",
            "removeLabels"
          ]
        }
      }
    },
    {
      "displayName": "Label Names or IDs",
      "name": "labelIds",
      "type": "multiOptions",
      "default": [],
      "description": "Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "addLabels",
            "removeLabels"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getLabels"
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create"
    },
    {
      "operation": "delete",
      "name": "Delete"
    },
    {
      "operation": "get",
      "name": "Get"
    },
    {
      "operation": "getAll",
      "name": "Get Many"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "gmailOAuth2",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


