# nodes

node_type: nodes-base.googleBusinessProfileTrigger
package_name: n8n-nodes-base
display_name: Google Business Profile Trigger
category: trigger
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "googleBusinessProfileOAuth2Api",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
description:
  Fetches reviews from Google Business Profile and starts the workflow on specified polling intervals.

documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Business Profile Trigger node documentation
  description: Learn how to use the Google Business Profile Trigger node in n8n. Follow technical documentation to integrate Google Business Profile Trigger node into your workflows.
  contentType: [integration, reference]
  ---

  # Google Business Profile Trigger node

  Use the Google Business Profile Trigger node to respond to events in [Google Business Profile](https://www.google.com/business/){:target=_blank .external-link} and integrate Google Business Profile with other applications. n8n has built-in support for responding to new reviews.

  On this page, you'll find a list of events the Google Business Profile Trigger node can respond to and links to more resources.

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

  ## Events

  * Review Added

  ## Related resources

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

  <!-- add a link to the node page on n8n's website. For example: https://n8n.io/integrations/356-gmail/ -->
  View [example workflows and related content](https://n8n.io/integrations/google-business-profile-trigger/){:target=_blank .external-link} on n8n's website.

  Refer to [Google Business Profile's documentation](https://developers.google.com/my-business/reference/rest){:target=_blank .external-link} for details about their API.

properties_schema:
  [
    {
      "displayName": "Event",
      "name": "event",
      "type": "options",
      "default": "reviewAdded",
      "options": [
        {
          "name": "Review Added",
          "value": "reviewAdded"
        }
      ],
      "required": true,
      "noDataExpression": true
    },
    {
      "displayName": "Account",
      "name": "account",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The Google Business Profile account",
      "required": true,
      "displayOptions": {
        "show": {
          "event": [
            "reviewAdded"
          ]
        }
      }
    },
    {
      "displayName": "Location",
      "name": "location",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The specific location or business associated with the account",
      "required": true,
      "displayOptions": {
        "show": {
          "event": [
            "reviewAdded"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googlePerspective
package_name: n8n-nodes-base
display_name: Google Perspective
description: Consume Google Perspective API
category: transform
development_style: programmatic
version: 1
operations:
  [
  {
  "operation": "analyzeComment",
  "name": "Analyze Comment"
  }
  ]

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

outputs:
  [
  "main"
  ]

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

  # Google Perspective node

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

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

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

  ## Operations

  * Analyze Comment

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyzeComment",
      "options": [
        {
          "name": "Analyze Comment",
          "value": "analyzeComment"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Text",
      "name": "text",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyzeComment"
          ]
        }
      }
    },
    {
      "displayName": "Attributes to Analyze",
      "name": "requestedAttributesUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Properties",
          "name": "requestedAttributesValues",
          "values": [
            {
              "displayName": "Attribute Name",
              "name": "attributeName",
              "type": "options",
              "options": [
                {
                  "name": "Flirtation",
                  "value": "flirtation"
                },
                {
                  "name": "Identity Attack",
                  "value": "identity_attack"
                },
                {
                  "name": "Insult",
                  "value": "insult"
                },
                {
                  "name": "Profanity",
                  "value": "profanity"
                },
                {
                  "name": "Severe Toxicity",
                  "value": "severe_toxicity"
                },
                {
                  "name": "Sexually Explicit",
                  "value": "sexually_explicit"
                },
                {
                  "name": "Threat",
                  "value": "threat"
                },
                {
                  "name": "Toxicity",
                  "value": "toxicity"
                }
              ],
              "description": "Attribute to analyze in the text. Details <a href=\"https://developers.perspectiveapi.com/s/about-the-api-attributes-and-languages\">here</a>.",
              "default": "flirtation"
            },
            {
              "displayName": "Score Threshold",
              "name": "scoreThreshold",
              "type": "number",
              "typeOptions": {
                "numberPrecision": 2,
                "minValue": 0,
                "maxValue": 1
              },
              "description": "Score above which to return results. At zero, all scores are returned.",
              "default": 0
            }
          ]
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyzeComment"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Language Name or ID",
          "name": "languages",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLanguages"
          },
          "default": "",
          "description": "Languages of the text input. If unspecified, the API will auto-detect the comment language. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyzeComment"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleSheets
package_name: n8n-nodes-base
display_name: Google Sheets
description: Read, update and write data to Google Sheets
category: input
development_style: programmatic
version: 4.7
outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Sheets
  description: Documentation for the Google Sheets node in n8n, a workflow automation platform. Includes details of operations and configuration, and links to examples and credentials information.
  contentType: [integration, reference]
  priority: critical
  ---

  # Google Sheets

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

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

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

  ## Operations

  * **Document**
      * [**Create**](/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/document-operations.md#create-a-spreadsheet) a spreadsheet.
  	* [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/document-operations.md#delete-a-spreadsheet) a spreadsheet.
  * **Sheet Within Document**
  	* [**Append or Update Row**](/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/sheet-operations.md#append-or-update-row): Append a new row, or update the current one if it already exists.
  	* [**Append Row**](/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/sheet-operations.md#append-row): Create a new row.
  	* [**Clear**](/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/sheet-operations.md#clear-a-sheet) all data from a sheet.
  	* [**Create**](/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/sheet-operations.md#create-a-new-sheet) a new sheet.
  	* [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/sheet-operations.md#delete-a-sheet) a sheet.
  	* [**Delete Rows or Columns**](/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/sheet-operations.md#delete-rows-or-columns): Delete columns and rows from a sheet.
  	* [**Get Row(s)**](/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/sheet-operations.md#get-rows): Read all rows in a sheet.
  	* [**Update Row**](/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/sheet-operations.md#update-row): Update a row in a sheet. 


  ## Templates and examples

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

  ## Related resources

  Refer to [Google Sheet's API documentation](https://developers.google.com/sheets/api){:target=_blank .external-link} for more information about the service.

  <!-- ## Examples
  This example uses the Customer Datastore node to provide sample data to load into Google Sheets. It assumes you've already set up your [credentials](/integrations/builtin/credentials/google/index.md).	
  	1. Set up a Google Sheet with two columns, `test1` and `test`. In `test1`, enter the names from the Customer Datastore node:  
  	![The spreadsheet set up for testing](/_images/integrations/builtin/app-nodes/googlesheets/test-sheet-before.png)  
  	2. Create the workflow: use the manual trigger, Customer Datastore, and Google Sheets nodes.  
  	![The spreadsheet set up for testing](/_images/integrations/builtin/app-nodes/googlesheets/workflow.png)  
  	3. Open the Customer Datastore node, enable **Return All**, then select **Execute step**.
  	4. In the Google Sheets node, go through the steps above, using these settings:
  		* Select **Update Row** as the **Operation**.
  		* In **Column to Match On**, select `test1`.
  		* For the first field of **Values to Update**, drag in the **name** from the input view.
  		* For the second field of **Values to Update**, drag in the **email** from the input view.
  	5. Select **Execute step**.
  	6. View your spreadsheet. **test2** should now contain the email addresses that match to the names in the input data.  
  	![The spreadsheet set up for testing](/_images/integrations/builtin/app-nodes/googlesheets/test-sheet-after.png)   -->

  ## Common issues

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

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

properties_schema:
  [
    {
      "displayName": "Manage tasks in Google Sheets using our pre-built",
      "name": "preBuiltAgentsCalloutGoogleSheets",
      "type": "callout",
      "default": "",
      "typeOptions": {
        "calloutAction": {
          "label": "Task management agent",
          "icon": "bot",
          "type": "openSampleWorkflowTemplate",
          "templateId": "task_management_agent_with_google_sheets"
        }
      }
    },
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "oAuth2",
      "options": [
        {
          "name": "Service Account",
          "value": "serviceAccount"
        },
        {
          "name": "OAuth2 (recommended)",
          "value": "oAuth2"
        }
      ]
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "sheet",
      "options": [
        {
          "name": "Document",
          "value": "spreadsheet"
        },
        {
          "name": "Sheet Within Document",
          "value": "sheet"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "read",
      "options": [
        {
          "name": "Append or Update Row",
          "value": "appendOrUpdate",
          "description": "Append a new row or update an existing one (upsert)",
          "action": "Append or update row in sheet"
        },
        {
          "name": "Append Row",
          "value": "append",
          "description": "Create a new row in a sheet",
          "action": "Append row in sheet"
        },
        {
          "name": "Clear",
          "value": "clear",
          "description": "Delete all the contents or a part of a sheet",
          "action": "Clear sheet"
        },
        {
          "name": "Create",
          "value": "create",
          "description": "Create a new sheet",
          "action": "Create sheet"
        },
        {
          "name": "Delete",
          "value": "remove",
          "description": "Permanently delete a sheet",
          "action": "Delete sheet"
        },
        {
          "name": "Delete Rows or Columns",
          "value": "delete",
          "description": "Delete columns or rows from a sheet",
          "action": "Delete rows or columns from sheet"
        },
        {
          "name": "Get Row(s)",
          "value": "read",
          "description": "Retrieve one or more rows from a sheet",
          "action": "Get row(s) in sheet"
        },
        {
          "name": "Update Row",
          "value": "update",
          "description": "Update an existing row in a sheet",
          "action": "Update row in sheet"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Document",
      "name": "documentId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ]
        }
      }
    },
    {
      "displayName": "Sheet",
      "name": "sheetName",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "append",
            "appendOrUpdate",
            "clear",
            "delete",
            "read",
            "remove",
            "update"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "documentId.value"
        ]
      }
    },
    {
      "displayName": "Data Mode",
      "name": "dataMode",
      "type": "options",
      "default": "defineBelow",
      "description": "Whether to insert the input data this node receives in the new row",
      "options": [
        {
          "name": "Auto-Map Input Data to Columns",
          "value": "autoMapInputData",
          "description": "Use when node input properties match destination column names"
        },
        {
          "name": "Map Each Column Below",
          "value": "defineBelow",
          "description": "Set the value for each destination column"
        },
        {
          "name": "Nothing",
          "value": "nothing",
          "description": "Do not send anything"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "append"
          ],
          "@version": [
            3
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "In this mode, make sure the incoming data is named the same as the columns in your Sheet. (Use an 'Edit Fields' node before this node to change it if required.)",
      "name": "autoMapNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "operation": [
            "append"
          ],
          "dataMode": [
            "autoMapInputData"
          ],
          "@version": [
            3
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Fields to Send",
      "name": "fieldsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Field",
          "name": "fieldValues",
          "values": [
            {
              "displayName": "Field Name or ID",
              "name": "fieldId",
              "type": "options",
              "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
              "typeOptions": {
                "loadOptionsDependsOn": [
                  "sheetName.value"
                ],
                "loadOptionsMethod": "getSheetHeaderRowAndSkipEmpty"
              },
              "default": ""
            },
            {
              "displayName": "Field Value",
              "name": "fieldValue",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "append"
          ],
          "dataMode": [
            "defineBelow"
          ],
          "@version": [
            3
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "multipleValueButtonText": "Add Field to Send",
        "multipleValues": true
      }
    },
    {
      "displayName": "Columns",
      "name": "columns",
      "type": "resourceMapper",
      "default": {
        "mappingMode": "defineBelow",
        "value": null
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "append"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 4
              }
            }
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "sheetName.value"
        ],
        "resourceMapper": {
          "resourceMapperMethod": "getMappingColumns",
          "mode": "add",
          "fieldWords": {
            "singular": "column",
            "plural": "columns"
          },
          "addAllFields": true,
          "multiKeyMatch": false
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Cell Format",
          "name": "cellFormat",
          "type": "options",
          "options": [
            {
              "name": "Let Google Sheets format",
              "value": "USER_ENTERED",
              "description": "Cells are styled as if you typed the values into Google Sheets directly"
            },
            {
              "name": "Let n8n format",
              "value": "RAW",
              "description": "Cells have the same types as the input data"
            }
          ],
          "default": "USER_ENTERED",
          "description": "Determines how data should be interpreted"
        },
        {
          "displayName": "Data Location on Sheet",
          "name": "locationDefine",
          "type": "fixedCollection",
          "placeholder": "Select Range",
          "default": {
            "values": {}
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Header Row",
                  "name": "headerRow",
                  "type": "number",
                  "typeOptions": {
                    "minValue": 1
                  },
                  "default": 1,
                  "description": "Index of the row which contains the keys. Starts at 1. The incoming node data is matched to the keys for assignment. The matching is case sensitive."
                }
              ]
            }
          ]
        },
        {
          "displayName": "Handling extra fields in input",
          "name": "handlingExtraData",
          "type": "options",
          "options": [
            {
              "name": "Insert in New Column(s)",
              "value": "insertInNewColumn",
              "description": "Create a new column for extra data"
            },
            {
              "name": "Ignore Them",
              "value": "ignoreIt",
              "description": "Ignore extra data"
            },
            {
              "name": "Error",
              "value": "error",
              "description": "Throw an error"
            }
          ],
          "displayOptions": {
            "show": {
              "/dataMode": [
                "autoMapInputData"
              ]
            }
          },
          "default": "insertInNewColumn",
          "description": "What do to with fields that don't match any columns in the Google Sheet"
        },
        {
          "displayName": "Handling extra fields in input",
          "name": "handlingExtraData",
          "type": "options",
          "options": [
            {
              "name": "Insert in New Column(s)",
              "value": "insertInNewColumn",
              "description": "Create a new column for extra data"
            },
            {
              "name": "Ignore Them",
              "value": "ignoreIt",
              "description": "Ignore extra data"
            },
            {
              "name": "Error",
              "value": "error",
              "description": "Throw an error"
            }
          ],
          "displayOptions": {
            "show": {
              "/columns.mappingMode": [
                "autoMapInputData"
              ]
            }
          },
          "default": "insertInNewColumn",
          "description": "What do to with fields that don't match any columns in the Google Sheet"
        },
        {
          "displayName": "Minimise API Calls",
          "name": "useAppend",
          "type": "boolean",
          "default": false,
          "hint": "Use if your sheet has no gaps between rows or columns",
          "description": "Whether to use append instead of update(default), this is more efficient but in some cases data might be misaligned"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "append"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Clear",
      "name": "clear",
      "type": "options",
      "default": "wholeSheet",
      "description": "What to clear",
      "options": [
        {
          "name": "Whole Sheet",
          "value": "wholeSheet"
        },
        {
          "name": "Specific Rows",
          "value": "specificRows"
        },
        {
          "name": "Specific Columns",
          "value": "specificColumns"
        },
        {
          "name": "Specific Range",
          "value": "specificRange"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "clear"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Keep First Row",
      "name": "keepFirstRow",
      "type": "boolean",
      "default": false,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "clear"
          ],
          "clear": [
            "wholeSheet"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Start Row Number",
      "name": "startIndex",
      "type": "number",
      "default": 1,
      "description": "The row number to delete from, The first row is 1",
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "clear"
          ],
          "clear": [
            "specificRows"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Number of Rows to Delete",
      "name": "rowsToDelete",
      "type": "number",
      "default": 1,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "clear"
          ],
          "clear": [
            "specificRows"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Start Column",
      "name": "startIndex",
      "type": "string",
      "default": "A",
      "description": "The column to delete",
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "clear"
          ],
          "clear": [
            "specificColumns"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Number of Columns to Delete",
      "name": "columnsToDelete",
      "type": "number",
      "default": 1,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "clear"
          ],
          "clear": [
            "specificColumns"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Range",
      "name": "range",
      "type": "string",
      "default": "A:F",
      "description": "The table range to read from or to append data to. See the Google <a href=\"https://developers.google.com/sheets/api/guides/values#writing\">documentation</a> for the details. If it contains multiple sheets it can also be added like this: \"MySheet!A:F\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "clear"
          ],
          "clear": [
            "specificRange"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "n8n-sheet",
      "description": "The name of the sheet",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Hidden",
          "name": "hidden",
          "type": "boolean",
          "default": false,
          "description": "Whether the sheet is hidden in the UI, false if it's visible"
        },
        {
          "displayName": "Right To Left",
          "name": "rightToLeft",
          "type": "boolean",
          "default": false,
          "description": "Whether the sheet is an RTL sheet instead of an LTR sheet"
        },
        {
          "displayName": "Sheet ID",
          "name": "sheetId",
          "type": "number",
          "default": 0,
          "description": "The ID of the sheet. Must be non-negative. This field cannot be changed once set."
        },
        {
          "displayName": "Sheet Index",
          "name": "index",
          "type": "number",
          "default": 0,
          "description": "The index of the sheet within the spreadsheet"
        },
        {
          "displayName": "Tab Color",
          "name": "tabColor",
          "type": "color",
          "default": "0aa55c",
          "description": "The color of the tab in the UI"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "To Delete",
      "name": "toDelete",
      "type": "options",
      "default": "rows",
      "description": "What to delete",
      "options": [
        {
          "name": "Rows",
          "value": "rows",
          "description": "Rows to delete"
        },
        {
          "name": "Columns",
          "value": "columns",
          "description": "Columns to delete"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "delete"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Start Row Number",
      "name": "startIndex",
      "type": "number",
      "default": 2,
      "description": "The row number to delete from, The first row is 2",
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "delete"
          ],
          "toDelete": [
            "rows"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Number of Rows to Delete",
      "name": "numberToDelete",
      "type": "number",
      "default": 1,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "delete"
          ],
          "toDelete": [
            "rows"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Start Column",
      "name": "startIndex",
      "type": "string",
      "default": "A",
      "description": "The column to delete",
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "delete"
          ],
          "toDelete": [
            "columns"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Number of Columns to Delete",
      "name": "numberToDelete",
      "type": "number",
      "default": 1,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "delete"
          ],
          "toDelete": [
            "columns"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Filters",
      "name": "filtersUI",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Filter",
          "name": "values",
          "values": [
            {
              "displayName": "Column",
              "name": "lookupColumn",
              "type": "options",
              "typeOptions": {
                "loadOptionsDependsOn": [
                  "sheetName.value"
                ],
                "loadOptionsMethod": "getSheetHeaderRowWithGeneratedColumnNames"
              },
              "default": "",
              "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>"
            },
            {
              "displayName": "Value",
              "name": "lookupValue",
              "type": "string",
              "default": "",
              "hint": "The column must have this value to be matched"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "read"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "multipleValueButtonText": "Add Filter",
        "multipleValues": true
      }
    },
    {
      "displayName": "Combine Filters",
      "name": "combineFilters",
      "type": "options",
      "default": "OR",
      "description": "How to combine the conditions defined in \"Filters\": AND requires all conditions to be true, OR requires at least one condition to be true",
      "options": [
        {
          "name": "AND",
          "value": "AND",
          "description": "Only rows that meet all the conditions are selected"
        },
        {
          "name": "OR",
          "value": "OR",
          "description": "Rows that meet at least one condition are selected"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "lt": 4.3
              }
            }
          ],
          "resource": [
            "sheet"
          ],
          "operation": [
            "read"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Combine Filters",
      "name": "combineFilters",
      "type": "options",
      "default": "AND",
      "description": "How to combine the conditions defined in \"Filters\": AND requires all conditions to be true, OR requires at least one condition to be true",
      "options": [
        {
          "name": "AND",
          "value": "AND",
          "description": "Only rows that meet all the conditions are selected"
        },
        {
          "name": "OR",
          "value": "OR",
          "description": "Rows that meet at least one condition are selected"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 4.3
              }
            }
          ],
          "resource": [
            "sheet"
          ],
          "operation": [
            "read"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Data Location on Sheet",
          "name": "dataLocationOnSheet",
          "type": "fixedCollection",
          "placeholder": "Select Range",
          "default": {
            "values": {
              "rangeDefinition": "detectAutomatically"
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Range Definition",
                  "name": "rangeDefinition",
                  "type": "options",
                  "options": [
                    {
                      "name": "Detect Automatically",
                      "value": "detectAutomatically",
                      "description": "Automatically detect the data range"
                    },
                    {
                      "name": "Specify Range (A1 Notation)",
                      "value": "specifyRangeA1",
                      "description": "Manually specify the data range"
                    },
                    {
                      "name": "Specify Range (Rows)",
                      "value": "specifyRange",
                      "description": "Manually specify the data range"
                    }
                  ],
                  "default": ""
                },
                {
                  "displayName": "Read Rows Until",
                  "name": "readRowsUntil",
                  "type": "options",
                  "default": "lastRowInSheet",
                  "options": [
                    {
                      "name": "First Empty Row",
                      "value": "firstEmptyRow"
                    },
                    {
                      "name": "Last Row In Sheet",
                      "value": "lastRowInSheet"
                    }
                  ],
                  "displayOptions": {
                    "show": {
                      "rangeDefinition": [
                        "detectAutomatically"
                      ]
                    }
                  }
                },
                {
                  "displayName": "Header Row",
                  "name": "headerRow",
                  "type": "number",
                  "typeOptions": {
                    "minValue": 1
                  },
                  "default": 1,
                  "description": "Index is relative to the set 'Range', first row index is 1",
                  "hint": "Index of the row which contains the column names",
                  "displayOptions": {
                    "show": {
                      "rangeDefinition": [
                        "specifyRange"
                      ]
                    }
                  }
                },
                {
                  "displayName": "First Data Row",
                  "name": "firstDataRow",
                  "type": "number",
                  "typeOptions": {
                    "minValue": 1
                  },
                  "default": 2,
                  "description": "Index is relative to the set 'Range', first row index is 1",
                  "hint": "Index of first row which contains the actual data",
                  "displayOptions": {
                    "show": {
                      "rangeDefinition": [
                        "specifyRange"
                      ]
                    }
                  }
                },
                {
                  "displayName": "Range",
                  "name": "range",
                  "type": "string",
                  "default": "",
                  "placeholder": "A:Z",
                  "description": "The table range to read from or to append data to. See the Google <a href=\"https://developers.google.com/sheets/api/guides/values#writing\">documentation</a> for the details.",
                  "hint": "You can specify both the rows and the columns, e.g. C4:E7",
                  "displayOptions": {
                    "show": {
                      "rangeDefinition": [
                        "specifyRangeA1"
                      ]
                    }
                  }
                }
              ]
            }
          ]
        },
        {
          "displayName": "Output Formatting",
          "name": "outputFormatting",
          "type": "fixedCollection",
          "placeholder": "Add Formatting",
          "default": {
            "values": {
              "general": "UNFORMATTED_VALUE",
              "date": "FORMATTED_STRING"
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "General Formatting",
                  "name": "general",
                  "type": "options",
                  "options": [
                    {
                      "name": "Values (unformatted)",
                      "value": "UNFORMATTED_VALUE",
                      "description": "Numbers stay as numbers, but any currency signs or special formatting is lost"
                    },
                    {
                      "name": "Values (formatted)",
                      "value": "FORMATTED_VALUE",
                      "description": "Numbers are turned to text, and displayed as in Google Sheets (e.g. with commas or currency signs)"
                    },
                    {
                      "name": "Formulas",
                      "value": "FORMULA"
                    }
                  ],
                  "default": "",
                  "description": "Determines how values should be rendered in the output"
                },
                {
                  "displayName": "Date Formatting",
                  "name": "date",
                  "type": "options",
                  "default": "",
                  "options": [
                    {
                      "name": "Formatted Text",
                      "value": "FORMATTED_STRING",
                      "description": "As displayed in Google Sheets, e.g. '01/01/2022'"
                    },
                    {
                      "name": "Serial Number",
                      "value": "SERIAL_NUMBER",
                      "description": "A number representing the number of days since Dec 30, 1899"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "displayName": "Return only First Matching Row",
          "name": "returnFirstMatch",
          "type": "boolean",
          "default": false,
          "description": "Whether to select the first row of the sheet or the first matching row (if filters are set)",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 4.5
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "When Filter Has Multiple Matches",
          "name": "returnAllMatches",
          "type": "options",
          "default": "returnFirstMatch",
          "options": [
            {
              "name": "Return First Match",
              "value": "returnFirstMatch",
              "description": "Return only the first match"
            },
            {
              "name": "Return All Matches",
              "value": "returnAllMatches",
              "description": "Return all values that match"
            }
          ],
          "description": "By default only the first result gets returned, Set to \"Return All Matches\" to get multiple matches",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "lt": 4.5
                  }
                }
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "read"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Data Mode",
      "name": "dataMode",
      "type": "options",
      "default": "defineBelow",
      "description": "Whether to insert the input data this node receives in the new row",
      "options": [
        {
          "name": "Auto-Map Input Data to Columns",
          "value": "autoMapInputData",
          "description": "Use when node input properties match destination column names"
        },
        {
          "name": "Map Each Column Below",
          "value": "defineBelow",
          "description": "Set the value for each destination column"
        },
        {
          "name": "Nothing",
          "value": "nothing",
          "description": "Do not send anything"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "update"
          ],
          "@version": [
            3
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Column to match on",
      "name": "columnToMatchOn",
      "type": "options",
      "default": "",
      "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "update"
          ],
          "@version": [
            3
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "sheetName.value"
        ],
        "loadOptionsMethod": "getSheetHeaderRowAndSkipEmpty"
      }
    },
    {
      "displayName": "Value of Column to Match On",
      "name": "valueToMatchOn",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "update"
          ],
          "dataMode": [
            "defineBelow"
          ],
          "@version": [
            3
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Values to Send",
      "name": "fieldsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Field",
          "name": "values",
          "values": [
            {
              "displayName": "Column",
              "name": "column",
              "type": "options",
              "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
              "typeOptions": {
                "loadOptionsDependsOn": [
                  "sheetName.value",
                  "columnToMatchOn"
                ],
                "loadOptionsMethod": "getSheetHeaderRowAndAddColumn"
              },
              "default": ""
            },
            {
              "displayName": "Column Name",
              "name": "columnName",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "column": [
                    "newColumn"
                  ]
                }
              }
            },
            {
              "displayName": "Value",
              "name": "fieldValue",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "update"
          ],
          "dataMode": [
            "defineBelow"
          ],
          "@version": [
            3
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Columns",
      "name": "columns",
      "type": "resourceMapper",
      "default": {
        "mappingMode": "defineBelow",
        "value": null
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "update"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 4.7
              }
            }
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "sheetName.value"
        ],
        "resourceMapper": {
          "resourceMapperMethod": "getMappingColumns",
          "mode": "update",
          "fieldWords": {
            "singular": "column",
            "plural": "columns"
          },
          "addAllFields": true,
          "multiKeyMatch": false,
          "allowEmptyValues": true
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Columns",
      "name": "columns",
      "type": "resourceMapper",
      "default": {
        "mappingMode": "defineBelow",
        "value": null
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "update"
          ],
          "@version": [
            {
              "_cnd": {
                "between": {
                  "from": 4,
                  "to": 4.6
                }
              }
            }
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "sheetName.value"
        ],
        "resourceMapper": {
          "resourceMapperMethod": "getMappingColumns",
          "mode": "update",
          "fieldWords": {
            "singular": "column",
            "plural": "columns"
          },
          "addAllFields": true,
          "multiKeyMatch": false
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Cell Format",
          "name": "cellFormat",
          "type": "options",
          "options": [
            {
              "name": "Let Google Sheets format",
              "value": "USER_ENTERED",
              "description": "Cells are styled as if you typed the values into Google Sheets directly"
            },
            {
              "name": "Let n8n format",
              "value": "RAW",
              "description": "Cells have the same types as the input data"
            }
          ],
          "default": "USER_ENTERED",
          "description": "Determines how data should be interpreted"
        },
        {
          "displayName": "Data Location on Sheet",
          "name": "locationDefine",
          "type": "fixedCollection",
          "placeholder": "Select Range",
          "default": {
            "values": {}
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Header Row",
                  "name": "headerRow",
                  "type": "number",
                  "typeOptions": {
                    "minValue": 1
                  },
                  "default": 1,
                  "description": "Index is relative to the set 'Range', first row index is 1",
                  "hint": "Index of the row which contains the column names"
                },
                {
                  "displayName": "First Data Row",
                  "name": "firstDataRow",
                  "type": "number",
                  "typeOptions": {
                    "minValue": 1
                  },
                  "default": 2,
                  "description": "Index is relative to the set 'Range', first row index is 1",
                  "hint": "Index of first row which contains the actual data"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Handling extra fields in input",
          "name": "handlingExtraData",
          "type": "options",
          "options": [
            {
              "name": "Insert in New Column(s)",
              "value": "insertInNewColumn",
              "description": "Create a new column for extra data"
            },
            {
              "name": "Ignore Them",
              "value": "ignoreIt",
              "description": "Ignore extra data"
            },
            {
              "name": "Error",
              "value": "error",
              "description": "Throw an error"
            }
          ],
          "displayOptions": {
            "show": {
              "/dataMode": [
                "autoMapInputData"
              ]
            }
          },
          "default": "insertInNewColumn",
          "description": "What do to with fields that don't match any columns in the Google Sheet"
        },
        {
          "displayName": "Handling extra fields in input",
          "name": "handlingExtraData",
          "type": "options",
          "options": [
            {
              "name": "Insert in New Column(s)",
              "value": "insertInNewColumn",
              "description": "Create a new column for extra data"
            },
            {
              "name": "Ignore Them",
              "value": "ignoreIt",
              "description": "Ignore extra data"
            },
            {
              "name": "Error",
              "value": "error",
              "description": "Throw an error"
            }
          ],
          "displayOptions": {
            "show": {
              "/columns.mappingMode": [
                "autoMapInputData"
              ]
            }
          },
          "default": "insertInNewColumn",
          "description": "What do to with fields that don't match any columns in the Google Sheet"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "update"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Data Mode",
      "name": "dataMode",
      "type": "options",
      "default": "defineBelow",
      "description": "Whether to insert the input data this node receives in the new row",
      "options": [
        {
          "name": "Auto-Map Input Data to Columns",
          "value": "autoMapInputData",
          "description": "Use when node input properties match destination column names"
        },
        {
          "name": "Map Each Column Below",
          "value": "defineBelow",
          "description": "Set the value for each destination column"
        },
        {
          "name": "Nothing",
          "value": "nothing",
          "description": "Do not send anything"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "appendOrUpdate"
          ],
          "@version": [
            3
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Column to match on",
      "name": "columnToMatchOn",
      "type": "options",
      "default": "",
      "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "appendOrUpdate"
          ],
          "@version": [
            3
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "sheetName.value"
        ],
        "loadOptionsMethod": "getSheetHeaderRowAndSkipEmpty"
      }
    },
    {
      "displayName": "Value of Column to Match On",
      "name": "valueToMatchOn",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "appendOrUpdate"
          ],
          "dataMode": [
            "defineBelow"
          ],
          "@version": [
            3
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Values to Send",
      "name": "fieldsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Field",
          "name": "values",
          "values": [
            {
              "displayName": "Column",
              "name": "column",
              "type": "options",
              "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
              "typeOptions": {
                "loadOptionsDependsOn": [
                  "sheetName.value",
                  "columnToMatchOn"
                ],
                "loadOptionsMethod": "getSheetHeaderRowAndAddColumn"
              },
              "default": ""
            },
            {
              "displayName": "Column Name",
              "name": "columnName",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "column": [
                    "newColumn"
                  ]
                }
              }
            },
            {
              "displayName": "Value",
              "name": "fieldValue",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "appendOrUpdate"
          ],
          "dataMode": [
            "defineBelow"
          ],
          "@version": [
            3
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Columns",
      "name": "columns",
      "type": "resourceMapper",
      "default": {
        "mappingMode": "defineBelow",
        "value": null
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "appendOrUpdate"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 4.7
              }
            }
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "sheetName.value"
        ],
        "resourceMapper": {
          "resourceMapperMethod": "getMappingColumns",
          "mode": "upsert",
          "fieldWords": {
            "singular": "column",
            "plural": "columns"
          },
          "addAllFields": true,
          "multiKeyMatch": false,
          "allowEmptyValues": true
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Columns",
      "name": "columns",
      "type": "resourceMapper",
      "default": {
        "mappingMode": "defineBelow",
        "value": null
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "appendOrUpdate"
          ],
          "@version": [
            {
              "_cnd": {
                "between": {
                  "from": 4,
                  "to": 4.6
                }
              }
            }
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "sheetName.value"
        ],
        "resourceMapper": {
          "resourceMapperMethod": "getMappingColumns",
          "mode": "upsert",
          "fieldWords": {
            "singular": "column",
            "plural": "columns"
          },
          "addAllFields": true,
          "multiKeyMatch": false
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Cell Format",
          "name": "cellFormat",
          "type": "options",
          "options": [
            {
              "name": "Let Google Sheets format",
              "value": "USER_ENTERED",
              "description": "Cells are styled as if you typed the values into Google Sheets directly"
            },
            {
              "name": "Let n8n format",
              "value": "RAW",
              "description": "Cells have the same types as the input data"
            }
          ],
          "default": "USER_ENTERED",
          "description": "Determines how data should be interpreted"
        },
        {
          "displayName": "Data Location on Sheet",
          "name": "locationDefine",
          "type": "fixedCollection",
          "placeholder": "Select Range",
          "default": {
            "values": {}
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Header Row",
                  "name": "headerRow",
                  "type": "number",
                  "typeOptions": {
                    "minValue": 1
                  },
                  "default": 1,
                  "description": "Index is relative to the set 'Range', first row index is 1",
                  "hint": "Index of the row which contains the column names"
                },
                {
                  "displayName": "First Data Row",
                  "name": "firstDataRow",
                  "type": "number",
                  "typeOptions": {
                    "minValue": 1
                  },
                  "default": 2,
                  "description": "Index is relative to the set 'Range', first row index is 1",
                  "hint": "Index of first row which contains the actual data"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Handling extra fields in input",
          "name": "handlingExtraData",
          "type": "options",
          "options": [
            {
              "name": "Insert in New Column(s)",
              "value": "insertInNewColumn",
              "description": "Create a new column for extra data"
            },
            {
              "name": "Ignore Them",
              "value": "ignoreIt",
              "description": "Ignore extra data"
            },
            {
              "name": "Error",
              "value": "error",
              "description": "Throw an error"
            }
          ],
          "displayOptions": {
            "show": {
              "/dataMode": [
                "autoMapInputData"
              ]
            }
          },
          "default": "insertInNewColumn",
          "description": "What do to with fields that don't match any columns in the Google Sheet"
        },
        {
          "displayName": "Handling extra fields in input",
          "name": "handlingExtraData",
          "type": "options",
          "options": [
            {
              "name": "Insert in New Column(s)",
              "value": "insertInNewColumn",
              "description": "Create a new column for extra data"
            },
            {
              "name": "Ignore Them",
              "value": "ignoreIt",
              "description": "Ignore extra data"
            },
            {
              "name": "Error",
              "value": "error",
              "description": "Throw an error"
            }
          ],
          "displayOptions": {
            "show": {
              "/columns.mappingMode": [
                "autoMapInputData"
              ]
            }
          },
          "default": "insertInNewColumn",
          "description": "What do to with fields that don't match any columns in the Google Sheet"
        },
        {
          "displayName": "Minimise API Calls",
          "name": "useAppend",
          "type": "boolean",
          "default": false,
          "hint": "Use if your sheet has no gaps between rows or columns",
          "description": "Whether to use append instead of update(default), this is more efficient but in some cases data might be misaligned"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "sheet"
          ],
          "operation": [
            "appendOrUpdate"
          ]
        },
        "hide": {
          "sheetName": [
            ""
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a spreadsheet",
          "action": "Create spreadsheet"
        },
        {
          "name": "Delete",
          "value": "deleteSpreadsheet",
          "description": "Delete a spreadsheet",
          "action": "Delete spreadsheet"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "spreadsheet"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "The title of the spreadsheet",
      "displayOptions": {
        "show": {
          "resource": [
            "spreadsheet"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Sheets",
      "name": "sheetsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "name": "sheetValues",
          "displayName": "Sheet",
          "values": [
            {
              "displayName": "Title",
              "name": "title",
              "type": "string",
              "default": "",
              "description": "Title of the property to create"
            },
            {
              "displayName": "Hidden",
              "name": "hidden",
              "type": "boolean",
              "default": false,
              "description": "Whether the Sheet should be hidden in the UI"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "spreadsheet"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Locale",
          "name": "locale",
          "type": "string",
          "default": "",
          "placeholder": "en_US",
          "description": "The locale of the spreadsheet in one of the following formats:\n\t\t\t\t<ul>\n\t\t\t\t\t<li>en (639-1)</li>\n\t\t\t\t\t<li>fil (639-2 if no 639-1 format exists)</li>\n\t\t\t\t\t<li>en_US (combination of ISO language an country)</li>\n\t\t\t\t<ul>"
        },
        {
          "displayName": "Recalculation Interval",
          "name": "autoRecalc",
          "type": "options",
          "options": [
            {
              "name": "Default",
              "value": "",
              "description": "Default value"
            },
            {
              "name": "On Change",
              "value": "ON_CHANGE",
              "description": "Volatile functions are updated on every change"
            },
            {
              "name": "Minute",
              "value": "MINUTE",
              "description": "Volatile functions are updated on every change and every minute"
            },
            {
              "name": "Hour",
              "value": "HOUR",
              "description": "Volatile functions are updated on every change and hourly"
            }
          ],
          "default": "",
          "description": "Cell recalculation interval options"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "spreadsheet"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Document",
      "name": "documentId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "spreadsheet"
          ],
          "operation": [
            "deleteSpreadsheet"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "appendOrUpdate",
      "name": "Append or Update Row",
      "description": "Append a new row or update an existing one (upsert)"
    },
    {
      "operation": "append",
      "name": "Append Row",
      "description": "Create a new row in a sheet"
    },
    {
      "operation": "clear",
      "name": "Clear",
      "description": "Delete all the contents or a part of a sheet"
    },
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a new sheet"
    },
    {
      "operation": "remove",
      "name": "Delete",
      "description": "Permanently delete a sheet"
    },
    {
      "operation": "delete",
      "name": "Delete Rows or Columns",
      "description": "Delete columns or rows from a sheet"
    },
    {
      "operation": "read",
      "name": "Get Row(s)",
      "description": "Retrieve one or more rows from a sheet"
    },
    {
      "operation": "update",
      "name": "Update Row",
      "description": "Update an existing row in a sheet"
    }
  ]

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


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

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

  # Google Sheets Trigger node

  [Google Sheets](https://www.google.com/sheets){:target=_blank} is a web-based spreadsheet program that's part of Google's office software suite within its Google Drive service.

  /// 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 Sheets Trigger integrations](https://n8n.io/integrations/google-sheets-trigger/){:target=_blank .external-link} page.
  ///

  ## Events

  * Row added
  * Row updated
  * Row added or updated

  ## Related resources

  Refer to [Google Sheet's API documentation](https://developers.google.com/sheets/api){:target=_blank .external-link} for more information about the service.

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

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

  ## Common issues

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

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "hidden",
      "default": "triggerOAuth2",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "triggerOAuth2"
        }
      ]
    },
    {
      "displayName": "Document",
      "name": "documentId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true
    },
    {
      "displayName": "Sheet",
      "name": "sheetName",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "typeOptions": {
        "loadOptionsDependsOn": [
          "documentId.value"
        ]
      }
    },
    {
      "displayName": "Trigger On",
      "name": "event",
      "type": "options",
      "default": "anyUpdate",
      "description": "It will be triggered also by newly created columns (if the 'Columns to Watch' option is not set)",
      "options": [
        {
          "name": "Row Added",
          "value": "rowAdded"
        },
        {
          "name": "Row Updated",
          "value": "rowUpdate"
        },
        {
          "name": "Row Added or Updated",
          "value": "anyUpdate"
        }
      ],
      "required": true
    },
    {
      "displayName": "Include in Output",
      "name": "includeInOutput",
      "type": "options",
      "default": "new",
      "description": "This option will be effective only when automatically executing the workflow",
      "options": [
        {
          "name": "New Version",
          "value": "new"
        },
        {
          "name": "Old Version",
          "value": "old"
        },
        {
          "name": "Both Versions",
          "value": "both"
        }
      ],
      "displayOptions": {
        "hide": {
          "event": [
            "rowAdded"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Columns to Watch",
          "name": "columnsToWatch",
          "type": "multiOptions",
          "description": "Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "typeOptions": {
            "loadOptionsDependsOn": [
              "sheetName.value"
            ],
            "loadOptionsMethod": "getSheetHeaderRowAndSkipEmpty"
          },
          "default": [],
          "displayOptions": {
            "show": {
              "/event": [
                "anyUpdate",
                "rowUpdate"
              ]
            }
          }
        },
        {
          "displayName": "Data Location on Sheet",
          "name": "dataLocationOnSheet",
          "type": "fixedCollection",
          "placeholder": "Select Range",
          "default": {
            "values": {
              "rangeDefinition": "specifyRangeA1"
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Range Definition",
                  "name": "rangeDefinition",
                  "type": "options",
                  "options": [
                    {
                      "name": "Specify Range (A1 Notation)",
                      "value": "specifyRangeA1",
                      "description": "Manually specify the data range"
                    },
                    {
                      "name": "Specify Range (Rows)",
                      "value": "specifyRange",
                      "description": "Manually specify the data range"
                    }
                  ],
                  "default": ""
                },
                {
                  "displayName": "Header Row",
                  "name": "headerRow",
                  "type": "number",
                  "typeOptions": {
                    "minValue": 1
                  },
                  "default": 1,
                  "description": "Index of the row which contains the keys. Starts at 1. The incoming node data is matched to the keys for assignment. The matching is case sensitive.",
                  "hint": "First row is row 1",
                  "displayOptions": {
                    "show": {
                      "rangeDefinition": [
                        "specifyRange"
                      ]
                    }
                  }
                },
                {
                  "displayName": "First Data Row",
                  "name": "firstDataRow",
                  "type": "number",
                  "typeOptions": {
                    "minValue": 1
                  },
                  "default": 2,
                  "description": "Index of the first row which contains the actual data and not the keys. Starts with 1.",
                  "hint": "First row is row 1",
                  "displayOptions": {
                    "show": {
                      "rangeDefinition": [
                        "specifyRange"
                      ]
                    }
                  }
                },
                {
                  "displayName": "Range",
                  "name": "range",
                  "type": "string",
                  "default": "",
                  "placeholder": "A:Z",
                  "description": "The table range to read from or to append data to. See the Google <a href=\"https://developers.google.com/sheets/api/guides/values#writing\">documentation</a> for the details.",
                  "hint": "You can specify both the rows and the columns, e.g. C4:E7",
                  "displayOptions": {
                    "show": {
                      "rangeDefinition": [
                        "specifyRangeA1"
                      ]
                    }
                  }
                }
              ]
            }
          ]
        },
        {
          "displayName": "Value Render",
          "name": "valueRender",
          "type": "options",
          "options": [
            {
              "name": "Unformatted",
              "value": "UNFORMATTED_VALUE",
              "description": "Values will be calculated, but not formatted in the reply"
            },
            {
              "name": "Formatted",
              "value": "FORMATTED_VALUE",
              "description": "Values will be formatted and calculated according to the cell's formatting (based on the spreadsheet's locale)"
            },
            {
              "name": "Formula",
              "value": "FORMULA",
              "description": "Values will not be calculated. The reply will include the formulas."
            }
          ],
          "default": "UNFORMATTED_VALUE",
          "description": "Determines how values will be rendered in the output. <a href=\"https://developers.google.com/sheets/api/reference/rest/v4/ValueRenderOption\" target=\"_blank\">More info</a>.",
          "displayOptions": {
            "hide": {
              "/event": [
                "anyUpdate",
                "rowUpdate"
              ]
            }
          }
        },
        {
          "displayName": "DateTime Render",
          "name": "dateTimeRenderOption",
          "type": "options",
          "options": [
            {
              "name": "Serial Number",
              "value": "SERIAL_NUMBER",
              "description": "Fields will be returned as doubles in \"serial number\" format (as popularized by Lotus 1-2-3)"
            },
            {
              "name": "Formatted String",
              "value": "FORMATTED_STRING",
              "description": "Fields will be rendered as strings in their given number format (which depends on the spreadsheet locale)"
            }
          ],
          "default": "SERIAL_NUMBER",
          "description": "Determines how dates should be rendered in the output.  <a href=\"https://developers.google.com/sheets/api/reference/rest/v4/DateTimeRenderOption\" target=\"_blank\">More info</a>.",
          "displayOptions": {
            "hide": {
              "/event": [
                "anyUpdate",
                "rowUpdate"
              ]
            }
          }
        }
      ]
    }
  ]

credentials_required:
  [
    {
      "name": "googleSheetsTriggerOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "triggerOAuth2"
          ]
        }
      }
    }
  ]


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

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

  # Google Slides node

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

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

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

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

  ## Operations

  * Page
      * Get a page
      * Get a thumbnail
  * Presentation
      * Create a presentation
      * Get a presentation
      * Get presentation slides
      * Replace text in a presentation

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "serviceAccount",
      "options": [
        {
          "name": "OAuth2",
          "value": "oAuth2"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ],
      "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": "presentation",
      "options": [
        {
          "name": "Page",
          "value": "page"
        },
        {
          "name": "Presentation",
          "value": "presentation"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a presentation",
          "action": "Create a presentation"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a presentation",
          "action": "Get a presentation"
        },
        {
          "name": "Get Slides",
          "value": "getSlides",
          "description": "Get presentation slides",
          "action": "Get slides from a presentation"
        },
        {
          "name": "Replace Text",
          "value": "replaceText",
          "description": "Replace text in a presentation",
          "action": "Replace text in a presentation"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "presentation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get a page",
          "action": "Get a page"
        },
        {
          "name": "Get Thumbnail",
          "value": "getThumbnail",
          "description": "Get a thumbnail",
          "action": "Get the thumbnail for a page"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "page"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "Title of the presentation to create",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "presentation"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Presentation ID",
      "name": "presentationId",
      "type": "string",
      "default": "",
      "description": "ID of the presentation to retrieve. Found in the presentation URL: <code>https://docs.google.com/presentation/d/PRESENTATION_ID/edit</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "presentation",
            "page"
          ],
          "operation": [
            "get",
            "getThumbnail",
            "getSlides",
            "replaceText"
          ]
        }
      }
    },
    {
      "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": [
            "getSlides"
          ],
          "resource": [
            "presentation"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getSlides"
          ],
          "resource": [
            "presentation"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Page Object ID",
      "name": "pageObjectId",
      "type": "string",
      "default": "",
      "description": "ID of the page object to retrieve",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "page"
          ],
          "operation": [
            "get",
            "getThumbnail"
          ]
        }
      }
    },
    {
      "displayName": "Texts To Replace",
      "name": "textUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "name": "textValues",
          "displayName": "Text",
          "values": [
            {
              "displayName": "Match Case",
              "name": "matchCase",
              "type": "boolean",
              "default": false,
              "description": "Whether the search should respect case. True : the search is case sensitive. False : the search is case insensitive."
            },
            {
              "displayName": "Slide Names or IDs",
              "name": "pageObjectIds",
              "type": "multiOptions",
              "default": [],
              "typeOptions": {
                "loadOptionsMethod": "getPages",
                "loadOptionsDependsOn": [
                  "presentationId"
                ]
              },
              "description": "If non-empty, limits the matches to slide elements only on the given slides. Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
            },
            {
              "displayName": "Search For",
              "name": "text",
              "type": "string",
              "default": "",
              "description": "The text to search for in the slide"
            },
            {
              "displayName": "Replace With",
              "name": "replaceText",
              "type": "string",
              "default": "",
              "description": "The text that will replace the matched text"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "presentation"
          ],
          "operation": [
            "replaceText"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Revision ID",
          "name": "revisionId",
          "type": "string",
          "default": "",
          "description": "The revision ID of the presentation required for the write request. If specified and the requiredRevisionId doesn't exactly match the presentation's current revisionId, the request will not be processed and will return a 400 bad request error."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "replaceText"
          ],
          "resource": [
            "presentation"
          ]
        }
      }
    },
    {
      "displayName": "Download",
      "name": "download",
      "type": "boolean",
      "default": false,
      "description": "Name of the binary property to which to write the data of the read page",
      "displayOptions": {
        "show": {
          "resource": [
            "page"
          ],
          "operation": [
            "getThumbnail"
          ]
        }
      }
    },
    {
      "displayName": "Put Output File in Field",
      "name": "binaryProperty",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "page"
          ],
          "operation": [
            "getThumbnail"
          ],
          "download": [
            true
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a presentation"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a presentation"
    },
    {
      "operation": "getSlides",
      "name": "Get Slides",
      "description": "Get presentation slides"
    },
    {
      "operation": "replaceText",
      "name": "Replace Text",
      "description": "Replace text in a presentation"
    }
  ]

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


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

outputs:
  [
  "main"
  ]

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

  # Google Tasks node

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

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

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

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

  ## Operations

  * Task
      * Add a task to task list
      * Delete a task
      * Retrieve a task
      * Retrieve all tasks from a task list
      * Update a task

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Task",
          "value": "task"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Add a task to tasklist",
          "action": "Create a task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a task",
          "action": "Delete a task"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Retrieve a task",
          "action": "Get a task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many tasks from a tasklist",
          "action": "Get many tasks"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a task",
          "action": "Update a task"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "TaskList Name or ID",
      "name": "task",
      "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": [
            "task"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getTasks"
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "Title of the task",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Completion Date",
          "name": "completed",
          "type": "dateTime",
          "default": "",
          "description": "Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed."
        },
        {
          "displayName": "Deleted",
          "name": "deleted",
          "type": "boolean",
          "default": false,
          "description": "Whether the task has been deleted"
        },
        {
          "displayName": "Due Date",
          "name": "dueDate",
          "type": "dateTime",
          "default": "",
          "description": "Due date of the task"
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "Additional Notes"
        },
        {
          "displayName": "Parent",
          "name": "parent",
          "type": "string",
          "default": "",
          "description": "Parent task identifier. If the task is created at the top level, this parameter is omitted."
        },
        {
          "displayName": "Previous",
          "name": "previous",
          "type": "string",
          "default": "",
          "description": "Previous sibling task identifier. If the task is created at the first position among its siblings, this parameter is omitted."
        },
        {
          "displayName": "Status",
          "name": "status",
          "type": "options",
          "options": [
            {
              "name": "Needs Action",
              "value": "needsAction"
            },
            {
              "name": "Completed",
              "value": "completed"
            }
          ],
          "default": "",
          "description": "Current status of the task"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "TaskList Name or ID",
      "name": "task",
      "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": [
            "delete"
          ],
          "resource": [
            "task"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getTasks"
      }
    },
    {
      "displayName": "Task ID",
      "name": "taskId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "TaskList Name or ID",
      "name": "task",
      "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": [
            "get"
          ],
          "resource": [
            "task"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getTasks"
      }
    },
    {
      "displayName": "Task ID",
      "name": "taskId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "TaskList Name or ID",
      "name": "task",
      "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": [
            "getAll"
          ],
          "resource": [
            "task"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getTasks"
      }
    },
    {
      "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": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 20,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "task"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Completed Max",
          "name": "completedMax",
          "type": "dateTime",
          "default": "",
          "description": "Upper bound for a task completion date (as a RFC 3339 timestamp) to filter by"
        },
        {
          "displayName": "Completed Min",
          "name": "completedMin",
          "type": "dateTime",
          "default": "",
          "description": "Lower bound for a task completion date (as a RFC 3339 timestamp) to filter by"
        },
        {
          "displayName": "Due Min",
          "name": "dueMin",
          "type": "dateTime",
          "default": "",
          "description": "Lower bound for a task due date (as a RFC 3339 timestamp) to filter by"
        },
        {
          "displayName": "Due Max",
          "name": "dueMax",
          "type": "dateTime",
          "default": "",
          "description": "Upper bound for a task due date (as a RFC 3339 timestamp) to filter by"
        },
        {
          "displayName": "Show Completed",
          "name": "showCompleted",
          "type": "boolean",
          "default": true,
          "description": "Whether completed tasks are returned in the result. <strong>Show Hidden</strong> must also be True to show tasks completed in first party clients such as the web UI or Google's mobile apps."
        },
        {
          "displayName": "Show Deleted",
          "name": "showDeleted",
          "type": "boolean",
          "default": false,
          "description": "Whether deleted tasks are returned in the result"
        },
        {
          "displayName": "Show Hidden",
          "name": "showHidden",
          "type": "boolean",
          "default": false,
          "description": "Whether hidden tasks are returned in the result"
        },
        {
          "displayName": "Updated Min",
          "name": "updatedMin",
          "type": "dateTime",
          "default": "",
          "description": "Lower bound for a task last modification time (as a RFC 3339 timestamp) to filter by"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "TaskList Name or ID",
      "name": "task",
      "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": [
            "update"
          ],
          "resource": [
            "task"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getTasks"
      }
    },
    {
      "displayName": "Task ID",
      "name": "taskId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Completion Date",
          "name": "completed",
          "type": "dateTime",
          "default": "",
          "description": "Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed."
        },
        {
          "displayName": "Deleted",
          "name": "deleted",
          "type": "boolean",
          "default": false,
          "description": "Whether the task has been deleted"
        },
        {
          "displayName": "Due Date",
          "name": "dueDate",
          "type": "dateTime",
          "default": "",
          "description": "Due date of the task"
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "Additional Notes"
        },
        {
          "displayName": "Previous",
          "name": "previous",
          "type": "string",
          "default": "",
          "description": "Previous sibling task identifier. If the task is created at the first position among its siblings, this parameter is omitted."
        },
        {
          "displayName": "Status",
          "name": "status",
          "type": "options",
          "options": [
            {
              "name": "Needs Update",
              "value": "needsAction"
            },
            {
              "name": "Completed",
              "value": "completed"
            }
          ],
          "default": "",
          "description": "Current status of the task"
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "description": "Title of the task"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "task"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Add a task to tasklist"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a task"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Retrieve a task"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve many tasks from a tasklist"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a task"
    }
  ]


node_type: nodes-base.googleTranslate
package_name: n8n-nodes-base
display_name: Google Translate
description: Translate data using Google Translate
category: input
development_style: programmatic
version: 2
outputs:
  [
  "main"
  ]

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

  # Google Translate node

  Use the Google Translate node to automate work in Google Translate, and integrate Google Translate with other applications. n8n has built-in support for a wide range of Google Translate features, including translating languages.

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

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

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

  ## Operations

  * Language
      * Translate data

  ## Templates and examples

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

  --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": "language",
      "options": [
        {
          "name": "Language",
          "value": "language"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "translate",
      "options": [
        {
          "name": "Translate",
          "value": "translate",
          "description": "Translate data",
          "action": "Translate a language"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "language"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Text",
      "name": "text",
      "type": "string",
      "default": "",
      "description": "The input text to translate",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "translate"
          ]
        }
      }
    },
    {
      "displayName": "Translate To",
      "name": "translateTo",
      "type": "options",
      "default": "",
      "description": "The language to use for translation of the input text, set to one of the language codes listed in <a href=\"https://cloud.google.com/translate/docs/languages\">Language Support</a>. 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": [
            "translate"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getLanguages"
      }
    }
  ]

operations:
  [
    {
      "operation": "translate",
      "name": "Translate",
      "description": "Translate data"
    }
  ]

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


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

outputs:
  [
  "main"
  ]

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

  # YouTube node

  Use the YouTube node to automate work in YouTube, and integrate YouTube with other applications. n8n has built-in support for a wide range of YouTube features, including retrieving and updating channels, as well as creating and deleting playlists. 

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

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

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

  ## Operations

  * Channel
      * Retrieve a channel
      * Retrieve all channels
      * Update a channel
      * Upload a channel banner
  * Playlist
      * Create a playlist
      * Delete a playlist
      * Get a playlist
      * Retrieve all playlists
      * Update a playlist
  * Playlist Item
      * Add an item to a playlist
      * Delete a item from a playlist
      * Get a playlist's item
      * Retrieve all playlist items
  * Video
      * Delete a video
      * Get a video
      * Retrieve all videos
      * Rate a video
      * Update a video
      * Upload a video
  * Video Category
      * Retrieve all video categories

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "channel",
      "options": [
        {
          "name": "Channel",
          "value": "channel"
        },
        {
          "name": "Playlist",
          "value": "playlist"
        },
        {
          "name": "Playlist Item",
          "value": "playlistItem"
        },
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "Video Category",
          "value": "videoCategory"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Retrieve a channel",
          "action": "Get a channel"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many channels",
          "action": "Get many channels"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a channel",
          "action": "Update a channel"
        },
        {
          "name": "Upload Banner",
          "value": "uploadBanner",
          "description": "Upload a channel banner",
          "action": "Upload a channel banner"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "channel"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Fields",
      "name": "part",
      "type": "multiOptions",
      "default": [
        "*"
      ],
      "description": "The fields parameter specifies a comma-separated list of one or more channel resource properties that the API response will include",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Branding Settings",
          "value": "brandingSettings"
        },
        {
          "name": "Content Details",
          "value": "contentDetails"
        },
        {
          "name": "Content Owner Details",
          "value": "contentOwnerDetails"
        },
        {
          "name": "ID",
          "value": "id"
        },
        {
          "name": "Localizations",
          "value": "localizations"
        },
        {
          "name": "Snippet",
          "value": "snippet"
        },
        {
          "name": "Statistics",
          "value": "statistics"
        },
        {
          "name": "Status",
          "value": "status"
        },
        {
          "name": "Topic Details",
          "value": "topicDetails"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "channel"
          ]
        }
      }
    },
    {
      "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": [
            "channel"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 25,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "channel"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 50
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Category ID",
          "name": "categoryId",
          "type": "string",
          "default": "",
          "description": "The categoryId parameter specifies a YouTube guide category, thereby requesting YouTube channels associated with that category"
        },
        {
          "displayName": "For Username",
          "name": "forUsername",
          "type": "string",
          "default": "",
          "description": "The forUsername parameter specifies a YouTube username, thereby requesting the channel associated with that username"
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "default": "",
          "description": "The ID parameter specifies a comma-separated list of the YouTube channel ID(s) for the resource(s) that are being retrieved. In a channel resource, the ID property specifies the channel's YouTube channel ID."
        },
        {
          "displayName": "Managed By Me",
          "name": "managedByMe",
          "type": "boolean",
          "default": false,
          "description": "Whether to instruct the API to only return channels managed by the content owner that the onBehalfOfContentOwner parameter specifies"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "channel"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Language Code",
          "name": "h1",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLanguages"
          },
          "default": "",
          "description": "The hl parameter instructs the API to retrieve localized resource metadata for a specific application language that the YouTube website supports. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "channel"
          ]
        }
      }
    },
    {
      "displayName": "Channel ID",
      "name": "channelId",
      "type": "string",
      "default": "",
      "description": "ID of the channel",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "channel"
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "part",
      "type": "multiOptions",
      "default": [
        "*"
      ],
      "description": "The fields parameter specifies a comma-separated list of one or more channel resource properties that the API response will include",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Branding Settings",
          "value": "brandingSettings"
        },
        {
          "name": "Content Details",
          "value": "contentDetails"
        },
        {
          "name": "Content Owner Details",
          "value": "contentOwnerDetails"
        },
        {
          "name": "ID",
          "value": "id"
        },
        {
          "name": "Localizations",
          "value": "localizations"
        },
        {
          "name": "Snippet",
          "value": "snippet"
        },
        {
          "name": "Statistics",
          "value": "statistics"
        },
        {
          "name": "Status",
          "value": "status"
        },
        {
          "name": "Topic Details",
          "value": "topicDetails"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "channel"
          ]
        }
      }
    },
    {
      "displayName": "Channel ID",
      "name": "channelId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "channel"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Branding Settings",
          "name": "brandingSettingsUi",
          "type": "fixedCollection",
          "default": {},
          "description": "Encapsulates information about the branding of the channel",
          "placeholder": "Add Branding Settings",
          "typeOptions": {
            "multipleValues": false
          },
          "options": [
            {
              "name": "channelSettingsValues",
              "displayName": "Channel Settings",
              "values": [
                {
                  "displayName": "Channel",
                  "name": "channel",
                  "type": "collection",
                  "default": {},
                  "placeholder": "Add Channel Settings",
                  "typeOptions": {
                    "multipleValues": false
                  },
                  "options": [
                    {
                      "displayName": "Country",
                      "name": "country",
                      "type": "string",
                      "default": "",
                      "description": "The country with which the channel is associated. Update this property to set the value of the snippet.country property."
                    },
                    {
                      "displayName": "Description",
                      "name": "description",
                      "type": "string",
                      "default": "",
                      "description": "The channel description, which appears in the channel information box on your channel page. The property's value has a maximum length of 1000 characters."
                    },
                    {
                      "displayName": "Default Language",
                      "name": "defaultLanguage",
                      "type": "string",
                      "default": "",
                      "description": "The content tab that users should display by default when viewers arrive at your channel page"
                    },
                    {
                      "displayName": "Default Tab",
                      "name": "defaultTab",
                      "type": "string",
                      "default": "The content tab that users should display by default when viewers arrive at your channel page."
                    },
                    {
                      "displayName": "Featured Channels Title",
                      "name": "featuredChannelsTitle",
                      "type": "string",
                      "default": "",
                      "description": "The title that displays above the featured channels module. The title has a maximum length of 30 characters."
                    },
                    {
                      "displayName": "Featured Channels Urls",
                      "name": "featuredChannelsUrls",
                      "type": "string",
                      "typeOptions": {
                        "multipleValues": true
                      },
                      "description": "A list of up to 100 channels that you would like to link to from the featured channels module. The property value is a list of YouTube channel ID values, each of which uniquely identifies a channel.",
                      "default": []
                    },
                    {
                      "displayName": "Keywords",
                      "name": "keywords",
                      "type": "string",
                      "placeholder": "tech,news",
                      "description": "Keywords associated with your channel. The value is a space-separated list of strings.",
                      "default": ""
                    },
                    {
                      "displayName": "Moderate Comments",
                      "name": "moderateComments",
                      "type": "boolean",
                      "description": "Whether user-submitted comments left on the channel page need to be approved by the channel owner to be publicly visible",
                      "default": false
                    },
                    {
                      "displayName": "Profile Color",
                      "name": "profileColor",
                      "type": "string",
                      "default": "",
                      "description": "A prominent color that complements the channel's content"
                    },
                    {
                      "displayName": "Show Related Channels",
                      "name": "showRelatedChannels",
                      "type": "boolean",
                      "description": "Whether YouTube should show an algorithmically generated list of related channels on your channel page",
                      "default": false
                    },
                    {
                      "displayName": "Show Browse View",
                      "name": "showBrowseView",
                      "type": "boolean",
                      "description": "Whether the channel page should display content in a browse or feed view",
                      "default": false
                    },
                    {
                      "displayName": "Tracking Analytics AccountId",
                      "name": "trackingAnalyticsAccountId",
                      "type": "string",
                      "description": "The ID for a Google Analytics account that you want to use to track and measure traffic to your channel",
                      "default": ""
                    },
                    {
                      "displayName": "Unsubscribed Trailer",
                      "name": "unsubscribedTrailer",
                      "type": "string",
                      "description": "The video that should play in the featured video module in the channel page's browse view for unsubscribed viewers",
                      "default": ""
                    }
                  ]
                }
              ],
              "description": "The channel object encapsulates branding properties of the channel page"
            },
            {
              "name": "imageSettingsValues",
              "displayName": "Image Settings",
              "values": [
                {
                  "displayName": "Image",
                  "name": "image",
                  "type": "collection",
                  "default": {},
                  "placeholder": "Add Channel Settings",
                  "description": "The image object encapsulates information about images that display on the channel's channel page or video watch pages",
                  "typeOptions": {
                    "multipleValues": false
                  },
                  "options": [
                    {
                      "displayName": "Banner External Url",
                      "name": "bannerExternalUrl",
                      "type": "string",
                      "default": ""
                    },
                    {
                      "displayName": "Tracking Image Url",
                      "name": "trackingImageUrl",
                      "type": "string",
                      "default": ""
                    },
                    {
                      "displayName": "Watch Icon Image Url",
                      "name": "watchIconImageUrl",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "name": "statusValue",
              "displayName": "Status",
              "values": [
                {
                  "displayName": "Status",
                  "name": "status",
                  "type": "collection",
                  "default": {},
                  "placeholder": "Add Status",
                  "typeOptions": {
                    "multipleValues": false
                  },
                  "options": [
                    {
                      "displayName": "Self Declared Made For Kids",
                      "name": "selfDeclaredMadeForKids",
                      "type": "boolean",
                      "default": false
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "channel"
          ]
        }
      }
    },
    {
      "displayName": "Channel ID",
      "name": "channelId",
      "type": "string",
      "default": "",
      "description": "ID of the channel",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "uploadBanner"
          ],
          "resource": [
            "channel"
          ]
        }
      }
    },
    {
      "displayName": "Input Binary Field",
      "name": "binaryProperty",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "uploadBanner"
          ],
          "resource": [
            "channel"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a playlist",
          "action": "Create a playlist"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a playlist",
          "action": "Delete a playlist"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a playlist",
          "action": "Get a playlist"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many playlists",
          "action": "Get many playlists"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a playlist",
          "action": "Update a playlist"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "playlist"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "The playlist's title",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "The playlist's description"
        },
        {
          "displayName": "Privacy Status",
          "name": "privacyStatus",
          "type": "options",
          "options": [
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Public",
              "value": "public"
            },
            {
              "name": "Unlisted",
              "value": "unlisted"
            }
          ],
          "default": "",
          "description": "The playlist's privacy status"
        },
        {
          "displayName": "Tags",
          "name": "tags",
          "type": "string",
          "default": "",
          "description": "Keyword tags associated with the playlist. Mulplie can be defined separated by comma."
        },
        {
          "displayName": "Default Language Name or ID",
          "name": "defaultLanguage",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLanguages"
          },
          "default": "",
          "description": "The language of the text in the playlist resource's title and description properties. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "On Behalf Of Content Owner Channel",
          "name": "onBehalfOfContentOwnerChannel",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter."
        },
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Playlist ID",
      "name": "playlistId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "part",
      "type": "multiOptions",
      "default": [
        "*"
      ],
      "description": "The fields parameter specifies a comma-separated list of one or more playlist resource properties that the API response will include",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Content Details",
          "value": "contentDetails"
        },
        {
          "name": "ID",
          "value": "id"
        },
        {
          "name": "Localizations",
          "value": "localizations"
        },
        {
          "name": "Player",
          "value": "player"
        },
        {
          "name": "Snippet",
          "value": "snippet"
        },
        {
          "name": "Status",
          "value": "status"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        },
        {
          "displayName": "On Behalf Of Content Owner Channel",
          "name": "onBehalfOfContentOwnerChannel",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Playlist ID",
      "name": "playlistId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "part",
      "type": "multiOptions",
      "default": [
        "*"
      ],
      "description": "The fields parameter specifies a comma-separated list of one or more playlist resource properties that the API response will include",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Content Details",
          "value": "contentDetails"
        },
        {
          "name": "ID",
          "value": "id"
        },
        {
          "name": "Localizations",
          "value": "localizations"
        },
        {
          "name": "Player",
          "value": "player"
        },
        {
          "name": "Snippet",
          "value": "snippet"
        },
        {
          "name": "Status",
          "value": "status"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "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": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 25,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "playlist"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 50
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Channel ID",
          "name": "channelId",
          "type": "string",
          "default": "",
          "description": "This value indicates that the API should only return the specified channel's playlists"
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "default": "",
          "description": "The ID parameter specifies a comma-separated list of the YouTube playlist ID(s) for the resource(s) that are being retrieved. In a playlist resource, the ID property specifies the playlist's YouTube playlist ID."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "On Behalf Of Content Owner Channel",
          "name": "onBehalfOfContentOwnerChannel",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter."
        },
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Playlist ID",
      "name": "playlistId",
      "type": "string",
      "default": "",
      "description": "The playlist's title",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "The playlist's title",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Default Language Name or ID",
          "name": "defaultLanguage",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLanguages"
          },
          "default": "",
          "description": "The language of the text in the playlist resource's title and description properties. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "The playlist's description"
        },
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        },
        {
          "displayName": "Privacy Status",
          "name": "privacyStatus",
          "type": "options",
          "options": [
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Public",
              "value": "public"
            },
            {
              "name": "Unlisted",
              "value": "unlisted"
            }
          ],
          "default": "",
          "description": "The playlist's privacy status"
        },
        {
          "displayName": "Tags",
          "name": "tags",
          "type": "string",
          "default": "",
          "description": "Keyword tags associated with the playlist. Mulplie can be defined separated by comma."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "playlist"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "add",
      "options": [
        {
          "name": "Add",
          "value": "add",
          "description": "Add an item to a playlist",
          "action": "Add a playlist item"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a item from a playlist",
          "action": "Delete a playlist item"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a playlist's item",
          "action": "Get a playlist item"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many playlist items",
          "action": "Get many playlist items"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "playlistItem"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Playlist Name or ID",
      "name": "playlistId",
      "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": [
            "add"
          ],
          "resource": [
            "playlistItem"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getPlaylists"
      }
    },
    {
      "displayName": "Video ID",
      "name": "videoId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "add"
          ],
          "resource": [
            "playlistItem"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "End At",
          "name": "endAt",
          "type": "dateTime",
          "default": "",
          "description": "The time, measured in seconds from the start of the video, when the video should stop playing"
        },
        {
          "displayName": "Note",
          "name": "note",
          "type": "string",
          "default": "",
          "description": "A user-generated note for this item. The property value has a maximum length of 280 characters."
        },
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        },
        {
          "displayName": "Position",
          "name": "position",
          "type": "number",
          "typeOptions": {
            "minValue": 0
          },
          "default": "",
          "description": "The order in which the item appears in the playlist. The value uses a zero-based index, so the first item has a position of 0, the second item has a position of 1, and so forth."
        },
        {
          "displayName": "Start At",
          "name": "startAt",
          "type": "dateTime",
          "default": "",
          "description": "The time, measured in seconds from the start of the video, when the video should start playing"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "add"
          ],
          "resource": [
            "playlistItem"
          ]
        }
      }
    },
    {
      "displayName": "Playlist Item ID",
      "name": "playlistItemId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "playlistItem"
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "part",
      "type": "multiOptions",
      "default": [
        "*"
      ],
      "description": "The fields parameter specifies a comma-separated list of one or more playlistItem resource properties that the API response will include",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Content Details",
          "value": "contentDetails"
        },
        {
          "name": "ID",
          "value": "id"
        },
        {
          "name": "Snippet",
          "value": "snippet"
        },
        {
          "name": "Status",
          "value": "status"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "playlistItem"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "playlistItem"
          ]
        }
      }
    },
    {
      "displayName": "Playlist Item ID",
      "name": "playlistItemId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "playlistItem"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "playlistItem"
          ]
        }
      }
    },
    {
      "displayName": "Playlist Name or ID",
      "name": "playlistId",
      "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": [
            "getAll"
          ],
          "resource": [
            "playlistItem"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getPlaylists"
      }
    },
    {
      "displayName": "Fields",
      "name": "part",
      "type": "multiOptions",
      "default": [
        "*"
      ],
      "description": "The fields parameter specifies a comma-separated list of one or more playlistItem resource properties that the API response will include",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Content Details",
          "value": "contentDetails"
        },
        {
          "name": "ID",
          "value": "id"
        },
        {
          "name": "Snippet",
          "value": "snippet"
        },
        {
          "name": "Status",
          "value": "status"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "playlistItem"
          ]
        }
      }
    },
    {
      "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": [
            "playlistItem"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 25,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "playlistItem"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 50
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "playlistItem"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a video",
          "action": "Delete a video"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a video",
          "action": "Get a video"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many videos",
          "action": "Get many videos"
        },
        {
          "name": "Rate",
          "value": "rate",
          "description": "Rate a video",
          "action": "Rate a video"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a video",
          "action": "Update a video"
        },
        {
          "name": "Upload",
          "value": "upload",
          "description": "Upload a video",
          "action": "Upload a video"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Region Code",
      "name": "regionCode",
      "type": "options",
      "default": "",
      "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCountriesCodes"
      }
    },
    {
      "displayName": "Category Name or ID",
      "name": "categoryId",
      "type": "options",
      "default": "",
      "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getVideoCategories",
        "loadOptionsDependsOn": [
          "regionCode"
        ]
      }
    },
    {
      "displayName": "Input Binary Field",
      "name": "binaryProperty",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Default Language Name or ID",
          "name": "defaultLanguage",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLanguages"
          },
          "default": "",
          "description": "The language of the text in the playlist resource's title and description properties. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "The playlist's description"
        },
        {
          "displayName": "Embeddable",
          "name": "embeddable",
          "type": "boolean",
          "default": false,
          "description": "Whether the video can be embedded on another website"
        },
        {
          "displayName": "License",
          "name": "license",
          "type": "options",
          "options": [
            {
              "name": "Creative Common",
              "value": "creativeCommon"
            },
            {
              "name": "Youtube",
              "value": "youtube"
            }
          ],
          "default": "",
          "description": "The video's license"
        },
        {
          "displayName": "Notify Subscribers",
          "name": "notifySubscribers",
          "type": "boolean",
          "default": false,
          "description": "Whether YouTube should send a notification about the new video to users who subscribe to the video's channel"
        },
        {
          "displayName": "Privacy Status",
          "name": "privacyStatus",
          "type": "options",
          "options": [
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Public",
              "value": "public"
            },
            {
              "name": "Unlisted",
              "value": "unlisted"
            }
          ],
          "default": "",
          "description": "The playlist's privacy status"
        },
        {
          "displayName": "Public Stats Viewable",
          "name": "publicStatsViewable",
          "type": "boolean",
          "default": true,
          "description": "Whether the extended video statistics on the video's watch page are publicly viewable"
        },
        {
          "displayName": "Publish At",
          "name": "publishAt",
          "type": "dateTime",
          "default": "",
          "description": "If you set a value for this property, you must also set the status.privacyStatus property to private"
        },
        {
          "displayName": "Recording Date",
          "name": "recordingDate",
          "type": "dateTime",
          "default": "",
          "description": "The date and time when the video was recorded"
        },
        {
          "displayName": "Self Declared Made For Kids",
          "name": "selfDeclaredMadeForKids",
          "type": "boolean",
          "default": false,
          "description": "Whether the video is designated as child-directed, and it contains the current \"made for kids\" status of the video"
        },
        {
          "displayName": "Tags",
          "name": "tags",
          "type": "string",
          "default": "",
          "description": "Keyword tags associated with the playlist. Mulplie can be defined separated by comma."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Video ID",
      "name": "videoId",
      "type": "string",
      "default": "",
      "description": "ID of the video",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Video ID",
      "name": "videoId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "part",
      "type": "multiOptions",
      "default": [
        "*"
      ],
      "description": "The fields parameter specifies a comma-separated list of one or more video resource properties that the API response will include",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Content Details",
          "value": "contentDetails"
        },
        {
          "name": "ID",
          "value": "id"
        },
        {
          "name": "Live Streaming Details",
          "value": "liveStreamingDetails"
        },
        {
          "name": "Localizations",
          "value": "localizations"
        },
        {
          "name": "Player",
          "value": "player"
        },
        {
          "name": "Recording Details",
          "value": "recordingDetails"
        },
        {
          "name": "Snippet",
          "value": "snippet"
        },
        {
          "name": "Statistics",
          "value": "statistics"
        },
        {
          "name": "Status",
          "value": "status"
        },
        {
          "name": "Topic Details",
          "value": "topicDetails"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "On Behalf Of Content Owner",
          "name": "onBehalfOfContentOwner",
          "type": "string",
          "default": "",
          "description": "The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "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": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 25,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "video"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 50
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Channel ID",
          "name": "channelId",
          "type": "string",
          "default": "",
          "description": "The channelId parameter indicates that the API response should only contain resources created by the channel"
        },
        {
          "displayName": "For Developer",
          "name": "forDeveloper",
          "type": "boolean",
          "default": false,
          "description": "Whether to restrict the search to only retrieve videos uploaded via the developer's application or website"
        },
        {
          "displayName": "Published After",
          "name": "publishedAfter",
          "type": "dateTime",
          "default": "",
          "description": "The publishedAfter parameter indicates that the API response should only contain resources created at or after the specified time"
        },
        {
          "displayName": "Published Before",
          "name": "publishedBefore",
          "type": "dateTime",
          "default": "",
          "description": "The publishedBefore parameter indicates that the API response should only contain resources created before or at the specified time"
        },
        {
          "displayName": "Query",
          "name": "q",
          "type": "string",
          "default": "",
          "description": "The q parameter specifies the query term to search for"
        },
        {
          "displayName": "Region Code",
          "name": "regionCode",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCountriesCodes"
          },
          "default": "",
          "description": "The regionCode parameter instructs the API to select a video chart available in the specified region. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Related To Video ID",
          "name": "relatedToVideoId",
          "type": "string",
          "default": "",
          "description": "The relatedToVideoId parameter retrieves a list of videos that are related to the video that the parameter value identifies"
        },
        {
          "displayName": "Video Category ID",
          "name": "videoCategoryId",
          "type": "string",
          "default": "",
          "description": "The videoCategoryId parameter identifies the video category for which the chart should be retrieved"
        },
        {
          "displayName": "Video Syndicated",
          "name": "videoSyndicated",
          "type": "boolean",
          "default": false,
          "description": "Whether to restrict a search to only videos that can be played outside youtube.com"
        },
        {
          "displayName": "Video Type",
          "name": "videoType",
          "type": "options",
          "options": [
            {
              "name": "Any",
              "value": "any"
            },
            {
              "name": "Episode",
              "value": "episode"
            },
            {
              "name": "Movie",
              "value": "movie"
            }
          ],
          "default": "",
          "description": "The videoType parameter lets you restrict a search to a particular type of videos"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Order",
          "name": "order",
          "type": "options",
          "options": [
            {
              "name": "Date",
              "value": "date"
            },
            {
              "name": "Relevance",
              "value": "relevance"
            }
          ],
          "default": "relevance"
        },
        {
          "displayName": "Safe Search",
          "name": "safeSearch",
          "type": "options",
          "options": [
            {
              "name": "Moderate",
              "value": "moderate",
              "description": "YouTube will filter some content from search results and, at the least, will filter content that is restricted in your locale"
            },
            {
              "name": "None",
              "value": "none",
              "description": "YouTube will not filter the search result set"
            },
            {
              "name": "Strict",
              "value": "strict",
              "description": "YouTube will try to exclude all restricted content from the search result set"
            }
          ],
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Video ID",
      "name": "videoId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "rate"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Rating",
      "name": "rating",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Dislike",
          "value": "dislike",
          "description": "Records that the authenticated user disliked the video"
        },
        {
          "name": "Like",
          "value": "like",
          "description": "Records that the authenticated user liked the video"
        },
        {
          "name": "None",
          "value": "none",
          "description": "Removes any rating that the authenticated user had previously set for the video"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "rate"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Video ID",
      "name": "videoId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Region Code",
      "name": "regionCode",
      "type": "options",
      "default": "",
      "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCountriesCodes"
      }
    },
    {
      "displayName": "Category Name or ID",
      "name": "categoryId",
      "type": "options",
      "default": "",
      "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getVideoCategories",
        "loadOptionsDependsOn": [
          "regionCode"
        ]
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Default Language Name or ID",
          "name": "defaultLanguage",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLanguages"
          },
          "default": "",
          "description": "The language of the text in the playlist resource's title and description properties. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "The playlist's description"
        },
        {
          "displayName": "Embeddable",
          "name": "embeddable",
          "type": "boolean",
          "default": false,
          "description": "Whether the video can be embedded on another website"
        },
        {
          "displayName": "License",
          "name": "license",
          "type": "options",
          "options": [
            {
              "name": "Creative Common",
              "value": "creativeCommon"
            },
            {
              "name": "Youtube",
              "value": "youtube"
            }
          ],
          "default": "",
          "description": "The video's license"
        },
        {
          "displayName": "Notify Subscribers",
          "name": "notifySubscribers",
          "type": "boolean",
          "default": false,
          "description": "Whether YouTube should send a notification about the new video to users who subscribe to the video's channel"
        },
        {
          "displayName": "Privacy Status",
          "name": "privacyStatus",
          "type": "options",
          "options": [
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Public",
              "value": "public"
            },
            {
              "name": "Unlisted",
              "value": "unlistef"
            }
          ],
          "default": "",
          "description": "The playlist's privacy status"
        },
        {
          "displayName": "Public Stats Viewable",
          "name": "publicStatsViewable",
          "type": "boolean",
          "default": true,
          "description": "Whether the extended video statistics on the video's watch page are publicly viewable"
        },
        {
          "displayName": "Publish At",
          "name": "publishAt",
          "type": "dateTime",
          "default": "",
          "description": "If you set a value for this property, you must also set the status.privacyStatus property to private"
        },
        {
          "displayName": "Recording Date",
          "name": "recordingDate",
          "type": "dateTime",
          "default": "",
          "description": "The date and time when the video was recorded"
        },
        {
          "displayName": "Self Declared Made For Kids",
          "name": "selfDeclaredMadeForKids",
          "type": "boolean",
          "default": false,
          "description": "Whether the video is designated as child-directed, and it contains the current \"made for kids\" status of the video"
        },
        {
          "displayName": "Tags",
          "name": "tags",
          "type": "string",
          "default": "",
          "description": "Keyword tags associated with the playlist. Mulplie can be defined separated by comma."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many video categories",
          "action": "Get many video categories"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "videoCategory"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Region Code",
      "name": "regionCode",
      "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": [
            "getAll"
          ],
          "resource": [
            "videoCategory"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCountriesCodes"
      }
    },
    {
      "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": [
            "videoCategory"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 25,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "videoCategory"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 50
      }
    }
  ]

operations:
  [
    {
      "operation": "get",
      "name": "Get",
      "description": "Retrieve a channel"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve many channels"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a channel"
    },
    {
      "operation": "uploadBanner",
      "name": "Upload Banner",
      "description": "Upload a channel banner"
    }
  ]


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

outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Gotify node documentation
  description: Learn how to use the Gotify node in n8n. Follow technical documentation to integrate Gotify node into your workflows.
  contentType: [integration, reference]
  ---

  # Gotify node

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

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

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

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

  ## Operations

  * Message
      * Create
      * Delete
      * Get All

  ## Templates and examples

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a message"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a message"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many messages"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Message",
      "name": "message",
      "type": "string",
      "default": "",
      "description": "The message to send, If using Markdown add the Content Type option",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Priority",
          "name": "priority",
          "type": "number",
          "default": 1,
          "description": "The priority of the message"
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "description": "The title of the message"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Content Type",
          "name": "contentType",
          "type": "options",
          "default": "text/plain",
          "description": "The message content type",
          "options": [
            {
              "name": "Plain",
              "value": "text/plain"
            },
            {
              "name": "Markdown",
              "value": "text/markdown"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "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": [
            "message"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 20,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    }
  ]

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


node_type: nodes-base.goToWebinar
package_name: n8n-nodes-base
display_name: GoToWebinar
description: Consume the GoToWebinar API
category: transform
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "goToWebinarOAuth2Api",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: GoToWebinar node documentation
  description: Learn how to use the GoToWebinar node in n8n. Follow technical documentation to integrate GoToWebinar node into your workflows.
  contentType: [integration, reference]
  ---

  # GoToWebinar node

  Use the GoToWebinar node to automate work in GoToWebinar, and integrate GoToWebinar with other applications. n8n has built-in support for a wide range of GoToWebinar features, including creating, getting, and deleting attendees, organizers, and registrants.

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

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

  ## Operations

  * Attendee
      * Get
      * Get All
      * Get Details
  * Co-Organizer
      * Create
      * Delete
      * Get All
      * Re-invite
  * Panelist
      * Create
      * Delete
      * Get All
      * Re-invite
  * Registrant
      * Create
      * Delete
      * Get
      * Get All
  * Session
      * Get
      * Get All
      * Get Details
  * Webinar
      * Create
      * Get
      * Get All
      * Update

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "attendee",
      "options": [
        {
          "name": "Attendee",
          "value": "attendee"
        },
        {
          "name": "Co-Organizer",
          "value": "coorganizer"
        },
        {
          "name": "Panelist",
          "value": "panelist"
        },
        {
          "name": "Registrant",
          "value": "registrant"
        },
        {
          "name": "Session",
          "value": "session"
        },
        {
          "name": "Webinar",
          "value": "webinar"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an attendee"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many attendees"
        },
        {
          "name": "Get Details",
          "value": "getDetails",
          "action": "Get details of an attendee"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "attendee"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": "",
      "description": "Key of the webinar that the attendee attended. 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": [
            "attendee"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "displayName": "Session Key Name or ID",
      "name": "sessionKey",
      "type": "options",
      "default": "",
      "description": "Key of the session that the attendee attended. 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": [
            "attendee"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinarSessions",
        "loadOptionsDependsOn": [
          "webinarKey"
        ]
      }
    },
    {
      "displayName": "Registrant Key",
      "name": "registrantKey",
      "type": "string",
      "default": "",
      "description": "Registrant key of the attendee at the webinar session",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "attendee"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Registrant Key",
      "name": "registrantKey",
      "type": "string",
      "default": "",
      "description": "Registrant key of the attendee at the webinar session",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "attendee"
          ],
          "operation": [
            "getDetails"
          ]
        }
      }
    },
    {
      "displayName": "Details",
      "name": "details",
      "type": "options",
      "default": "",
      "description": "The details to retrieve for the attendee",
      "options": [
        {
          "name": "Polls",
          "value": "polls",
          "description": "Poll answers from the attendee in a webinar session"
        },
        {
          "name": "Questions",
          "value": "questions",
          "description": "Questions asked by the attendee in a webinar session"
        },
        {
          "name": "Survey Answers",
          "value": "surveyAnswers",
          "description": "Survey answers from the attendee in a webinar session"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "attendee"
          ],
          "operation": [
            "getDetails"
          ]
        }
      }
    },
    {
      "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": [
            "attendee"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 10,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "attendee"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a coorganizer"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a coorganizer"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many coorganizers"
        },
        {
          "name": "Reinvite",
          "value": "reinvite",
          "action": "Reinvite a coorganizer"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "coorganizer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "Key of the webinar that the co-organizer is hosting. 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": [
            "coorganizer"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "displayName": "Is External",
      "name": "isExternal",
      "type": "boolean",
      "default": false,
      "description": "Whether the co-organizer has no GoToWebinar account",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "coorganizer"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Organizer Key",
      "name": "organizerKey",
      "type": "string",
      "default": "",
      "description": "The co-organizer's organizer key for the webinar",
      "displayOptions": {
        "show": {
          "resource": [
            "coorganizer"
          ],
          "operation": [
            "create"
          ],
          "isExternal": [
            false
          ]
        }
      }
    },
    {
      "displayName": "Given Name",
      "name": "givenName",
      "type": "string",
      "default": "",
      "description": "The co-organizer's given name",
      "displayOptions": {
        "show": {
          "resource": [
            "coorganizer"
          ],
          "operation": [
            "create"
          ],
          "isExternal": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Email",
      "name": "email",
      "type": "string",
      "default": "",
      "description": "The co-organizer's email address",
      "displayOptions": {
        "show": {
          "resource": [
            "coorganizer"
          ],
          "operation": [
            "create"
          ],
          "isExternal": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "Key of the webinar to delete. 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": [
            "coorganizer"
          ],
          "operation": [
            "delete"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "displayName": "Co-Organizer Key",
      "name": "coorganizerKey",
      "type": "string",
      "default": "",
      "description": "Key of the co-organizer to delete",
      "displayOptions": {
        "show": {
          "resource": [
            "coorganizer"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Is External",
      "name": "isExternal",
      "type": "boolean",
      "default": false,
      "description": "By default only internal co-organizers (with a GoToWebinar account) can be deleted. If you want to use this call for external co-organizers you have to set this parameter to 'true'.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "coorganizer"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "Key of the webinar to retrieve all co-organizers from. 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": [
            "coorganizer"
          ],
          "operation": [
            "getAll"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "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": [
            "coorganizer"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 10,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "coorganizer"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Webinar Key",
      "name": "webinarKey",
      "type": "string",
      "default": "",
      "description": "By default only internal co-organizers (with a GoToWebinar account) can be deleted. If you want to use this call for external co-organizers you have to set this parameter to 'true'.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "coorganizer"
          ],
          "operation": [
            "reinvite"
          ]
        }
      }
    },
    {
      "displayName": "Co-Organizer Key",
      "name": "coorganizerKey",
      "type": "string",
      "default": "",
      "description": "Key of the co-organizer to reinvite",
      "displayOptions": {
        "show": {
          "resource": [
            "coorganizer"
          ],
          "operation": [
            "reinvite"
          ]
        }
      }
    },
    {
      "displayName": "Is External",
      "name": "isExternal",
      "type": "boolean",
      "default": false,
      "description": "Whether the co-organizer has no GoToWebinar account",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "coorganizer"
          ],
          "operation": [
            "reinvite"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a panelist"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a panelist"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many panelists"
        },
        {
          "name": "Reinvite",
          "value": "reinvite",
          "action": "Reinvite a panelist"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "panelist"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "Name of the panelist to create",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "panelist"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Email",
      "name": "email",
      "type": "string",
      "default": "",
      "description": "Email address of the panelist to create",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "panelist"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "Key of the webinar that the panelist will present at. 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": [
            "panelist"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "Key of the webinar to retrieve all panelists from. 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": [
            "panelist"
          ],
          "operation": [
            "getAll"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "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": [
            "panelist"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 10,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "panelist"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "Key of the webinar to delete the panelist from. 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": [
            "panelist"
          ],
          "operation": [
            "delete"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "displayName": "Panelist Key",
      "name": "panelistKey",
      "type": "string",
      "default": "",
      "description": "Key of the panelist to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "panelist"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "Key of the webinar to reinvite the panelist to. 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": [
            "panelist"
          ],
          "operation": [
            "reinvite"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "displayName": "Panelist Key",
      "name": "panelistKey",
      "type": "string",
      "default": "",
      "description": "Key of the panelist to reinvite",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "panelist"
          ],
          "operation": [
            "reinvite"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a registrant"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a registrant"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a registrant"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many registrants"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "registrant"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "Key of the webinar of the registrant to create. 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": [
            "registrant"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "displayName": "First Name",
      "name": "firstName",
      "type": "string",
      "default": "",
      "description": "First name of the registrant to create",
      "displayOptions": {
        "show": {
          "resource": [
            "registrant"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Last Name",
      "name": "lastName",
      "type": "string",
      "default": "",
      "description": "Last name of the registrant to create",
      "displayOptions": {
        "show": {
          "resource": [
            "registrant"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Email",
      "name": "email",
      "type": "string",
      "default": "",
      "description": "Email address of the registrant to create",
      "displayOptions": {
        "show": {
          "resource": [
            "registrant"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Full Address",
          "name": "fullAddress",
          "placeholder": "Add Address Fields",
          "type": "fixedCollection",
          "description": "Full address of the registrant to create",
          "default": {},
          "options": [
            {
              "displayName": "Details",
              "name": "details",
              "values": [
                {
                  "displayName": "Address",
                  "name": "address",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "City",
                  "name": "city",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "State",
                  "name": "state",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Zip Code",
                  "name": "zipCode",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Country",
                  "name": "country",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Industry",
          "name": "industry",
          "type": "string",
          "default": "",
          "description": "The type of industry the registrant's organization belongs to"
        },
        {
          "displayName": "Job Title",
          "name": "jobTitle",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "MultiChoice Responses",
          "name": "multiChoiceResponses",
          "placeholder": "Add MultiChoice Response",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Set the answers to all questions",
          "default": {},
          "options": [
            {
              "displayName": "Details",
              "name": "details",
              "values": [
                {
                  "displayName": "Question Key Name or ID",
                  "name": "questionKey",
                  "type": "options",
                  "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
                  "typeOptions": {
                    "loadOptionsMethod": "getRegistranMultiChoiceQuestions",
                    "loadOptionsDependsOn": [
                      "webinarKey"
                    ]
                  },
                  "default": ""
                },
                {
                  "displayName": "Answer Key",
                  "name": "AnswerKey",
                  "type": "string",
                  "default": "",
                  "description": "Answer ID of the question"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Number of Employees",
          "name": "numberOfEmployees",
          "type": "string",
          "default": "",
          "description": "The size in employees of the registrant's organization"
        },
        {
          "displayName": "Organization",
          "name": "organization",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Telephone",
          "name": "phone",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Purchasing Role",
          "name": "purchasingRole",
          "type": "string",
          "default": "",
          "description": "Registrant's role in purchasing the product"
        },
        {
          "displayName": "Purchasing Time Frame",
          "name": "purchasingTimeFrame",
          "type": "string",
          "default": "",
          "description": "Time frame within which the product will be purchased"
        },
        {
          "displayName": "Questions and Comments",
          "name": "questionsAndComments",
          "type": "string",
          "default": "",
          "description": "Questions or comments made by the registrant during registration"
        },
        {
          "displayName": "Resend Confirmation",
          "name": "resendConfirmation",
          "type": "boolean",
          "default": false
        },
        {
          "displayName": "Simple Responses",
          "name": "simpleResponses",
          "placeholder": "Add Simple Response",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Set the answers to all questions",
          "default": {},
          "options": [
            {
              "displayName": "Details",
              "name": "details",
              "values": [
                {
                  "displayName": "Question Key Name or ID",
                  "name": "questionKey",
                  "type": "options",
                  "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
                  "typeOptions": {
                    "loadOptionsMethod": "getRegistranSimpleQuestions",
                    "loadOptionsDependsOn": [
                      "webinarKey"
                    ]
                  },
                  "default": ""
                },
                {
                  "displayName": "Response Text",
                  "name": "responseText",
                  "type": "string",
                  "default": "",
                  "description": "Text of the response to the question"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Source",
          "name": "source",
          "type": "string",
          "default": "",
          "description": "The source that led to the registration"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "registrant"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "The key of the webinar to retrieve registrants from. 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": [
            "registrant"
          ],
          "operation": [
            "getAll"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "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": [
            "registrant"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 10,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "registrant"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "Key of the webinar of the registrant to delete. 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": [
            "registrant"
          ],
          "operation": [
            "delete"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "displayName": "Registrant Key",
      "name": "registrantKey",
      "type": "string",
      "default": "",
      "description": "Key of the registrant to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "registrant"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "Key of the webinar of the registrant to retrieve. 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": [
            "registrant"
          ],
          "operation": [
            "get"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "displayName": "Registrant Key",
      "name": "registrantKey",
      "type": "string",
      "default": "",
      "description": "Key of the registrant to retrieve",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "registrant"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a session"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many sessions"
        },
        {
          "name": "Get Details",
          "value": "getDetails",
          "action": "Get details on a session"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "session"
          ]
        }
      },
      "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": [
            "session"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 10,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "session"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Time Range",
          "name": "times",
          "type": "fixedCollection",
          "placeholder": "Add Time Range",
          "required": true,
          "default": {},
          "options": [
            {
              "displayName": "Times Properties",
              "name": "timesProperties",
              "values": [
                {
                  "displayName": "Start Time",
                  "name": "fromTime",
                  "type": "dateTime",
                  "description": "Start of the datetime range for the session",
                  "default": ""
                },
                {
                  "displayName": "End Time",
                  "name": "toTime",
                  "type": "dateTime",
                  "description": "End of the datetime range for the session",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Webinar Key Name or ID",
          "name": "webinarKey",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getWebinars"
          },
          "default": {},
          "description": "Webinar by which to filter the sessions to retrieve. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "session"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Webinar Key Name or ID",
      "name": "webinarKey",
      "type": "options",
      "default": [],
      "description": "Key of the webinar to which the session belongs. 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": [
            "session"
          ],
          "operation": [
            "get",
            "getDetails"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getWebinars"
      }
    },
    {
      "displayName": "Session Key",
      "name": "sessionKey",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "session"
          ],
          "operation": [
            "get",
            "getDetails"
          ]
        }
      }
    },
    {
      "displayName": "Details",
      "name": "details",
      "type": "options",
      "default": "performance",
      "options": [
        {
          "name": "Performance",
          "value": "performance",
          "description": "Performance details for a webinar session"
        },
        {
          "name": "Polls",
          "value": "polls",
          "description": "Questions and answers for polls from a webinar session"
        },
        {
          "name": "Questions",
          "value": "questions",
          "description": "Questions and answers for a past webinar session"
        },
        {
          "name": "Surveys",
          "value": "surveys",
          "description": "Surveys for a past webinar session"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "session"
          ],
          "operation": [
            "getDetails"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a webinar"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a webinar"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many webinars"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a webinar"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Subject",
      "name": "subject",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Time Range",
      "name": "times",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Times Properties",
          "name": "timesProperties",
          "values": [
            {
              "displayName": "Start Time",
              "name": "startTime",
              "type": "dateTime",
              "required": true,
              "default": ""
            },
            {
              "displayName": "End Time",
              "name": "endTime",
              "type": "dateTime",
              "required": true,
              "default": ""
            }
          ]
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Experience Type",
          "name": "experienceType",
          "type": "options",
          "default": "CLASSIC",
          "options": [
            {
              "name": "Classic",
              "value": "CLASSIC"
            },
            {
              "name": "Broadcast",
              "value": "BROADCAST"
            },
            {
              "name": "Simulive",
              "value": "SIMULIVE"
            }
          ]
        },
        {
          "displayName": "Is On-Demand",
          "name": "isOnDemand",
          "type": "boolean",
          "default": false
        },
        {
          "displayName": "Is Password Protected",
          "name": "isPasswordProtected",
          "type": "boolean",
          "default": false
        },
        {
          "displayName": "Timezone Name or ID",
          "name": "timezone",
          "type": "options",
          "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "default": "",
          "placeholder": "2020-12-11T09:00:00Z",
          "typeOptions": {
            "alwaysOpenEditWindow": true,
            "loadOptionsMethod": "getTimezones"
          }
        },
        {
          "displayName": "Webinar Type",
          "name": "type",
          "type": "options",
          "default": "single_session",
          "options": [
            {
              "name": "Single Session",
              "value": "single_session",
              "description": "Webinar with one single meeting"
            },
            {
              "name": "Series",
              "value": "series",
              "description": "Webinar with multiple meetings times where attendees choose only one to attend"
            },
            {
              "name": "Sequence",
              "value": "sequence",
              "description": "Webinar with multiple meeting times where attendees are expected to be the same for all sessions"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Webinar Key",
      "name": "webinarKey",
      "type": "string",
      "default": "",
      "description": "Key of the webinar to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Send Cancellation E-Mails",
          "name": "sendCancellationEmails",
          "type": "boolean",
          "default": false
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Webinar Key",
      "name": "webinarKey",
      "type": "string",
      "default": "",
      "description": "Key of the webinar to retrieve",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ],
          "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": [
            "webinar"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 10,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Time Range",
          "name": "times",
          "type": "fixedCollection",
          "placeholder": "Add Time Range",
          "required": true,
          "default": {},
          "options": [
            {
              "displayName": "Times Properties",
              "name": "timesProperties",
              "values": [
                {
                  "displayName": "Start Time",
                  "name": "fromTime",
                  "type": "dateTime",
                  "description": "Start of the datetime range for the webinar",
                  "default": ""
                },
                {
                  "displayName": "End Time",
                  "name": "toTime",
                  "type": "dateTime",
                  "description": "End of the datetime range for the webinar",
                  "default": ""
                }
              ]
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Webinar Key",
      "name": "webinarKey",
      "type": "string",
      "default": "",
      "description": "Key of the webinar to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Notify Participants",
      "name": "notifyParticipants",
      "type": "boolean",
      "default": false,
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Experience Type",
          "name": "experienceType",
          "type": "options",
          "default": "CLASSIC",
          "options": [
            {
              "name": "Classic",
              "value": "CLASSIC"
            },
            {
              "name": "Broadcast",
              "value": "BROADCAST"
            },
            {
              "name": "Simulive",
              "value": "SIMULIVE"
            }
          ]
        },
        {
          "displayName": "Is On-Demand",
          "name": "isOnDemand",
          "type": "boolean",
          "default": false,
          "description": "Whether the webinar may be watched anytime"
        },
        {
          "displayName": "Is Password Protected",
          "name": "isPasswordProtected",
          "type": "boolean",
          "default": false,
          "description": "Whether the webinar requires a password for attendees to join"
        },
        {
          "displayName": "Times",
          "name": "times",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "displayName": "Times Properties",
              "name": "timesProperties",
              "values": [
                {
                  "displayName": "Start Time",
                  "name": "startTime",
                  "type": "dateTime",
                  "required": true,
                  "default": ""
                },
                {
                  "displayName": "End Time",
                  "name": "endTime",
                  "type": "dateTime",
                  "required": true,
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Subject",
          "name": "subject",
          "type": "string",
          "default": "",
          "description": "Name or topic of the webinar"
        },
        {
          "displayName": "Timezone Name or ID",
          "name": "timezone",
          "type": "options",
          "default": "",
          "placeholder": "2020-12-11T09:00:00Z",
          "description": "Timezone where the webinar is to take place. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
          "typeOptions": {
            "alwaysOpenEditWindow": true,
            "loadOptionsMethod": "getTimezones"
          }
        },
        {
          "displayName": "Webinar Type",
          "name": "type",
          "type": "options",
          "default": "single_session",
          "options": [
            {
              "name": "Single Session",
              "value": "single_session",
              "description": "Webinar with one single meeting"
            },
            {
              "name": "Series",
              "value": "series",
              "description": "Webinar with multiple meetings times where attendees choose only one to attend"
            },
            {
              "name": "Sequence",
              "value": "sequence",
              "description": "Webinar with multiple meeting times where attendees are expected to be the same for all sessions"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "webinar"
          ],
          "operation": [
            "update"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "get",
      "name": "Get"
    },
    {
      "operation": "getAll",
      "name": "Get Many"
    },
    {
      "operation": "getDetails",
      "name": "Get Details"
    }
  ]


node_type: nodes-base.grafana
package_name: n8n-nodes-base
display_name: Grafana
description: Consume the Grafana API
category: transform
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "grafanaApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Grafana node documentation
  description: Learn how to use the Grafana node in n8n. Follow technical documentation to integrate Grafana node into your workflows.
  contentType: [integration, reference]
  ---

  # Grafana node

  Use the Grafana node to automate work in Grafana, and integrate Grafana with other applications. n8n has built-in support for a wide range of Grafana features, including creating, updating, deleting, and getting dashboards, teams, and users.

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

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

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

  ## Operations

  * Dashboard
      * Create a dashboard
      * Delete a dashboard
      * Get a dashboard
      * Get all dashboards
      * Update a dashboard
  * Team
      * Create a team
      * Delete a team
      * Get a team
      * Retrieve all teams
      * Update a team
  * Team Member
      * Add a member to a team
      * Retrieve all team members
      * Remove a member from a team
  * User
      * Delete a user from the current organization
      * Retrieve all users in the current organization
      * Update a user in the current organization

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "dashboard",
      "options": [
        {
          "name": "Dashboard",
          "value": "dashboard"
        },
        {
          "name": "Team",
          "value": "team"
        },
        {
          "name": "Team Member",
          "value": "teamMember"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a dashboard",
          "action": "Create a dashboard"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a dashboard",
          "action": "Delete a dashboard"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a dashboard",
          "action": "Get a dashboard"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many dashboards",
          "action": "Get many dashboards"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a dashboard",
          "action": "Update a dashboard"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "Title of the dashboard to create",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Folder Name or ID",
          "name": "folderId",
          "type": "options",
          "default": "",
          "description": "Folder to create the dashboard in - if the folder is unspecified, the dashboard will be saved to the General folder. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
          "typeOptions": {
            "loadOptionsMethod": "getFolders"
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Dashboard UID or URL",
      "name": "dashboardUidOrUrl",
      "type": "string",
      "default": "",
      "description": "Unique alphabetic identifier or URL of the dashboard to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Dashboard UID or URL",
      "name": "dashboardUidOrUrl",
      "type": "string",
      "default": "",
      "description": "Unique alphabetic identifier or URL of the dashboard to retrieve",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ],
          "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": [
            "dashboard"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Search Query",
          "name": "query",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Dashboard UID or URL",
      "name": "dashboardUidOrUrl",
      "type": "string",
      "default": "",
      "description": "Unique alphabetic identifier or URL of the dashboard to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Folder Name or ID",
          "name": "folderId",
          "type": "options",
          "default": "",
          "description": "Folder to move the dashboard into - if the folder is unspecified, the dashboard will be saved to the General folder. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
          "typeOptions": {
            "loadOptionsMethod": "getFolders"
          }
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "description": "New title of the dashboard"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a team",
          "action": "Create a team"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a team",
          "action": "Delete a team"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a team",
          "action": "Get a team"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many teams",
          "action": "Get many teams"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a team",
          "action": "Update a team"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "Name of the team to create",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Email",
          "name": "email",
          "type": "string",
          "placeholder": "engineering@n8n.io",
          "default": "",
          "description": "Email of the team to create"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Team ID",
      "name": "teamId",
      "type": "string",
      "default": "",
      "description": "ID of the team to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Team ID",
      "name": "teamId",
      "type": "string",
      "default": "",
      "description": "ID of the team to retrieve",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ],
          "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": [
            "team"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "Name of the team to filter by"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Team ID",
      "name": "teamId",
      "type": "string",
      "default": "",
      "description": "ID of the team to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Email",
          "name": "email",
          "type": "string",
          "placeholder": "engineering@n8n.io",
          "default": "",
          "description": "Email of the team to update"
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "placeholder": "Engineering Team",
          "default": "",
          "description": "Name of the team to update"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "add",
      "options": [
        {
          "name": "Add",
          "value": "add",
          "description": "Add a member to a team",
          "action": "Add a team member"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many team members",
          "action": "Get many team members"
        },
        {
          "name": "Remove",
          "value": "remove",
          "description": "Remove a member from a team",
          "action": "Remove a team member"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "teamMember"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "User Name or ID",
      "name": "userId",
      "type": "options",
      "default": "",
      "description": "User to add to a team. 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": [
            "teamMember"
          ],
          "operation": [
            "add"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getUsers"
      }
    },
    {
      "displayName": "Team Name or ID",
      "name": "teamId",
      "type": "options",
      "default": "",
      "description": "Team to add the user to. 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": [
            "teamMember"
          ],
          "operation": [
            "add"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getTeams"
      }
    },
    {
      "displayName": "User Name or ID",
      "name": "memberId",
      "type": "options",
      "default": "",
      "description": "User to remove from the team. 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": [
            "teamMember"
          ],
          "operation": [
            "remove"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getUsers"
      }
    },
    {
      "displayName": "Team Name or ID",
      "name": "teamId",
      "type": "options",
      "default": "",
      "description": "Team to remove the user from. 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": [
            "teamMember"
          ],
          "operation": [
            "remove"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getTeams"
      }
    },
    {
      "displayName": "Team Name or ID",
      "name": "teamId",
      "type": "options",
      "default": "",
      "description": "Team to retrieve all members from. 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": [
            "teamMember"
          ],
          "operation": [
            "getAll"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getTeams"
      }
    },
    {
      "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": [
            "teamMember"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "teamMember"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a user from the current organization",
          "action": "Delete a user"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many users in the current organization",
          "action": "Get many users"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a user in the current organization",
          "action": "Update a user"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "ID of the user to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Role",
          "name": "role",
          "type": "options",
          "default": "Admin",
          "description": "New role for the user",
          "options": [
            {
              "name": "Admin",
              "value": "Admin"
            },
            {
              "name": "Editor",
              "value": "Editor"
            },
            {
              "name": "Viewer",
              "value": "Viewer"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "ID of the user to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "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": [
            "user"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    }
  ]

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


node_type: nodes-base.graphql
package_name: n8n-nodes-base
display_name: GraphQL
description: Makes a GraphQL request and returns the received data
category: input
development_style: programmatic
version: 1.1
operations: []
outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: GraphQL
  description: Documentation for the GraphQL node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: medium
  ---

  # GraphQL

  [GraphQL](https://graphql.org/){:target=_blank .external-link} is an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. Use the GraphQL node to query a GraphQL endpoint.

  ## Node parameters

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

  ### Authentication

  Select the type of authentication to use.

  If you select anything other than **None**, the **Credential for <selected-auth-type>** parameter appears for you to select an existing or create a new authentication credential for that authentication type.

  ### HTTP Request Method

  Select the underlying HTTP Request method the node should use. Choose from:

  * **GET**
  * **POST**: If you select this method, you'll also need to select the **Request Format** the node should use for the query payload. Choose from:
      * **GraphQL (Raw)**
      * **JSON**

  ### Endpoint

  Enter the GraphQL Endpoint you'd like to hit.

  ### Ignore SSL Issues

  When you turn on this control, n8n ignores SSL certificate validation failure.

  ### Query

  Enter the GraphQL query you want to execute.

  Refer to [Related Resources](#related-resources) for information on writing your query.

  ### Response Format

  Select the format you'd like to receive query results in. Choose between:

  * **JSON**
  * **String**: If you select this format, enter a **Response Data Property Name** to define the property the string is written to.

  ## Headers

  Enter any **Headers** you want to pass as part of the query as **Name** / **Value** pairs.

  ## Templates and examples

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

  ## Related resources

  To use the GraphQL node, you need to understand GraphQL query language. GraphQL have their own [Introduction to GraphQL](https://graphql.org/learn/){:target=_blank .external-link} tutorial.

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "none",
      "description": "The way to authenticate",
      "options": [
        {
          "name": "Basic Auth",
          "value": "basicAuth"
        },
        {
          "name": "Custom Auth",
          "value": "customAuth"
        },
        {
          "name": "Digest Auth",
          "value": "digestAuth"
        },
        {
          "name": "Header Auth",
          "value": "headerAuth"
        },
        {
          "name": "None",
          "value": "none"
        },
        {
          "name": "OAuth1",
          "value": "oAuth1"
        },
        {
          "name": "OAuth2",
          "value": "oAuth2"
        },
        {
          "name": "Query Auth",
          "value": "queryAuth"
        }
      ]
    },
    {
      "displayName": "HTTP Request Method",
      "name": "requestMethod",
      "type": "options",
      "default": "POST",
      "description": "The underlying HTTP request method to use",
      "options": [
        {
          "name": "GET",
          "value": "GET"
        },
        {
          "name": "POST",
          "value": "POST"
        }
      ]
    },
    {
      "displayName": "Endpoint",
      "name": "endpoint",
      "type": "string",
      "default": "",
      "description": "The GraphQL endpoint",
      "required": true
    },
    {
      "displayName": "Ignore SSL Issues (Insecure)",
      "name": "allowUnauthorizedCerts",
      "type": "boolean",
      "default": false,
      "description": "Whether to download the response even if SSL certificate validation is not possible"
    },
    {
      "displayName": "Request Format",
      "name": "requestFormat",
      "type": "options",
      "default": "graphql",
      "description": "The format for the query payload",
      "options": [
        {
          "name": "GraphQL (Raw)",
          "value": "graphql"
        },
        {
          "name": "JSON",
          "value": "json"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "requestMethod": [
            "POST"
          ],
          "@version": [
            1
          ]
        }
      }
    },
    {
      "displayName": "Request Format",
      "name": "requestFormat",
      "type": "options",
      "default": "json",
      "description": "The request format for the query payload",
      "options": [
        {
          "name": "JSON (Recommended)",
          "value": "json",
          "description": "JSON object with query, variables, and operationName properties. The standard and most widely supported format for GraphQL requests."
        },
        {
          "name": "GraphQL (Raw)",
          "value": "graphql",
          "description": "Raw GraphQL query string. Not all servers support this format. Use JSON for better compatibility."
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "requestMethod": [
            "POST"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.1
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Query",
      "name": "query",
      "type": "string",
      "default": "",
      "description": "GraphQL query",
      "required": true,
      "typeOptions": {
        "rows": 6
      }
    },
    {
      "displayName": "Variables",
      "name": "variables",
      "type": "json",
      "default": "",
      "description": "Query variables as JSON object",
      "displayOptions": {
        "show": {
          "requestFormat": [
            "json"
          ],
          "requestMethod": [
            "POST"
          ]
        }
      }
    },
    {
      "displayName": "Operation Name",
      "name": "operationName",
      "type": "string",
      "default": "",
      "description": "Name of operation to execute",
      "displayOptions": {
        "show": {
          "requestFormat": [
            "json"
          ],
          "requestMethod": [
            "POST"
          ]
        }
      }
    },
    {
      "displayName": "Response Format",
      "name": "responseFormat",
      "type": "options",
      "default": "json",
      "description": "The format in which the data gets returned from the URL",
      "options": [
        {
          "name": "JSON",
          "value": "json"
        },
        {
          "name": "String",
          "value": "string"
        }
      ]
    },
    {
      "displayName": "Response Data Property Name",
      "name": "dataPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the property to which to write the response data",
      "required": true,
      "displayOptions": {
        "show": {
          "responseFormat": [
            "string"
          ]
        }
      }
    },
    {
      "displayName": "Headers",
      "name": "headerParametersUi",
      "type": "fixedCollection",
      "default": {},
      "description": "The headers to send",
      "options": [
        {
          "name": "parameter",
          "displayName": "Header",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": "",
              "description": "Name of the header"
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Value to set for the header"
            }
          ]
        }
      ],
      "typeOptions": {
        "multipleValues": true
      }
    }
  ]

credentials_required:
  [
    {
      "name": "httpBasicAuth",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "basicAuth"
          ]
        }
      }
    },
    {
      "name": "httpCustomAuth",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "customAuth"
          ]
        }
      }
    },
    {
      "name": "httpDigestAuth",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "digestAuth"
          ]
        }
      }
    },
    {
      "name": "httpHeaderAuth",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "headerAuth"
          ]
        }
      }
    },
    {
      "name": "httpQueryAuth",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "queryAuth"
          ]
        }
      }
    },
    {
      "name": "oAuth1Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth1"
          ]
        }
      }
    },
    {
      "name": "oAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


node_type: nodes-base.grist
package_name: n8n-nodes-base
display_name: Grist
description: Consume the Grist API
category: input
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "gristApi",
  "required": true,
  "testedBy": "gristApiTest"
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Grist node documentation
  description: Learn how to use the Grist node in n8n. Follow technical documentation to integrate Grist node into your workflows.
  contentType: [integration, reference]
  ---

  # Grist node

  Use the Grist node to automate work in Grist, and integrate Grist with other applications. n8n has built-in support for a wide range of Grist features, including creating, updating, deleting, and reading rows in a table. 

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

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

  ## Operations

  * Create rows in a table
  * Delete rows from a table
  * Read rows from a table
  * Update rows in a table

  ## Templates and examples

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

  ## Get the Row ID

  To update or delete a particular record, you need the Row ID. There are two ways to get the Row ID:

  **Create a Row ID column in Grist**

  Create a new column in your Grist table with the formula `$id`.

  **Use the Get All operation**

  The **Get All** operation returns the Row ID of each record along with the fields.
   
  You can get it with the expression `{{$node["GristNodeName"].json["id"]}}`.


  ## Filter records when using the Get All operation

  - Select **Add Option** and select **Filter** from the dropdown list.
  - You can add filters for any number of columns. The result will only include records which match all the columns.
  - For each column, you can enter any number of values separated by commas. The result will include records which match any of the values for that column.

properties_schema:
  [
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create Row",
          "value": "create",
          "description": "Create rows in a table",
          "action": "Create rows in a table"
        },
        {
          "name": "Delete Row",
          "value": "delete",
          "description": "Delete rows from a table",
          "action": "Delete rows from a table"
        },
        {
          "name": "Get Many Rows",
          "value": "getAll",
          "description": "Read rows from a table",
          "action": "Read rows from a table"
        },
        {
          "name": "Update Row",
          "value": "update",
          "description": "Update rows in a table",
          "action": "Update rows in a table"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Document ID",
      "name": "docId",
      "type": "string",
      "default": "",
      "description": "In your document, click your profile icon, then Document Settings, then copy the value under \"This document's ID\"",
      "required": true
    },
    {
      "displayName": "Table ID",
      "name": "tableId",
      "type": "string",
      "default": "",
      "description": "ID of table to operate on. If unsure, look at the Code View.",
      "required": true
    },
    {
      "displayName": "Row ID",
      "name": "rowId",
      "type": "string",
      "default": "",
      "description": "ID of the row to delete, or comma-separated list of row IDs to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "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"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Additional Options",
      "name": "additionalOptions",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Filter",
          "name": "filter",
          "placeholder": "Add Filter",
          "description": "Only return rows matching all of the given filters. For complex filters, create a formula column and filter for the value \"true\".",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "default": {},
          "options": [
            {
              "displayName": "Filter Properties",
              "name": "filterProperties",
              "values": [
                {
                  "displayName": "Column Name or ID",
                  "name": "field",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsDependsOn": [
                      "docId",
                      "tableId"
                    ],
                    "loadOptionsMethod": "getTableColumns"
                  },
                  "default": "",
                  "description": "Column to apply the filter in. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
                  "required": true
                },
                {
                  "displayName": "Values",
                  "name": "values",
                  "type": "string",
                  "default": "",
                  "description": "Comma-separated list of values to search for in the filtered column"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Sort Order",
          "name": "sort",
          "placeholder": "Add Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "default": {},
          "options": [
            {
              "displayName": "Sort Properties",
              "name": "sortProperties",
              "values": [
                {
                  "displayName": "Column Name or ID",
                  "name": "field",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsDependsOn": [
                      "docId",
                      "tableId"
                    ],
                    "loadOptionsMethod": "getTableColumns"
                  },
                  "default": "",
                  "required": true,
                  "description": "Column to sort on. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                },
                {
                  "displayName": "Direction",
                  "name": "direction",
                  "type": "options",
                  "options": [
                    {
                      "name": "Ascending",
                      "value": "asc"
                    },
                    {
                      "name": "Descending",
                      "value": "desc"
                    }
                  ],
                  "default": "asc",
                  "description": "Direction to sort in"
                }
              ]
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Row ID",
      "name": "rowId",
      "type": "string",
      "default": "",
      "description": "ID of the row to update",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Data to Send",
      "name": "dataToSend",
      "type": "options",
      "default": "defineInNode",
      "description": "Whether to insert the input data this node receives in the new row",
      "options": [
        {
          "name": "Auto-Map Input Data to Columns",
          "value": "autoMapInputs",
          "description": "Use when node input properties match destination column names"
        },
        {
          "name": "Define Below for Each Column",
          "value": "defineInNode",
          "description": "Set the value for each destination column"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create",
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Inputs to Ignore",
      "name": "inputsToIgnore",
      "type": "string",
      "default": "",
      "description": "List of input properties to avoid sending, separated by commas. Leave empty to send all properties.",
      "displayOptions": {
        "show": {
          "operation": [
            "create",
            "update"
          ],
          "dataToSend": [
            "autoMapInputs"
          ]
        }
      }
    },
    {
      "displayName": "Fields to Send",
      "name": "fieldsToSend",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Properties",
          "name": "properties",
          "values": [
            {
              "displayName": "Column Name or ID",
              "name": "fieldId",
              "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
              "type": "options",
              "typeOptions": {
                "loadOptionsDependsOn": [
                  "tableId"
                ],
                "loadOptionsMethod": "getTableColumns"
              },
              "default": ""
            },
            {
              "displayName": "Field Value",
              "name": "fieldValue",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create",
            "update"
          ],
          "dataToSend": [
            "defineInNode"
          ]
        }
      },
      "typeOptions": {
        "multipleValueButtonText": "Add Field to Send",
        "multipleValues": true
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create Row",
      "description": "Create rows in a table"
    },
    {
      "operation": "delete",
      "name": "Delete Row",
      "description": "Delete rows from a table"
    },
    {
      "operation": "getAll",
      "name": "Get Many Rows",
      "description": "Read rows from a table"
    },
    {
      "operation": "update",
      "name": "Update Row",
      "description": "Update rows in a table"
    }
  ]


node_type: nodes-base.gumroadTrigger
package_name: n8n-nodes-base
display_name: Gumroad Trigger
description: Handle Gumroad events via webhooks
category: trigger
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "gumroadApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Gumroad Trigger node documentation
  description: Learn how to use the Gumroad Trigger node in n8n. Follow technical documentation to integrate Gumroad Trigger node into your workflows.
  contentType: [integration, reference]
  ---

  # Gumroad Trigger node

  [Gumroad](https://gumroad.com){:target=_blank .external-link} is an online platform that enables creators to sell products directly to consumers.

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

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "",
      "description": "The resource is gonna fire the event",
      "options": [
        {
          "name": "Cancellation",
          "value": "cancellation",
          "description": "When subscribed to this resource, you will be notified of cancellations of the user's subscribers"
        },
        {
          "name": "Dispute",
          "value": "dispute",
          "description": "When subscribed to this resource, you will be notified of the disputes raised against user's sales"
        },
        {
          "name": "Dispute Won",
          "value": "dispute_won",
          "description": "When subscribed to this resource, you will be notified of the sale disputes won"
        },
        {
          "name": "Refund",
          "value": "refund",
          "description": "When subscribed to this resource, you will be notified of refunds to the user's sales"
        },
        {
          "name": "Sale",
          "value": "sale",
          "description": "When subscribed to this resource, you will be notified of the user's sales"
        }
      ],
      "required": true,
      "noDataExpression": true
    }
  ]


node_type: nodes-base.hackerNews
package_name: n8n-nodes-base
display_name: Hacker News
description: Consume Hacker News API
category: transform
development_style: programmatic
version: 1
operations:
  [
  {
  "operation": "getAll",
  "name": "Get Many",
  "description": "Get many items"
  }
  ]

credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Hacker News node documentation
  description: Learn how to use the Hacker News node in n8n. Follow technical documentation to integrate Hacker News node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Hacker News node

  Use the Hacker News node to automate work in Hacker News, and integrate Hacker News with other applications. n8n has built-in support for a wide range of Hacker News features, including getting articles, and users. 

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

  /// note | Credentials
  This node doesn't require authentication. 
  ///

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

  ## Operations

  * All
      * Get all items
  * Article
      * Get a Hacker News article
  * User
      * Get a Hacker News user

  ## Templates and examples

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "article",
      "options": [
        {
          "name": "All",
          "value": "all"
        },
        {
          "name": "Article",
          "value": "article"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many items",
          "action": "Get many items"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "all"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get a Hacker News article",
          "action": "Get an article"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "article"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get a Hacker News user",
          "action": "Get a user"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Article ID",
      "name": "articleId",
      "type": "string",
      "default": "",
      "description": "The ID of the Hacker News article to be returned",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "article"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Username",
      "name": "username",
      "type": "string",
      "default": "",
      "description": "The Hacker News user to be returned",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "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": [
            "all"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "all"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include Comments",
          "name": "includeComments",
          "type": "boolean",
          "default": false,
          "description": "Whether to include all the comments in a Hacker News article"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "article"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Keyword",
          "name": "keyword",
          "type": "string",
          "default": "",
          "description": "The keyword for filtering the results of the query"
        },
        {
          "displayName": "Tags",
          "name": "tags",
          "type": "multiOptions",
          "options": [
            {
              "name": "Ask HN",
              "value": "ask_hn",
              "description": "Returns query results filtered by Ask HN tag"
            },
            {
              "name": "Comment",
              "value": "comment",
              "description": "Returns query results filtered by comment tag"
            },
            {
              "name": "Front Page",
              "value": "front_page",
              "description": "Returns query results filtered by Front Page tag"
            },
            {
              "name": "Poll",
              "value": "poll",
              "description": "Returns query results filtered by poll tag"
            },
            {
              "name": "Show HN",
              "value": "show_hn",
              "description": "Returns query results filtered by Show HN tag"
            },
            {
              "name": "Story",
              "value": "story",
              "description": "Returns query results filtered by story tag"
            }
          ],
          "default": [],
          "description": "Tags for filtering the results of the query"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "all"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    }
  ]


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

updated_at: 2025-09-09 22:00:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: HaloPSA node documentation
  description: Learn how to use the HaloPSA node in n8n. Follow technical documentation to integrate HaloPSA node into your workflows.
  contentType: [integration, reference]
  ---

  # HaloPSA node

  Use the HaloPSA node to automate work in HaloPSA, and integrate HaloPSA with other applications. n8n has built-in support for a wide range of HaloPSA features, including creating, updating, deleting, and getting clients, sites and tickets. 

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

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

  ## Operations

  * Client
      * Create a client
      * Delete a client
      * Get a client
      * Get all clients
      * Update a client
  * Site
      * Create a site
      * Delete a site
      * Get a site
      * Get all sites
      * Update a site
  * Ticket
      * Create a ticket
      * Delete a ticket
      * Get a ticket
      * Get all tickets
      * Update a ticket
  * User
      * Create a user
      * Delete a user
      * Get a user
      * Get all users
      * Update a user

  ## Templates and examples

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "client",
      "options": [
        {
          "name": "Client",
          "value": "client"
        },
        {
          "name": "Site",
          "value": "site"
        },
        {
          "name": "Ticket",
          "value": "ticket"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "required": true,
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a client",
          "action": "Create a client"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a client",
          "action": "Delete a client"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a client",
          "action": "Get a client"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many clients",
          "action": "Get many clients"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a client",
          "action": "Update a client"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Name",
      "name": "clientName",
      "type": "string",
      "default": "",
      "description": "Enter client name",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "client"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Account Status",
          "name": "inactive",
          "type": "options",
          "default": false,
          "options": [
            {
              "name": "Active",
              "value": false
            },
            {
              "name": "Inactive",
              "value": true
            }
          ]
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "VIP",
          "name": "is_vip",
          "type": "boolean",
          "default": false,
          "description": "Whether the client is VIP or not"
        },
        {
          "displayName": "Website",
          "name": "website",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "client"
          ]
        }
      }
    },
    {
      "displayName": "Client ID",
      "name": "clientId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ],
          "operation": [
            "get",
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ],
          "operation": [
            "get",
            "getAll"
          ]
        }
      }
    },
    {
      "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": [
            "client"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 1000
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Active Status",
          "name": "activeStatus",
          "type": "options",
          "default": "active",
          "options": [
            {
              "name": "Active Only",
              "value": "active",
              "description": "Whether to include active customers in the response"
            },
            {
              "name": "All",
              "value": "all",
              "description": "Whether to include active and inactive customers in the response"
            },
            {
              "name": "Inactive Only",
              "value": "inactive",
              "description": "Whether to include inactive Customers in the response"
            }
          ]
        },
        {
          "displayName": "Text To Filter By",
          "name": "search",
          "type": "string",
          "default": "",
          "description": "Filter clients by your search string"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Client ID",
      "name": "clientId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Account Status",
          "name": "inactive",
          "type": "options",
          "default": false,
          "options": [
            {
              "name": "Active",
              "value": false
            },
            {
              "name": "Inactive",
              "value": true
            }
          ]
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "VIP",
          "name": "is_vip",
          "type": "boolean",
          "default": false,
          "description": "Whether the client is VIP or not"
        },
        {
          "displayName": "Website",
          "name": "website",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "delete",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a ticket",
          "action": "Create a ticket"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a ticket",
          "action": "Delete a ticket"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a ticket",
          "action": "Get a ticket"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many tickets",
          "action": "Get many tickets"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a ticket",
          "action": "Update a ticket"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Ticket Type Name or ID",
      "name": "ticketType",
      "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": {
          "resource": [
            "ticket"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getHaloPSATicketsTypes"
      }
    },
    {
      "displayName": "Summary",
      "name": "summary",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Details",
      "name": "details",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Assigned Agent Name or ID",
          "name": "agent_id",
          "type": "options",
          "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getHaloPSAAgents"
          }
        },
        {
          "displayName": "Start Date",
          "name": "startdate",
          "type": "dateTime",
          "default": ""
        },
        {
          "displayName": "Target Date",
          "name": "targetdate",
          "type": "dateTime",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Ticket ID",
      "name": "ticketId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ],
          "operation": [
            "delete",
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ],
          "operation": [
            "get",
            "getAll"
          ]
        }
      }
    },
    {
      "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": [
            "ticket"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 1000
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Active Status",
          "name": "activeStatus",
          "type": "options",
          "default": "all",
          "options": [
            {
              "name": "Active Only",
              "value": "active",
              "description": "Whether to include active customers in the response"
            },
            {
              "name": "All",
              "value": "all",
              "description": "Whether to include active and inactive customers in the response"
            },
            {
              "name": "Inactive Only",
              "value": "inactive",
              "description": "Whether to include inactive Customers in the responsee"
            }
          ]
        },
        {
          "displayName": "Text To Filter By",
          "name": "search",
          "type": "string",
          "default": "",
          "description": "Filter tickets by your search string"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Ticket ID",
      "name": "ticketId",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Assigned Agent Name or ID",
          "name": "agent_id",
          "type": "options",
          "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getHaloPSAAgents"
          }
        },
        {
          "displayName": "Details",
          "name": "details",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Start Date",
          "name": "startdate",
          "type": "dateTime",
          "default": ""
        },
        {
          "displayName": "Summary",
          "name": "summary",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Target Date",
          "name": "targetdate",
          "type": "dateTime",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a site",
          "action": "Create a site"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a site",
          "action": "Delete a site"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a site",
          "action": "Get a site"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many sites",
          "action": "Get many sites"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a site",
          "action": "Update a site"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Name",
      "name": "siteName",
      "type": "string",
      "default": "",
      "description": "Enter site name",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Select Client by ID",
      "name": "selectOption",
      "type": "boolean",
      "default": false,
      "description": "Whether client can be selected by ID",
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Client ID",
      "name": "clientId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ],
          "operation": [
            "create"
          ],
          "selectOption": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Client Name or ID",
      "name": "clientId",
      "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": {
          "resource": [
            "site"
          ],
          "operation": [
            "create"
          ],
          "selectOption": [
            false
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getHaloPSAClients"
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Main Contact",
          "name": "maincontact_name",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Phone Number",
          "name": "phonenumber",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Site ID",
      "name": "siteId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ],
          "operation": [
            "delete",
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ],
          "operation": [
            "get",
            "getAll"
          ]
        }
      }
    },
    {
      "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": [
            "site"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 1000
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Active Status",
          "name": "activeStatus",
          "type": "options",
          "default": "all",
          "options": [
            {
              "name": "Active Only",
              "value": "active",
              "description": "Whether to include active sites in the response"
            },
            {
              "name": "All",
              "value": "all",
              "description": "Whether to include active and inactive sites in the response"
            },
            {
              "name": "Inactive Only",
              "value": "inactive",
              "description": "Whether to include inactive sites in the response"
            }
          ]
        },
        {
          "displayName": "Text To Filter By",
          "name": "search",
          "type": "string",
          "default": "",
          "description": "Filter sites by your search string"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Site ID",
      "name": "siteId",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Client ID",
          "name": "client_id",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Main Contact",
          "name": "maincontact_name",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "Enter site name"
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Phone Number",
          "name": "phonenumber",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a user",
          "action": "Create a user"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a user",
          "action": "Delete a user"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a user",
          "action": "Get a user"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many users",
          "action": "Get many users"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a user",
          "action": "Update a user"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Name",
      "name": "userName",
      "type": "string",
      "default": "",
      "description": "Enter user name",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Site Name or ID",
      "name": "siteId",
      "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": {
          "resource": [
            "user"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getHaloPSASites"
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Email",
          "name": "emailaddress",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Password",
          "name": "password",
          "type": "string",
          "typeOptions": {
            "password": true
          },
          "default": "",
          "description": "Your new password must be at least 8 characters long and contain at least one letter, one number or symbol, one upper case character and one lower case character"
        },
        {
          "displayName": "Surname",
          "name": "surname",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "User Is Inactive",
          "name": "inactive",
          "type": "boolean",
          "default": false
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "delete",
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "get",
            "getAll"
          ]
        }
      }
    },
    {
      "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": [
            "user"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 1000
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Active Status",
          "name": "activeStatus",
          "type": "options",
          "default": "all",
          "options": [
            {
              "name": "Active Only",
              "value": "active",
              "description": "Whether to include active customers in the response"
            },
            {
              "name": "All",
              "value": "all",
              "description": "Whether to include active and inactive customers in the response"
            },
            {
              "name": "Inactive Only",
              "value": "inactive",
              "description": "Whether to include inactive Customers in the response"
            }
          ]
        },
        {
          "displayName": "Text To Filter By",
          "name": "search",
          "type": "string",
          "default": "",
          "description": "Filter users by your search string"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Email",
          "name": "emailaddress",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "Enter user name"
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Password",
          "name": "password",
          "type": "string",
          "typeOptions": {
            "password": true
          },
          "default": "",
          "description": "Your new password must be at least 8 characters long and contain at least one letter, one number or symbol, one upper case character and one lower case character"
        },
        {
          "displayName": "Site Name or ID",
          "name": "site_id",
          "type": "options",
          "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getHaloPSASites"
          }
        },
        {
          "displayName": "Surname",
          "name": "surname",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "User Is Inactive",
          "name": "inactive",
          "type": "boolean",
          "default": false
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "update"
          ]
        }
      }
    }
  ]

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

credentials_required:
  [
    {
      "name": "haloPSAApi",
      "required": true,
      "testedBy": "haloPSAApiCredentialTest"
    }
  ]


node_type: nodes-base.harvest
package_name: n8n-nodes-base
display_name: Harvest
description: Access data on Harvest
category: input
development_style: programmatic
version: 1
outputs:
  [
  "main"
  ]

updated_at: 2025-09-09 22:00:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Harvest node documentation
  description: Learn how to use the Harvest node in n8n. Follow technical documentation to integrate Harvest node into your workflows.
  contentType: [integration, reference]
  ---

  # Harvest node

  Use the Harvest node to automate work in Harvest, and integrate Harvest with other applications. n8n has built-in support for a wide range of Harvest features, including creating, updating, deleting, and getting clients, contacts, invoices, tasks, expenses, users, and projects. 

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

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

  ## Operations

  * Client
      * Create a client
      * Delete a client
      * Get data of a client
      * Get data of all clients
      * Update a client
  * Company
      * Retrieves the company for the currently authenticated user
  * Contact
      * Create a contact
      * Delete a contact
      * Get data of a contact
      * Get data of all contacts
      * Update a contact
  * Estimate
      * Create an estimate
      * Delete an estimate
      * Get data of an estimate
      * Get data of all estimates
      * Update an estimate
  * Expense
      * Get data of an expense
      * Get data of all expenses
      * Create an expense
      * Update an expense
      * Delete an expense
  * Invoice
      * Get data of an invoice
      * Get data of all invoices
      * Create an invoice
      * Update an invoice
      * Delete an invoice
  * Project
      * Create a project
      * Delete a project
      * Get data of a project
      * Get data of all projects
      * Update a project
  * Task
      * Create a task
      * Delete a task
      * Get data of a task
      * Get data of all tasks
      * Update a task
  * Time Entries
      * Create a time entry using duration
      * Create a time entry using start and end time
      * Delete a time entry
      * Delete a time entry's external reference.
      * Get data of a time entry
      * Get data of all time entries
      * Restart a time entry
      * Stop a time entry
      * Update a time entry
  * User
      * Create a user
      * Delete a user
      * Get data of a user
      * Get data of all users
      * Get data of authenticated user
      * Update a user

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "accessToken",
      "options": [
        {
          "name": "Access Token",
          "value": "accessToken"
        },
        {
          "name": "OAuth2",
          "value": "oAuth2"
        }
      ]
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Client",
          "value": "client"
        },
        {
          "name": "Company",
          "value": "company"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Estimate",
          "value": "estimate"
        },
        {
          "name": "Expense",
          "value": "expense"
        },
        {
          "name": "Invoice",
          "value": "invoice"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Time Entry",
          "value": "timeEntry"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a client",
          "action": "Create a client"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a client",
          "action": "Delete a client"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get data of a client",
          "action": "Get data of a client"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get data of many clients",
          "action": "Get data of all clients"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a client",
          "action": "Update a client"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Retrieves the company for the currently authenticated user",
          "action": "Retrieve the company for the currently authenticated user"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "company"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "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 data of a contact",
          "action": "Get data of a contact"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get data of many contacts",
          "action": "Get data of all contacts"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a contact",
          "action": "Update a contact"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create an estimate",
          "action": "Create an estimate"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete an estimate",
          "action": "Delete an estimate"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get data of an estimate",
          "action": "Get data of an estimate"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get data of many estimates",
          "action": "Get data of all estimates"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update an estimate",
          "action": "Update an estimate"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "estimate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create an expense",
          "action": "Create an expense"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete an expense",
          "action": "Delete an expense"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get data of an expense",
          "action": "Get data of an expense"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get data of many expenses",
          "action": "Get data of all expenses"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update an expense",
          "action": "Update an expense"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "expense"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create an invoice",
          "action": "Create an invoice"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete an invoice",
          "action": "Delete an invoice"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get data of an invoice",
          "action": "Get data of an invoice"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get data of many invoices",
          "action": "Get data of all invoices"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update an invoice",
          "action": "Update an invoice"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a project",
          "action": "Create a project"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a project",
          "action": "Delete a project"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get data of a project",
          "action": "Get data of a project"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get data of many projects",
          "action": "Get data of all projects"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a project",
          "action": "Update a project"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a task",
          "action": "Create a task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a task",
          "action": "Delete a task"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get data of a task",
          "action": "Get data of a task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get data of many tasks",
          "action": "Get data of all tasks"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a task",
          "action": "Update a task"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create via Duration",
          "value": "createByDuration",
          "description": "Create a time entry via duration",
          "action": "Create a time entry via duration"
        },
        {
          "name": "Create via Start and End Time",
          "value": "createByStartEnd",
          "description": "Create a time entry via start and end time",
          "action": "Create a time entry via start and end time"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a time entry",
          "action": "Delete a time entry"
        },
        {
          "name": "Delete External Reference",
          "value": "deleteExternal",
          "description": "Delete a time entry’s external reference",
          "action": "Delete a time entry’s external reference"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get data of a time entry",
          "action": "Get data of a time entry"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get data of many time entries",
          "action": "Get data of all time entries"
        },
        {
          "name": "Restart",
          "value": "restartTime",
          "description": "Restart a time entry",
          "action": "Restart a time entry"
        },
        {
          "name": "Stop",
          "value": "stopTime",
          "description": "Stop a time entry",
          "action": "Stop a time entry"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a time entry",
          "action": "Update a time entry"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "timeEntry"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "me",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a user",
          "action": "Create a user"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a user",
          "action": "Delete a user"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get data of a user",
          "action": "Get data of a user"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get data of many users",
          "action": "Get data of all users"
        },
        {
          "name": "Me",
          "value": "me",
          "description": "Get data of authenticated user",
          "action": "Get data of authenticated user"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a user",
          "action": "Update a user"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Account Name or ID",
      "name": "accountId",
      "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,
      "typeOptions": {
        "loadOptionsMethod": "getAccounts"
      }
    },
    {
      "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": [
            "client"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether to only return active clients and false to return inactive clients"
        },
        {
          "displayName": "Updated Since",
          "name": "updated_since",
          "type": "dateTime",
          "default": "",
          "description": "Only return clients that have been updated since the given date and time"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Client ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the client you are retrieving",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "client"
          ]
        }
      }
    },
    {
      "displayName": "Client ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the client you want to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "client"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the client",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "client"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Address",
          "name": "address",
          "type": "string",
          "default": "",
          "description": "A textual representation of the client’s physical address. May include new line characters."
        },
        {
          "displayName": "Currency",
          "name": "currency",
          "type": "string",
          "default": "",
          "description": "The currency used by the estimate. If not provided, the client’s currency will be used. See a list of supported currencies"
        },
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "string",
          "default": "",
          "description": "Whether the client is active, or archived. Defaults to true."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "client"
          ]
        }
      }
    },
    {
      "displayName": "Client ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the client want to update",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "client"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Address",
          "name": "address",
          "type": "string",
          "default": "",
          "description": "A textual representation of the client’s physical address. May include new line characters."
        },
        {
          "displayName": "Currency",
          "name": "currency",
          "type": "string",
          "default": "",
          "description": "The currency used by the estimate. If not provided, the client’s currency will be used. See a list of supported currencies"
        },
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether the client is active, or archived. Defaults to true."
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "Whether the client is active, or archived. Defaults to true."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "client"
          ]
        }
      }
    },
    {
      "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": [
            "contact"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether to only return active clients and false to return inactive clients"
        },
        {
          "displayName": "Updated Since",
          "name": "updated_since",
          "type": "dateTime",
          "default": "",
          "description": "Only return clients that have been updated since the given date and time"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the contact you are retrieving",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the contact you want to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "First Name",
      "name": "firstName",
      "type": "string",
      "default": "",
      "description": "The first name of the contact",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Client ID",
      "name": "clientId",
      "type": "string",
      "default": "",
      "description": "The ID of the client associated with this contact",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Email",
          "name": "email",
          "type": "string",
          "placeholder": "name@email.com",
          "default": "",
          "description": "The contact’s email address"
        },
        {
          "displayName": "Fax",
          "name": "fax",
          "type": "string",
          "default": "",
          "description": "The contact’s fax number"
        },
        {
          "displayName": "Last Name",
          "name": "last_name",
          "type": "string",
          "default": "",
          "description": "The last name of the contact"
        },
        {
          "displayName": "Phone Mobile",
          "name": "phone_mobile",
          "type": "string",
          "default": "",
          "description": "The contact’s mobile phone number"
        },
        {
          "displayName": "Phone Office",
          "name": "phone_office",
          "type": "string",
          "default": "",
          "description": "The contact’s office phone number"
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "description": "The title of the contact"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the contact want to update",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Client ID",
          "name": "client_id",
          "type": "string",
          "default": "",
          "description": "The ID of the client associated with this contact"
        },
        {
          "displayName": "Email",
          "name": "email",
          "type": "string",
          "placeholder": "name@email.com",
          "default": "",
          "description": "The contact’s email address"
        },
        {
          "displayName": "Fax",
          "name": "fax",
          "type": "string",
          "default": "",
          "description": "The contact’s fax number"
        },
        {
          "displayName": "First Name",
          "name": "first_name",
          "type": "string",
          "default": "",
          "description": "The first name of the contact"
        },
        {
          "displayName": "Last Name",
          "name": "last_name",
          "type": "string",
          "default": "",
          "description": "The last name of the contact"
        },
        {
          "displayName": "Phone Mobile",
          "name": "phone_mobile",
          "type": "string",
          "default": "",
          "description": "The contact’s mobile phone number"
        },
        {
          "displayName": "Phone Office",
          "name": "phone_office",
          "type": "string",
          "default": "",
          "description": "The contact’s office phone number"
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "description": "The title of the contact"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "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": {
          "resource": [
            "estimate"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "estimate"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Client ID",
          "name": "client_id",
          "type": "string",
          "default": "",
          "description": "Only return time entries belonging to the client with the given ID"
        },
        {
          "displayName": "From",
          "name": "from",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries with a spent_date on or after the given date"
        },
        {
          "displayName": "State",
          "name": "state",
          "type": "string",
          "default": "",
          "description": "Only return estimates with a state matching the value provided. Options: draft, sent, accepted, or declined."
        },
        {
          "displayName": "To",
          "name": "to",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries with a spent_date on or before the given date"
        },
        {
          "displayName": "Updated Since",
          "name": "updated_since",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries that have been updated since the given date and time"
        },
        {
          "displayName": "Page",
          "name": "page",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1,
          "description": "The page number to use in pagination. For instance, if you make a list request and receive 100 records, your subsequent call can include page=2 to retrieve the next page of the list. (Default: 1)"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "estimate"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Estimate ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the estimate you are retrieving",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "estimate"
          ]
        }
      }
    },
    {
      "displayName": "Estimate ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the estimate want to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "estimate"
          ]
        }
      }
    },
    {
      "displayName": "Client ID",
      "name": "clientId",
      "type": "string",
      "default": "",
      "description": "The ID of the client this estimate belongs to",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "estimate"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Currency",
          "name": "currency",
          "type": "string",
          "default": "",
          "description": "The currency used by the estimate. If not provided, the client’s currency will be used. See a list of supported currencies"
        },
        {
          "displayName": "Discount",
          "name": "over_budget_notification_percentage",
          "type": "string",
          "default": "",
          "description": "This percentage is subtracted from the subtotal. Example: use 10.0 for 10.0%."
        },
        {
          "displayName": "Issue Date",
          "name": "issue_date",
          "type": "dateTime",
          "default": "",
          "description": "Date the invoice was issued. Defaults to today’s date."
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "Any additional notes to include on the estimate"
        },
        {
          "displayName": "Number",
          "name": "number",
          "type": "string",
          "default": "",
          "description": "If no value is set, the number will be automatically generated"
        },
        {
          "displayName": "Purchase Order",
          "name": "purchase_order",
          "type": "string",
          "default": "",
          "description": "The purchase order number"
        },
        {
          "displayName": "Subject",
          "name": "subject",
          "type": "string",
          "default": "",
          "description": "The estimate subject"
        },
        {
          "displayName": "Tax",
          "name": "tax",
          "type": "string",
          "default": "",
          "description": "This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%."
        },
        {
          "displayName": "Tax2",
          "name": "tax2",
          "type": "string",
          "default": "",
          "description": "This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "estimate"
          ]
        }
      }
    },
    {
      "displayName": "Invoice ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the invoice want to update",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "estimate"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Client ID",
          "name": "client_id",
          "type": "string",
          "default": "",
          "description": "The ID of the retainer associated with this invoice"
        },
        {
          "displayName": "Currency",
          "name": "currency",
          "type": "string",
          "default": "",
          "description": "The currency used by the estimate. If not provided, the client’s currency will be used. See a list of supported currencies"
        },
        {
          "displayName": "Discount",
          "name": "over_budget_notification_percentage",
          "type": "string",
          "default": "",
          "description": "This percentage is subtracted from the subtotal. Example: use 10.0 for 10.0%."
        },
        {
          "displayName": "Issue Date",
          "name": "issue_date",
          "type": "dateTime",
          "default": "",
          "description": "Date the invoice was issued. Defaults to today’s date."
        },
        {
          "displayName": "Number",
          "name": "number",
          "type": "string",
          "default": "",
          "description": "If no value is set, the number will be automatically generated"
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "Any additional notes to include on the estimate"
        },
        {
          "displayName": "Purchase Order",
          "name": "purchase_order",
          "type": "string",
          "default": "",
          "description": "The purchase order number"
        },
        {
          "displayName": "Subject",
          "name": "subject",
          "type": "string",
          "default": "",
          "description": "The estimate subject"
        },
        {
          "displayName": "Tax",
          "name": "tax",
          "type": "string",
          "default": "",
          "description": "This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%."
        },
        {
          "displayName": "Tax2",
          "name": "tax2",
          "type": "string",
          "default": "",
          "description": "This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "estimate"
          ]
        }
      }
    },
    {
      "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": [
            "expense"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "expense"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Client ID",
          "name": "client_id",
          "type": "string",
          "default": "",
          "description": "Only return time entries belonging to the client with the given ID"
        },
        {
          "displayName": "From",
          "name": "from",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries with a spent_date on or after the given date"
        },
        {
          "displayName": "Is Billed",
          "name": "is_billed",
          "type": "boolean",
          "default": false,
          "description": "Whether to only return time entries that have been invoiced and false to return time entries that have not been invoiced"
        },
        {
          "displayName": "Page",
          "name": "page",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1,
          "description": "The page number to use in pagination. For instance, if you make a list request and receive 100 records, your subsequent call can include page=2 to retrieve the next page of the list. (Default: 1)"
        },
        {
          "displayName": "Project ID",
          "name": "project_id",
          "type": "string",
          "default": "",
          "description": "Only return time entries belonging to the client with the given ID"
        },
        {
          "displayName": "To",
          "name": "to",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries with a spent_date on or before the given date"
        },
        {
          "displayName": "Updated Since",
          "name": "updated_since",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries that have been updated since the given date and time"
        },
        {
          "displayName": "User ID",
          "name": "user_id",
          "type": "string",
          "default": "",
          "description": "Only return time entries belonging to the user with the given ID"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "expense"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Expense ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the expense you are retrieving",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "expense"
          ]
        }
      }
    },
    {
      "displayName": "Expense ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the expense you want to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "expense"
          ]
        }
      }
    },
    {
      "displayName": "Project ID",
      "name": "projectId",
      "type": "string",
      "default": "",
      "description": "The ID of the project associated with this expense",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "expense"
          ]
        }
      }
    },
    {
      "displayName": "Expense Category ID",
      "name": "expenseCategoryId",
      "type": "string",
      "default": "",
      "description": "The ID of the expense category this expense is being tracked against",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "expense"
          ]
        }
      }
    },
    {
      "displayName": "Spent Date",
      "name": "spentDate",
      "type": "dateTime",
      "default": "",
      "description": "Date the expense occurred",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "expense"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Billable",
          "name": "billable",
          "type": "boolean",
          "default": true,
          "description": "Whether this expense is billable or not. Defaults to true."
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "Notes about the expense"
        },
        {
          "displayName": "Total Cost",
          "name": "total_cost",
          "type": "string",
          "default": "",
          "description": "The total amount of the expense"
        },
        {
          "displayName": "Units",
          "name": "units",
          "type": "string",
          "default": "",
          "description": "The quantity of units to use in calculating the total_cost of the expense"
        },
        {
          "displayName": "User ID",
          "name": "user_id",
          "type": "boolean",
          "default": true,
          "description": "The ID of the user associated with this expense. Defaults to the ID of the currently authenticated user."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "expense"
          ]
        }
      }
    },
    {
      "displayName": "Invoice ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the invoice want to update",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "expense"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Billable",
          "name": "billable",
          "type": "boolean",
          "default": true,
          "description": "Whether this expense is billable or not. Defaults to true."
        },
        {
          "displayName": "Expense Category ID",
          "name": "expense_category_id",
          "type": "string",
          "default": "",
          "description": "The ID of the expense category this expense is being tracked against"
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "Notes about the expense"
        },
        {
          "displayName": "Project ID",
          "name": "project_id",
          "type": "string",
          "default": "",
          "description": "The ID of the project associated with this expense"
        },
        {
          "displayName": "Spent Date",
          "name": "spent_date",
          "type": "dateTime",
          "default": "",
          "description": "Date the expense occurred"
        },
        {
          "displayName": "Total Cost",
          "name": "total_cost",
          "type": "string",
          "default": "",
          "description": "The total amount of the expense"
        },
        {
          "displayName": "Units",
          "name": "units",
          "type": "string",
          "default": "",
          "description": "The quantity of units to use in calculating the total_cost of the expense"
        },
        {
          "displayName": "User ID",
          "name": "user_id",
          "type": "boolean",
          "default": true,
          "description": "The ID of the user associated with this expense. Defaults to the ID of the currently authenticated user."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "expense"
          ]
        }
      }
    },
    {
      "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": [
            "invoice"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Client ID",
          "name": "client_id",
          "type": "string",
          "default": "",
          "description": "Only return time entries belonging to the client with the given ID"
        },
        {
          "displayName": "From",
          "name": "from",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries with a spent_date on or after the given date"
        },
        {
          "displayName": "Page",
          "name": "page",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1,
          "description": "The page number to use in pagination. For instance, if you make a list request and receive 100 records, your subsequent call can include page=2 to retrieve the next page of the list. (Default: 1)"
        },
        {
          "displayName": "Project ID",
          "name": "project_id",
          "type": "string",
          "default": "",
          "description": "Only return time entries belonging to the client with the given ID"
        },
        {
          "displayName": "State",
          "name": "state",
          "type": "multiOptions",
          "options": [
            {
              "name": "Draft",
              "value": "draft"
            },
            {
              "name": "Open",
              "value": "open"
            },
            {
              "name": "Paid",
              "value": "paid"
            },
            {
              "name": "Closed",
              "value": "closed"
            }
          ],
          "default": [],
          "description": "Only return invoices with a state matching the value provided. Options: draft, open, paid, or closed."
        },
        {
          "displayName": "To",
          "name": "to",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries with a spent_date on or before the given date"
        },
        {
          "displayName": "Updated Since",
          "name": "updated_since",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries that have been updated since the given date and time"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Invoice ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the invoice you are retrieving",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "invoice"
          ]
        }
      }
    },
    {
      "displayName": "Invoice ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the invoice want to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "invoice"
          ]
        }
      }
    },
    {
      "displayName": "Client ID",
      "name": "clientId",
      "type": "string",
      "default": "",
      "description": "The ID of the retainer associated with this invoice",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "invoice"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Currency",
          "name": "currency",
          "type": "string",
          "default": "",
          "description": "The currency used by the invoice. If not provided, the client’s currency will be used. See a list of supported currencies"
        },
        {
          "displayName": "Discount",
          "name": "over_budget_notification_percentage",
          "type": "string",
          "default": "",
          "description": "This percentage is subtracted from the subtotal. Example: use 10.0 for 10.0%."
        },
        {
          "displayName": "Due Date",
          "name": "ends_on",
          "type": "dateTime",
          "default": "",
          "description": "Date the invoice is due. Defaults to the issue_date if no payment_term is specified."
        },
        {
          "displayName": "Estimate ID",
          "name": "estimate_id",
          "type": "string",
          "default": "",
          "description": "The ID of the estimate associated with this invoice"
        },
        {
          "displayName": "Issue Date",
          "name": "issue_date",
          "type": "dateTime",
          "default": "",
          "description": "Date the invoice was issued. Defaults to today’s date."
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "Notes about the project"
        },
        {
          "displayName": "Number",
          "name": "number",
          "type": "string",
          "default": "",
          "description": "If no value is set, the number will be automatically generated"
        },
        {
          "displayName": "Payment Term",
          "name": "payment_term",
          "type": "string",
          "default": "",
          "description": "The timeframe in which the invoice should be paid. Defaults to custom. Options: upon receipt, net 15, net 30, net 45, or net 60."
        },
        {
          "displayName": "Purchase Order",
          "name": "purchase_order",
          "type": "string",
          "default": "",
          "description": "The purchase order number"
        },
        {
          "displayName": "Retainer ID",
          "name": "retainer_id",
          "type": "boolean",
          "default": true,
          "description": "The ID of the retainer associated with this invoice"
        },
        {
          "displayName": "Subject",
          "name": "subject",
          "type": "string",
          "default": "",
          "description": "The invoice subject"
        },
        {
          "displayName": "Tax",
          "name": "tax",
          "type": "string",
          "default": "",
          "description": "This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%."
        },
        {
          "displayName": "Tax2",
          "name": "tax2",
          "type": "string",
          "default": "",
          "description": "This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "invoice"
          ]
        }
      }
    },
    {
      "displayName": "Invoice ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the invoice want to update",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "invoice"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Client ID",
          "name": "client_id",
          "type": "string",
          "default": "",
          "description": "The ID of the retainer associated with this invoice"
        },
        {
          "displayName": "Currency",
          "name": "currency",
          "type": "string",
          "default": "",
          "description": "The currency used by the invoice. If not provided, the client’s currency will be used. See a list of supported currencies"
        },
        {
          "displayName": "Discount",
          "name": "over_budget_notification_percentage",
          "type": "string",
          "default": "",
          "description": "This percentage is subtracted from the subtotal. Example: use 10.0 for 10.0%."
        },
        {
          "displayName": "Due Date",
          "name": "ends_on",
          "type": "dateTime",
          "default": "",
          "description": "Date the invoice is due. Defaults to the issue_date if no payment_term is specified."
        },
        {
          "displayName": "Estimate ID",
          "name": "estimate_id",
          "type": "string",
          "default": "",
          "description": "The ID of the estimate associated with this invoice"
        },
        {
          "displayName": "Issue Date",
          "name": "issue_date",
          "type": "dateTime",
          "default": "",
          "description": "Date the invoice was issued. Defaults to today’s date."
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "Notes about the project"
        },
        {
          "displayName": "Number",
          "name": "number",
          "type": "string",
          "default": "",
          "description": "If no value is set, the number will be automatically generated"
        },
        {
          "displayName": "Payment Term",
          "name": "payment_term",
          "type": "string",
          "default": "",
          "description": "The timeframe in which the invoice should be paid. Defaults to custom. Options: upon receipt, net 15, net 30, net 45, or net 60."
        },
        {
          "displayName": "Purchase Order",
          "name": "purchase_order",
          "type": "string",
          "default": "",
          "description": "The purchase order number"
        },
        {
          "displayName": "Retainer ID",
          "name": "retainer_id",
          "type": "boolean",
          "default": true,
          "description": "The ID of the retainer associated with this invoice"
        },
        {
          "displayName": "Subject",
          "name": "subject",
          "type": "string",
          "default": "",
          "description": "The invoice subject"
        },
        {
          "displayName": "Tax",
          "name": "tax",
          "type": "string",
          "default": "",
          "description": "This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%."
        },
        {
          "displayName": "Tax2",
          "name": "tax2",
          "type": "string",
          "default": "",
          "description": "This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "invoice"
          ]
        }
      }
    },
    {
      "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": [
            "project"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Client ID",
          "name": "client_id",
          "type": "string",
          "default": "",
          "description": "Only return projects belonging to the client with the given ID"
        },
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether to only return active projects and false to return inactive projects"
        },
        {
          "displayName": "Page",
          "name": "page",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1,
          "description": "The page number to use in pagination"
        },
        {
          "displayName": "Updated Since",
          "name": "updated_since",
          "type": "dateTime",
          "default": "",
          "description": "Only return projects by updated_since"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Project ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the project you are retrieving",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "project"
          ]
        }
      }
    },
    {
      "displayName": "Project ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the project want to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "project"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the project",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "project"
          ]
        }
      }
    },
    {
      "displayName": "Client ID",
      "name": "clientId",
      "type": "string",
      "default": "",
      "description": "The ID of the client to associate this project with",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "project"
          ]
        }
      }
    },
    {
      "displayName": "Is Billable",
      "name": "isBillable",
      "type": "boolean",
      "default": true,
      "description": "Whether the project is billable or not",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "project"
          ]
        }
      }
    },
    {
      "displayName": "Bill By",
      "name": "billBy",
      "type": "options",
      "default": "none",
      "description": "The method by which the project is invoiced",
      "options": [
        {
          "name": "None",
          "value": "none"
        },
        {
          "name": "People",
          "value": "People"
        },
        {
          "name": "Project",
          "value": "Project"
        },
        {
          "name": "Tasks",
          "value": "Tasks"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "project"
          ]
        }
      }
    },
    {
      "displayName": "Budget By",
      "name": "budgetBy",
      "type": "string",
      "default": "none",
      "description": "The email of the user or \"none\"",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "project"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Budget",
          "name": "budget",
          "type": "number",
          "typeOptions": {
            "minValue": 0
          },
          "default": 0,
          "description": "The budget in hours for the project when budgeting by time"
        },
        {
          "displayName": "Budget Is Monthly",
          "name": "budget_is_monthly",
          "type": "boolean",
          "default": false,
          "description": "Whether the budget resets every month. Defaults to false."
        },
        {
          "displayName": "Cost Budget",
          "name": "cost_budget",
          "type": "string",
          "default": "",
          "description": "The monetary budget for the project when budgeting by money"
        },
        {
          "displayName": "Cost Budget Include Expenses",
          "name": "cost_budget_include_expenses",
          "type": "boolean",
          "default": false,
          "description": "Option for budget of Total Project Fees projects to include tracked expenses. Defaults to false."
        },
        {
          "displayName": "Ends On",
          "name": "ends_on",
          "type": "dateTime",
          "default": "",
          "description": "Date the project will end"
        },
        {
          "displayName": "Fee",
          "name": "fee",
          "type": "string",
          "default": "",
          "description": "The amount you plan to invoice for the project. Only used by fixed-fee projects."
        },
        {
          "displayName": "Hourly Rate",
          "name": "hourly_rate",
          "type": "string",
          "default": "",
          "description": "Rate for projects billed by Project Hourly Rate"
        },
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether the project is active or archived. Defaults to true."
        },
        {
          "displayName": "Is Fixed Fee",
          "name": "is_fixed_fee",
          "type": "boolean",
          "default": false,
          "description": "Whether the project is a fixed-fee project or not"
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "Notes about the project"
        },
        {
          "displayName": "Notify When Over Budget",
          "name": "notify_when_over_budget",
          "type": "boolean",
          "default": false,
          "description": "Whether project managers should be notified when the project goes over budget. Defaults to false."
        },
        {
          "displayName": "Over Budget Notification Percentage",
          "name": "over_budget_notification_percentage",
          "type": "string",
          "default": "",
          "description": "Percentage value used to trigger over budget email alerts. Example: use 10.0 for 10.0%."
        },
        {
          "displayName": "Show Budget To All",
          "name": "show_budget_to_all",
          "type": "boolean",
          "default": false,
          "description": "Whether to show project budget to all employees. Does not apply to Total Project Fee projects. Defaults to false."
        },
        {
          "displayName": "Starts On",
          "name": "starts_on",
          "type": "dateTime",
          "default": "",
          "description": "Date the project was started"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "project"
          ]
        }
      }
    },
    {
      "displayName": "Project ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the project want to update",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "project"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Bill By",
          "name": "bill_by",
          "type": "options",
          "options": [
            {
              "name": "None",
              "value": "none"
            },
            {
              "name": "People",
              "value": "People"
            },
            {
              "name": "Project",
              "value": "Project"
            },
            {
              "name": "Tasks",
              "value": "Tasks"
            }
          ],
          "default": "none",
          "description": "The method by which the project is invoiced"
        },
        {
          "displayName": "Budget",
          "name": "budget",
          "type": "string",
          "default": "",
          "description": "The budget in hours for the project when budgeting by time"
        },
        {
          "displayName": "Budget By",
          "name": "budget_by",
          "type": "string",
          "default": "",
          "description": "The email of the user or \"none\""
        },
        {
          "displayName": "Budget Is Monthly",
          "name": "budget_is_monthly",
          "type": "boolean",
          "default": false,
          "description": "Whether to have the budget reset every month. Defaults to false."
        },
        {
          "displayName": "Client ID",
          "name": "client_id",
          "type": "string",
          "default": "",
          "description": "The ID of the client to associate this project with"
        },
        {
          "displayName": "Cost Budget",
          "name": "cost_budget",
          "type": "string",
          "default": "",
          "description": "The monetary budget for the project when budgeting by money"
        },
        {
          "displayName": "Cost Budget Include Expenses",
          "name": "cost_budget_include_expenses",
          "type": "boolean",
          "default": false,
          "description": "Option for budget of Total Project Fees projects to include tracked expenses. Defaults to false."
        },
        {
          "displayName": "Ends On",
          "name": "ends_on",
          "type": "dateTime",
          "default": "",
          "description": "Date the project will end"
        },
        {
          "displayName": "Fee",
          "name": "fee",
          "type": "string",
          "default": "",
          "description": "The amount you plan to invoice for the project. Only used by fixed-fee projects."
        },
        {
          "displayName": "Hourly Rate",
          "name": "hourly_rate",
          "type": "string",
          "default": "",
          "description": "Rate for projects billed by Project Hourly Rate"
        },
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether the project is active or archived. Defaults to true."
        },
        {
          "displayName": "Is Billable",
          "name": "is_billable",
          "type": "boolean",
          "default": true,
          "description": "Whether the project is billable or not"
        },
        {
          "displayName": "Is Fixed Fee",
          "name": "is_fixed_fee",
          "type": "boolean",
          "default": false,
          "description": "Whether the project is a fixed-fee project or not"
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "The name of the project"
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "Notes about the project"
        },
        {
          "displayName": "Notify When Over Budget",
          "name": "notify_when_over_budget",
          "type": "boolean",
          "default": false,
          "description": "Whether project managers should be notified when the project goes over budget. Defaults to false."
        },
        {
          "displayName": "Over Budget Notification Percentage",
          "name": "over_budget_notification_percentage",
          "type": "string",
          "default": "",
          "description": "Percentage value used to trigger over budget email alerts. Example: use 10.0 for 10.0%."
        },
        {
          "displayName": "Show Budget To All",
          "name": "show_budget_to_all",
          "type": "boolean",
          "default": false,
          "description": "Whether to show project budget to all employees. Does not apply to Total Project Fee projects. Defaults to false."
        },
        {
          "displayName": "Starts On",
          "name": "starts_on",
          "type": "dateTime",
          "default": "",
          "description": "Date the project was started"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "project"
          ]
        }
      }
    },
    {
      "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": [
            "task"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether to only return active tasks and false to return inactive tasks"
        },
        {
          "displayName": "Page",
          "name": "page",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1,
          "description": "The page number to use in pagination"
        },
        {
          "displayName": "Updated Since",
          "name": "updated_since",
          "type": "dateTime",
          "default": "",
          "description": "Only return tasks belonging to the task with the given ID"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Task ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the task you are retrieving",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "Task ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the task you want to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the task",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Billable By Default",
          "name": "billable_by_default",
          "type": "boolean",
          "default": true,
          "description": "Whether default tasks should be marked billable when creating a new project. Defaults to true."
        },
        {
          "displayName": "Default Hourly Rate",
          "name": "default_hourly_rate",
          "type": "number",
          "default": 0,
          "description": "The default hourly rate to use for this task when it is added to a project. Defaults to 0."
        },
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether this task is active or archived. Defaults to true."
        },
        {
          "displayName": "Is Default",
          "name": "is_default",
          "type": "boolean",
          "default": false,
          "description": "Whether this task should be automatically added to future projects. Defaults to false."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "Task ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the task you want to update",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Billable By Default",
          "name": "billable_by_default",
          "type": "boolean",
          "default": false,
          "description": "Whether default tasks should be marked billable when creating a new project. Defaults to true."
        },
        {
          "displayName": "Default Hourly Rate",
          "name": "default_hourly_rate",
          "type": "number",
          "default": 0,
          "description": "The default hourly rate to use for this task when it is added to a project. Defaults to 0."
        },
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether this task is active or archived. Defaults to true."
        },
        {
          "displayName": "Is Default",
          "name": "is_default",
          "type": "boolean",
          "default": false,
          "description": "Whether this task should be automatically added to future projects. Defaults to false."
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "Name of the task"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "task"
          ]
        }
      }
    },
    {
      "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": [
            "timeEntry"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "timeEntry"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Client ID",
          "name": "client_id",
          "type": "string",
          "default": "",
          "description": "Only return time entries belonging to the client with the given ID"
        },
        {
          "displayName": "From",
          "name": "from",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries with a spent_date on or after the given date"
        },
        {
          "displayName": "Is Billed",
          "name": "is_billed",
          "type": "boolean",
          "default": true,
          "description": "Whether to only return time entries that have been invoiced and false to return time entries that have not been invoiced"
        },
        {
          "displayName": "Is Running",
          "name": "is_running",
          "type": "boolean",
          "default": true,
          "description": "Whether to only return running time entries and false to return non-running time entries"
        },
        {
          "displayName": "Page",
          "name": "page",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1,
          "description": "The page number to use in pagination. For instance, if you make a list request and receive 100 records, your subsequent call can include page=2 to retrieve the next page of the list. (Default: 1)"
        },
        {
          "displayName": "To",
          "name": "to",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries with a spent_date on or before the given date"
        },
        {
          "displayName": "Updated Since",
          "name": "updated_since",
          "type": "dateTime",
          "default": "",
          "description": "Only return time entries that have been updated since the given date and time"
        },
        {
          "displayName": "User ID",
          "name": "user_id",
          "type": "string",
          "default": "",
          "description": "Only return time entries belonging to the user with the given ID"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "timeEntry"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Time Entry ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the time entry you are retrieving",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Time Entry ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the time entry you are deleting",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Time Entry ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the time entry whose external reference you are deleting",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "deleteExternal"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Time Entry ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "Stop a running time entry. Stopping a time entry is only possible if it’s currently running.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "stopTime"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Time Entry ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "Restart a stopped time entry. Restarting a time entry is only possible if it isn’t currently running.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "restartTime"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Time Entry ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the time entry to update",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Ended Time",
          "name": "ended_time",
          "type": "string",
          "default": "",
          "placeholder": "3:00pm",
          "description": "The time the entry ended"
        },
        {
          "displayName": "Hours",
          "name": "hours",
          "type": "number",
          "typeOptions": {
            "minValue": 0
          },
          "default": 0,
          "description": "The current amount of time tracked"
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "These are notes about the time entry"
        },
        {
          "displayName": "Started Time",
          "name": "started_time",
          "type": "string",
          "default": "",
          "placeholder": "3:00pm",
          "description": "The time the entry started. Defaults to the current time. Example: “8:00am”."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Project ID",
      "name": "projectId",
      "type": "string",
      "default": "",
      "description": "The ID of the project to associate with the time entry",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "createByDuration"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Task ID",
      "name": "taskId",
      "type": "string",
      "default": "",
      "description": "The ID of the task to associate with the time entry",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "createByDuration"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Spent Date",
      "name": "spentDate",
      "type": "dateTime",
      "default": "",
      "description": "The ISO 8601 formatted date the time entry was spent",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "createByDuration"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Hours",
          "name": "hours",
          "type": "number",
          "typeOptions": {
            "minValue": 0
          },
          "default": 0,
          "description": "The current amount of time tracked"
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "These are notes about the time entry"
        },
        {
          "displayName": "User ID",
          "name": "user_id",
          "type": "string",
          "default": "",
          "description": "The ID of the user to associate with the time entry. Defaults to the currently authenticated user’s ID."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "createByDuration"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Project ID",
      "name": "projectId",
      "type": "string",
      "default": "",
      "description": "The ID of the project to associate with the time entry",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "createByStartEnd"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Task ID",
      "name": "taskId",
      "type": "string",
      "default": "",
      "description": "The ID of the task to associate with the time entry",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "createByStartEnd"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Spent Date",
      "name": "spentDate",
      "type": "dateTime",
      "default": "",
      "description": "The ISO 8601 formatted date the time entry was spent",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "createByStartEnd"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Ended Time",
          "name": "ended_time",
          "type": "string",
          "default": "",
          "placeholder": "3:00pm",
          "description": "The time the entry ended"
        },
        {
          "displayName": "Notes",
          "name": "notes",
          "type": "string",
          "default": "",
          "description": "These are notes about the time entry"
        },
        {
          "displayName": "Started Time",
          "name": "started_time",
          "type": "string",
          "default": "",
          "placeholder": "8:00am",
          "description": "The time the entry started. Defaults to the current time. Example: “8:00am”."
        },
        {
          "displayName": "User ID",
          "name": "user_id",
          "type": "string",
          "default": "",
          "description": "The ID of the user to associate with the time entry. Defaults to the currently authenticated user’s ID."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "createByStartEnd"
          ],
          "resource": [
            "timeEntry"
          ]
        }
      }
    },
    {
      "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": [
            "user"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether to only return active users and false to return inactive users"
        },
        {
          "displayName": "Updated Since",
          "name": "updated_since",
          "type": "dateTime",
          "default": "",
          "description": "Only return users belonging to the user with the given ID"
        },
        {
          "displayName": "Page",
          "name": "page",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1,
          "description": "The page number to use in pagination"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the user you are retrieving",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "user"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the user you want to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "user"
          ]
        }
      }
    },
    {
      "displayName": "First Name",
      "name": "firstName",
      "type": "string",
      "default": "",
      "description": "The first name of the user",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "user"
          ]
        }
      }
    },
    {
      "displayName": "Last Name",
      "name": "lastName",
      "type": "string",
      "default": "",
      "description": "The last name of the user",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "user"
          ]
        }
      }
    },
    {
      "displayName": "Email",
      "name": "email",
      "type": "string",
      "default": "",
      "description": "The email of the user",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "user"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Can Create Invoices",
          "name": "can_create_invoices",
          "type": "boolean",
          "default": false,
          "description": "Whether the user can create invoices. Only applicable to Project Managers."
        },
        {
          "displayName": "Can Create Projects",
          "name": "can_create_projects",
          "type": "boolean",
          "default": false,
          "description": "Whether the user can create projects. Only applicable to Project Managers."
        },
        {
          "displayName": "Can See Rates",
          "name": "can_see_rates",
          "type": "boolean",
          "default": false,
          "description": "Whether the user can see billable rates on projects. Only applicable to Project Managers."
        },
        {
          "displayName": "Cost Rate",
          "name": "cost_rate",
          "type": "number",
          "typeOptions": {
            "minValue": 0
          },
          "default": 0,
          "description": "The cost rate to use for this user when calculating a project’s costs vs billable amount"
        },
        {
          "displayName": "Default Hourly Rate",
          "name": "default_hourly_rate",
          "type": "string",
          "default": "0",
          "description": "The billable rate to use for this user when they are added to a project"
        },
        {
          "displayName": "Has Access To All Future Projects",
          "name": "has_access_to_all_future_projects",
          "type": "boolean",
          "default": false,
          "description": "Whether the user should be automatically added to future projects"
        },
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether the user is active or archived"
        },
        {
          "displayName": "Is Admin",
          "name": "is_admin",
          "type": "boolean",
          "default": false,
          "description": "Whether the user has Admin permissions"
        },
        {
          "displayName": "Is Contractor",
          "name": "is_contractor",
          "type": "boolean",
          "default": false,
          "description": "Whether the user is a contractor or an employee"
        },
        {
          "displayName": "Is Project Manager",
          "name": "is_project_manager",
          "type": "boolean",
          "default": false,
          "description": "Whether the user has Project Manager permissions"
        },
        {
          "displayName": "Roles",
          "name": "roles",
          "type": "string",
          "default": "",
          "description": "The role names assigned to this person"
        },
        {
          "displayName": "Timezone",
          "name": "timezone",
          "type": "string",
          "default": "",
          "description": "The user’s timezone. Defaults to the company’s timezone. See a list of <a href=\"/api-v2/introduction/overview/supported-timezones/\">supported time zones</a>."
        },
        {
          "displayName": "Weekly Capacity",
          "name": "weekly_capacity",
          "type": "number",
          "typeOptions": {
            "minValue": 0
          },
          "default": 126000,
          "description": "The number of hours per week this person is available to work in seconds. Defaults to <code class=\"language-plaintext highlighter-rouge\">126000</code> seconds (35 hours)."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "user"
          ]
        }
      }
    },
    {
      "displayName": "Time Entry ID",
      "name": "id",
      "type": "string",
      "default": "",
      "description": "The ID of the time entry to update",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "user"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Can Create Invoices",
          "name": "can_create_invoices",
          "type": "boolean",
          "default": false,
          "description": "Whether the user can create invoices. Only applicable to Project Managers."
        },
        {
          "displayName": "Can Create Projects",
          "name": "can_create_projects",
          "type": "boolean",
          "default": false,
          "description": "Whether the user can create projects. Only applicable to Project Managers."
        },
        {
          "displayName": "Can See Rates",
          "name": "can_see_rates",
          "type": "boolean",
          "default": false,
          "description": "Whether the user can see billable rates on projects. Only applicable to Project Managers."
        },
        {
          "displayName": "Cost Rate",
          "name": "cost_rate",
          "type": "number",
          "typeOptions": {
            "minValue": 0
          },
          "default": 0,
          "description": "The cost rate to use for this user when calculating a project’s costs vs billable amount"
        },
        {
          "displayName": "Default Hourly Rate",
          "name": "default_hourly_rate",
          "type": "string",
          "default": "0",
          "description": "The billable rate to use for this user when they are added to a project"
        },
        {
          "displayName": "Email",
          "name": "email",
          "type": "string",
          "placeholder": "name@email.com",
          "default": "",
          "description": "The user email"
        },
        {
          "displayName": "First Name",
          "name": "first_name",
          "type": "string",
          "default": "",
          "description": "The user first name"
        },
        {
          "displayName": "Has Access To All Future Projects",
          "name": "has_access_to_all_future_projects",
          "type": "boolean",
          "default": false,
          "description": "Whether the user should be automatically added to future projects"
        },
        {
          "displayName": "Is Active",
          "name": "is_active",
          "type": "boolean",
          "default": true,
          "description": "Whether the user is active or archived"
        },
        {
          "displayName": "Is Admin",
          "name": "is_admin",
          "type": "boolean",
          "default": false,
          "description": "Whether the user has Admin permissions"
        },
        {
          "displayName": "Is Contractor",
          "name": "is_contractor",
          "type": "boolean",
          "default": false,
          "description": "Whether the user is a contractor or an employee"
        },
        {
          "displayName": "Is Project Manager",
          "name": "is_project_manager",
          "type": "boolean",
          "default": false,
          "description": "Whether the user has Project Manager permissions"
        },
        {
          "displayName": "Last Name",
          "name": "last_name",
          "type": "string",
          "default": "",
          "description": "The user last name"
        },
        {
          "displayName": "Roles",
          "name": "roles",
          "type": "string",
          "default": "",
          "description": "The role names assigned to this person"
        },
        {
          "displayName": "Timezone",
          "name": "timezone",
          "type": "string",
          "default": "",
          "description": "The user’s timezone. Defaults to the company’s timezone. See a list of <a href=\"/api-v2/introduction/overview/supported-timezones/\">supported time zones</a>."
        },
        {
          "displayName": "Weekly Capacity",
          "name": "weekly_capacity",
          "type": "number",
          "typeOptions": {
            "minValue": 0
          },
          "default": 126000,
          "description": "The number of hours per week this person is available to work in seconds. Defaults to <code class=\"language-plaintext highlighter-rouge\">126000</code> seconds (35 hours)."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "user"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a client"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a client"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get data of a client"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get data of many clients"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a client"
    }
  ]

credentials_required:
  [
    {
      "name": "harvestApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "accessToken"
          ]
        }
      }
    },
    {
      "name": "harvestOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


