# nodes

node_type: nodes-base.googleCloudNaturalLanguageTool
package_name: n8n-nodes-base
display_name: Google Cloud Natural Language Tool
description: Consume Google Cloud Natural Language API (AI Tool variant for use with AI Agents)
category: input
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "googleCloudNaturalLanguageOAuth2Api",
  "required": true
  }
  ]

outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-04-01 21:15:49
tool_variant_of: nodes-base.googleCloudNaturalLanguage
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": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Google Cloud Natural Language"
    },
    {
      "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"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyzeSentiment",
      "name": "Analyze Sentiment",
      "resource": "document"
    }
  ]


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
credentials_required:
  [
  {
  "name": "googleCloudNaturalLanguageOAuth2Api",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-04-01 21:15:49
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"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyzeSentiment",
      "name": "Analyze Sentiment",
      "resource": "document"
    }
  ]


node_type: nodes-base.googleCloudStorageTool
package_name: n8n-nodes-base
display_name: Google Cloud Storage Tool
description: Use the Google Cloud Storage API (AI Tool variant for use with AI Agents)
category: transform
development_style: programmatic
version: 1
outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-04-01 21:15:49
tool_variant_of: nodes-base.googleCloudStorage
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": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to manage files and storage"
    },
    {
      "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",
      "resource": "bucket"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an empty Bucket",
      "resource": "bucket"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get metadata for a specific Bucket",
      "resource": "bucket"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get list of Buckets",
      "resource": "bucket"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update the metadata of a bucket",
      "resource": "bucket"
    },
    {
      "operation": "create",
      "name": "Create",
      "description": "Create an object",
      "resource": "object"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an object",
      "resource": "object"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get object data or metadata",
      "resource": "object"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve a list of objects",
      "resource": "object"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update an object's metadata",
      "resource": "object"
    }
  ]

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


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: 2026-04-01 21:15:49
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",
      "resource": "bucket"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an empty Bucket",
      "resource": "bucket"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get metadata for a specific Bucket",
      "resource": "bucket"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get list of Buckets",
      "resource": "bucket"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update the metadata of a bucket",
      "resource": "bucket"
    },
    {
      "operation": "create",
      "name": "Create",
      "description": "Create an object",
      "resource": "object"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an object",
      "resource": "object"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get object data or metadata",
      "resource": "object"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve a list of objects",
      "resource": "object"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update an object's metadata",
      "resource": "object"
    }
  ]

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


node_type: nodes-base.googleContactsTool
package_name: n8n-nodes-base
display_name: Google Contacts Tool
description: Consume Google Contacts API (AI Tool variant for use with AI Agents)
category: input
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "googleContactsOAuth2Api",
  "required": true
  }
  ]

outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-04-01 21:15:49
tool_variant_of: nodes-base.googleContacts
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": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Google Contacts"
    },
    {
      "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",
      "resource": "contact"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a contact",
      "resource": "contact"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a contact",
      "resource": "contact"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve many contacts",
      "resource": "contact"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a contact",
      "resource": "contact"
    }
  ]


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: 2026-04-01 21:15:49
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",
      "resource": "contact"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a contact",
      "resource": "contact"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a contact",
      "resource": "contact"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve many contacts",
      "resource": "contact"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a contact",
      "resource": "contact"
    }
  ]


node_type: nodes-base.googleDocsTool
package_name: n8n-nodes-base
display_name: Google Docs Tool
description: Consume Google Docs API. (AI Tool variant for use with AI Agents)
category: input
development_style: programmatic
version: 2
outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-04-01 21:15:49
tool_variant_of: nodes-base.googleDocs
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": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Google Docs"
    },
    {
      "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",
      "resource": "document"
    },
    {
      "operation": "get",
      "name": "Get",
      "resource": "document"
    },
    {
      "operation": "update",
      "name": "Update",
      "resource": "document"
    }
  ]

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


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: 2026-04-01 21:15:49
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",
      "resource": "document"
    },
    {
      "operation": "get",
      "name": "Get",
      "resource": "document"
    },
    {
      "operation": "update",
      "name": "Update",
      "resource": "document"
    }
  ]

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: 2026-04-01 21:15:49
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": "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",
      "resource": "drive"
    },
    {
      "operation": "deleteDrive",
      "name": "Delete",
      "description": "Permanently delete a shared drive",
      "resource": "drive"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a shared drive",
      "resource": "drive"
    },
    {
      "operation": "list",
      "name": "Get Many",
      "description": "Get the list of shared drives",
      "resource": "drive"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a shared drive",
      "resource": "drive"
    },
    {
      "operation": "copy",
      "name": "Copy",
      "description": "Create a copy of an existing file",
      "resource": "file"
    },
    {
      "operation": "createFromText",
      "name": "Create From Text",
      "description": "Create a file from a provided text",
      "resource": "file"
    },
    {
      "operation": "deleteFile",
      "name": "Delete",
      "description": "Permanently delete a file",
      "resource": "file"
    },
    {
      "operation": "download",
      "name": "Download",
      "description": "Download a file",
      "resource": "file"
    },
    {
      "operation": "move",
      "name": "Move",
      "description": "Move a file to another folder",
      "resource": "file"
    },
    {
      "operation": "share",
      "name": "Share",
      "description": "Add sharing permissions to a file",
      "resource": "file"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a file",
      "resource": "file"
    },
    {
      "operation": "upload",
      "name": "Upload",
      "description": "Upload an existing file to Google Drive",
      "resource": "file"
    },
    {
      "operation": "search",
      "name": "Search",
      "description": "Search or list files and folders",
      "resource": "fileFolder"
    },
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a folder",
      "resource": "folder"
    },
    {
      "operation": "deleteFolder",
      "name": "Delete",
      "description": "Permanently delete a folder",
      "resource": "folder"
    },
    {
      "operation": "share",
      "name": "Share",
      "description": "Add sharing permissions to a folder",
      "resource": "folder"
    }
  ]

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: 2026-04-01 21:15:49
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.googleFirebaseCloudFirestoreTool
package_name: n8n-nodes-base
display_name: Google Cloud Firestore Tool
description: Interact with Google Firebase - Cloud Firestore API (AI Tool variant for use with AI Agents)
category: input
development_style: programmatic
version: 1.1
outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-04-01 21:15:49
tool_variant_of: nodes-base.googleFirebaseCloudFirestore
properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Google Cloud Firestore"
    },
    {
      "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",
      "resource": "document"
    },
    {
      "operation": "upsert",
      "name": "Create or Update",
      "description": "Create a new document, or update the current one if it already exists (upsert)",
      "resource": "document"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a document",
      "resource": "document"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a document",
      "resource": "document"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many documents from a collection",
      "resource": "document"
    },
    {
      "operation": "query",
      "name": "Query",
      "description": "Runs a query against your documents",
      "resource": "document"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many root collections",
      "resource": "collection"
    }
  ]

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


