# nodes

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
  }
  ]

updated_at: 2025-07-07 21:06:12
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: []
updated_at: 2025-07-07 21:06:12
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"
  }
  ]

updated_at: 2025-07-07 21:06:12
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
  }
  ]

updated_at: 2025-07-07 21:06:12
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: []
updated_at: 2025-07-07 21:06:12
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
updated_at: 2025-07-07 21:06:12
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
updated_at: 2025-07-07 21:06:12
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"
          ]
        }
      }
    }
  ]


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

updated_at: 2025-07-07 21:06:12
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Help Scout node documentation
  description: Learn how to use the Help Scout node in n8n. Follow technical documentation to integrate Help Scout node into your workflows.
  contentType: [integration, reference]
  ---

  # Help Scout node

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

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

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

  ## Operations

  * Conversation
      * Create a new conversation
      * Delete a conversation
      * Get a conversation
      * Get all conversations
  * Customer
      * Create a new customer
      * Get a customer
      * Get all customers
      * Get customer property definitions
      * Update a customer
  * Mailbox
      * Get data of a mailbox
      * Get all mailboxes
  * Thread
      * Create a new chat thread
      * Get all chat threads

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "conversation",
      "options": [
        {
          "name": "Conversation",
          "value": "conversation"
        },
        {
          "name": "Customer",
          "value": "customer"
        },
        {
          "name": "Mailbox",
          "value": "mailbox"
        },
        {
          "name": "Thread",
          "value": "thread"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a new conversation",
          "action": "Create a conversation"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a conversation",
          "action": "Delete a conversation"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a conversation",
          "action": "Get a conversation"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many conversations",
          "action": "Get many conversations"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Mailbox Name or ID",
      "name": "mailboxId",
      "type": "options",
      "default": "",
      "description": "ID of a mailbox where the conversation is being created. 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": [
            "conversation"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getMailboxes"
      }
    },
    {
      "displayName": "Status",
      "name": "status",
      "type": "options",
      "default": "",
      "description": "Conversation status",
      "options": [
        {
          "name": "Active",
          "value": "active"
        },
        {
          "name": "Closed",
          "value": "closed"
        },
        {
          "name": "Pending",
          "value": "pending"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "conversation"
          ]
        }
      }
    },
    {
      "displayName": "Subject",
      "name": "subject",
      "type": "string",
      "default": "",
      "description": "Conversation’s subject",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "conversation"
          ]
        }
      }
    },
    {
      "displayName": "Type",
      "name": "type",
      "type": "options",
      "default": "",
      "description": "Conversation type",
      "options": [
        {
          "name": "Chat",
          "value": "chat"
        },
        {
          "name": "Email",
          "value": "email"
        },
        {
          "name": "Phone",
          "value": "phone"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "conversation"
          ]
        }
      }
    },
    {
      "displayName": "Resolve Data",
      "name": "resolveData",
      "type": "boolean",
      "default": true,
      "description": "By default the response only contain the ID to resource. If this option gets activated, it will resolve the data automatically.",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "conversation"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Assign To",
          "name": "assignTo",
          "type": "number",
          "default": 0,
          "description": "The Help Scout user assigned to the conversation"
        },
        {
          "displayName": "Auto Reply",
          "name": "autoReply",
          "type": "boolean",
          "default": false,
          "description": "Whether set to true, an auto reply will be sent as long as there is at least one customer thread in the conversation"
        },
        {
          "displayName": "Closed At",
          "name": "closedAt",
          "type": "dateTime",
          "default": "",
          "description": "When the conversation was closed, only applicable for imported conversations"
        },
        {
          "displayName": "Created At",
          "name": "createdAt",
          "type": "dateTime",
          "default": "",
          "description": "When this conversation was created - ISO 8601 date time"
        },
        {
          "displayName": "Customer Email",
          "name": "customerEmail",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Customer ID",
          "name": "customerId",
          "type": "number",
          "default": 0
        },
        {
          "displayName": "Imported",
          "name": "imported",
          "type": "boolean",
          "default": false,
          "description": "Whether set to true, no outgoing emails or notifications will be generated"
        },
        {
          "displayName": "Tag Names or IDs",
          "name": "tags",
          "type": "multiOptions",
          "typeOptions": {
            "loadOptionsMethod": "getTags"
          },
          "default": [],
          "description": "List of tags to be added to the conversation. Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "User ID",
          "name": "user",
          "type": "number",
          "default": 0,
          "description": "ID of the user who is adding the conversation and threads"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "conversation"
          ]
        }
      }
    },
    {
      "displayName": "Threads",
      "name": "threadsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Thread",
          "name": "threadsValues",
          "values": [
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "Chat",
                  "value": "chat"
                },
                {
                  "name": "Customer",
                  "value": "customer"
                },
                {
                  "name": "Note",
                  "value": "note"
                },
                {
                  "name": "Phone",
                  "value": "phone"
                },
                {
                  "name": "Reply",
                  "value": "reply"
                }
              ],
              "default": ""
            },
            {
              "displayName": "Text",
              "name": "text",
              "type": "string",
              "default": "",
              "description": "The message text"
            },
            {
              "displayName": "Bcc",
              "name": "bcc",
              "displayOptions": {
                "show": {
                  "type": [
                    "customer"
                  ]
                }
              },
              "type": "string",
              "typeOptions": {
                "multipleValues": true,
                "multipleValueButtonText": "Add Email"
              },
              "default": [],
              "description": "Email addresses"
            },
            {
              "displayName": "Cc",
              "name": "cc",
              "displayOptions": {
                "show": {
                  "type": [
                    "customer"
                  ]
                }
              },
              "type": "string",
              "typeOptions": {
                "multipleValues": true,
                "multipleValueButtonText": "Add Email"
              },
              "default": [],
              "description": "Email addresses"
            },
            {
              "displayName": "Draft",
              "name": "draft",
              "displayOptions": {
                "show": {
                  "type": [
                    "reply"
                  ]
                }
              },
              "type": "boolean",
              "default": false,
              "description": "Whether true, a draft reply is created"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "conversation"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Conversation ID",
      "name": "conversationId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Conversation ID",
      "name": "conversationId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ],
          "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"
          ],
          "resource": [
            "conversation"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "conversation"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Assign To",
          "name": "assignTo",
          "type": "number",
          "default": 0,
          "description": "Filters conversations by assignee ID"
        },
        {
          "displayName": "Embed",
          "name": "embed",
          "type": "options",
          "options": [
            {
              "name": "Threads",
              "value": "threads"
            }
          ],
          "default": "",
          "description": "Allows embedding/loading of sub-entities"
        },
        {
          "displayName": "Folder ID",
          "name": "folder",
          "type": "string",
          "default": "",
          "description": "Filters conversations from a specific folder ID"
        },
        {
          "displayName": "Mailbox ID",
          "name": "mailbox",
          "type": "string",
          "default": "",
          "description": "Filters conversations from a specific mailbox"
        },
        {
          "displayName": "Modified Since",
          "name": "modifiedSince",
          "type": "dateTime",
          "default": "",
          "description": "Returns only conversations that were modified after this date"
        },
        {
          "displayName": "Number",
          "name": "number",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0
          },
          "description": "Looks up conversation by conversation number"
        },
        {
          "displayName": "Query",
          "name": "query",
          "type": "string",
          "default": "",
          "description": "Advanced search <a href=\"https://developer.helpscout.com/mailbox-api/endpoints/conversations/list/#query\">Examples</a>"
        },
        {
          "displayName": "Sort Field",
          "name": "sortField",
          "type": "options",
          "options": [
            {
              "name": "Created At",
              "value": "createdAt"
            },
            {
              "name": "Customer Email",
              "value": "customerEmail"
            },
            {
              "name": "Customer Name",
              "value": "customerName"
            },
            {
              "name": "Mailbox ID",
              "value": "mailboxid"
            },
            {
              "name": "Modified At",
              "value": "modifiedAt"
            },
            {
              "name": "Number",
              "value": "number"
            },
            {
              "name": "Score",
              "value": "score"
            },
            {
              "name": "Status",
              "value": "status"
            },
            {
              "name": "Subject",
              "value": "subject"
            }
          ],
          "default": "",
          "description": "Sorts the result by specified field"
        },
        {
          "displayName": "Sort Order",
          "name": "sortOrder",
          "type": "options",
          "options": [
            {
              "name": "ASC",
              "value": "asc"
            },
            {
              "name": "DESC",
              "value": "desc"
            }
          ],
          "default": "desc"
        },
        {
          "displayName": "Status",
          "name": "status",
          "type": "options",
          "options": [
            {
              "name": "Active",
              "value": "active"
            },
            {
              "name": "All",
              "value": "all"
            },
            {
              "name": "Closed",
              "value": "closed"
            },
            {
              "name": "Open",
              "value": "open"
            },
            {
              "name": "Pending",
              "value": "pending"
            },
            {
              "name": "Spam",
              "value": "spam"
            }
          ],
          "default": "active",
          "description": "Filter conversation by status"
        },
        {
          "displayName": "Tag Names or IDs",
          "name": "tags",
          "type": "multiOptions",
          "typeOptions": {
            "loadOptionsMethod": "getTags"
          },
          "default": [],
          "description": "Filter conversation by tags. Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a new customer",
          "action": "Create a customer"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a customer",
          "action": "Get a customer"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many customers",
          "action": "Get many customers"
        },
        {
          "name": "Properties",
          "value": "properties",
          "description": "Get customer property definitions",
          "action": "Get customer properties"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a customer",
          "action": "Update a customer"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "customer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Resolve Data",
      "name": "resolveData",
      "type": "boolean",
      "default": true,
      "description": "By default the response only contain the ID to resource. If this option gets activated, it will resolve the data automatically.",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "customer"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Age",
          "name": "age",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1,
          "description": "Customer’s age"
        },
        {
          "displayName": "First Name",
          "name": "firstName",
          "type": "string",
          "default": "",
          "description": "First name of the customer. When defined it must be between 1 and 40 characters."
        },
        {
          "displayName": "Gender",
          "name": "gender",
          "type": "options",
          "options": [
            {
              "name": "Female",
              "value": "female"
            },
            {
              "name": "Male",
              "value": "male"
            },
            {
              "name": "Unknown",
              "value": "unknown"
            }
          ],
          "default": "",
          "description": "Gender of this customer"
        },
        {
          "displayName": "Job Title",
          "name": "jobTitle",
          "type": "string",
          "default": "",
          "description": "Job title. Max length 60 characters."
        },
        {
          "displayName": "Last Name",
          "name": "lastName",
          "type": "string",
          "default": "",
          "description": "Last name of the customer"
        },
        {
          "displayName": "Location",
          "name": "location",
          "type": "string",
          "default": "",
          "description": "Location of the customer"
        },
        {
          "displayName": "Notes",
          "name": "background",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Organization",
          "name": "organization",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Photo Url",
          "name": "photoUrl",
          "type": "string",
          "default": "",
          "description": "URL of the customer’s photo"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "customer"
          ]
        }
      }
    },
    {
      "displayName": "Address",
      "name": "addressUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Address",
          "name": "addressValue",
          "values": [
            {
              "displayName": "Line 1",
              "name": "line1",
              "type": "string",
              "default": ""
            },
            {
              "displayName": "Line 2",
              "name": "line2",
              "type": "string",
              "default": ""
            },
            {
              "displayName": "City",
              "name": "city",
              "type": "string",
              "default": ""
            },
            {
              "displayName": "State",
              "name": "state",
              "type": "string",
              "default": ""
            },
            {
              "displayName": "Country Name or ID",
              "name": "country",
              "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": "getCountriesCodes"
              },
              "default": ""
            },
            {
              "displayName": "Postal Code",
              "name": "postalCode",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "customer"
          ]
        }
      }
    },
    {
      "displayName": "Chat Handles",
      "name": "chatsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Chat Handle",
          "name": "chatsValues",
          "values": [
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "AIM",
                  "value": "aim"
                },
                {
                  "name": "Google Talk",
                  "value": "gtalk"
                },
                {
                  "name": "ICQ",
                  "value": "icq"
                },
                {
                  "name": "MSN",
                  "value": "msn"
                },
                {
                  "name": "Other",
                  "value": "other"
                },
                {
                  "name": "QQ",
                  "value": "qq"
                },
                {
                  "name": "Skype",
                  "value": "skype"
                },
                {
                  "name": "XMPP",
                  "value": "xmpp"
                },
                {
                  "name": "Yahoo",
                  "value": "yahoo"
                }
              ],
              "description": "Chat type",
              "default": ""
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Chat handle"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "customer"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Emails",
      "name": "emailsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Email",
          "name": "emailsValues",
          "values": [
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "Home",
                  "value": "home"
                },
                {
                  "name": "Other",
                  "value": "other"
                },
                {
                  "name": "Work",
                  "value": "work"
                }
              ],
              "description": "Location for this email address",
              "default": ""
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Email"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "customer"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Phones",
      "name": "phonesUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Email",
          "name": "phonesValues",
          "values": [
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "Fax",
                  "value": "fax"
                },
                {
                  "name": "Home",
                  "value": "home"
                },
                {
                  "name": "Other",
                  "value": "other"
                },
                {
                  "name": "Pager",
                  "value": "pager"
                },
                {
                  "name": "Work",
                  "value": "work"
                }
              ],
              "description": "Location for this phone",
              "default": ""
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Phone"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "customer"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Social Profiles",
      "name": "socialProfilesUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Social Profile",
          "name": "socialProfilesValues",
          "values": [
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "About Me",
                  "value": "aboutMe"
                },
                {
                  "name": "Facebook",
                  "value": "facebook"
                },
                {
                  "name": "Flickr",
                  "value": "flickr"
                },
                {
                  "name": "Forsquare",
                  "value": "forsquare"
                },
                {
                  "name": "Google",
                  "value": "google"
                },
                {
                  "name": "Google Plus",
                  "value": "googleplus"
                },
                {
                  "name": "Linkedin",
                  "value": "linkedin"
                },
                {
                  "name": "Other",
                  "value": "other"
                },
                {
                  "name": "Quora",
                  "value": "quora"
                },
                {
                  "name": "Tungleme",
                  "value": "tungleme"
                },
                {
                  "name": "Twitter",
                  "value": "twitter"
                },
                {
                  "name": "Youtube",
                  "value": "youtube"
                }
              ],
              "description": "Type of social profile",
              "default": ""
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Social Profile handle (URL for example)"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "customer"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Websites",
      "name": "websitesUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Website",
          "name": "websitesValues",
          "values": [
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Website URL"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "customer"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "customer"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "customer"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "First Name",
          "name": "firstName",
          "type": "string",
          "default": "",
          "description": "Filters customers by first name"
        },
        {
          "displayName": "Last Name",
          "name": "lastName",
          "type": "string",
          "default": "",
          "description": "Filters customers by last name"
        },
        {
          "displayName": "Mailbox ID",
          "name": "mailbox",
          "type": "string",
          "default": "",
          "description": "Filters customers from a specific mailbox"
        },
        {
          "displayName": "Modified Since",
          "name": "modifiedSince",
          "type": "dateTime",
          "default": "",
          "description": "Returns only customers that were modified after this date"
        },
        {
          "displayName": "Sort Field",
          "name": "sortField",
          "type": "options",
          "options": [
            {
              "name": "Score",
              "value": "score"
            },
            {
              "name": "First Name",
              "value": "firstName"
            },
            {
              "name": "Last Name",
              "value": "lastName"
            },
            {
              "name": "Modified At",
              "value": "modifiedAt"
            }
          ],
          "default": "score",
          "description": "Sorts the result by specified field"
        },
        {
          "displayName": "Sort Order",
          "name": "sortOrder",
          "type": "options",
          "options": [
            {
              "name": "ASC",
              "value": "asc"
            },
            {
              "name": "DESC",
              "value": "desc"
            }
          ],
          "default": "desc"
        },
        {
          "displayName": "Query",
          "name": "query",
          "type": "string",
          "default": "",
          "description": "Advanced search <a href=\"https://developer.helpscout.com/mailbox-api/endpoints/customers/list/#query\">Examples</a>"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "customer"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Customer ID",
      "name": "customerId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "customer"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Customer ID",
      "name": "customerId",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "customer"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Age",
          "name": "age",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1,
          "description": "Customer’s age"
        },
        {
          "displayName": "First Name",
          "name": "firstName",
          "type": "string",
          "default": "",
          "description": "First name of the customer. When defined it must be between 1 and 40 characters."
        },
        {
          "displayName": "Gender",
          "name": "gender",
          "type": "options",
          "options": [
            {
              "name": "Female",
              "value": "female"
            },
            {
              "name": "Male",
              "value": "male"
            },
            {
              "name": "Unknown",
              "value": "unknown"
            }
          ],
          "default": "",
          "description": "Gender of this customer"
        },
        {
          "displayName": "Job Title",
          "name": "jobTitle",
          "type": "string",
          "default": "",
          "description": "Job title. Max length 60 characters."
        },
        {
          "displayName": "Last Name",
          "name": "lastName",
          "type": "string",
          "default": "",
          "description": "Last name of the customer"
        },
        {
          "displayName": "Location",
          "name": "location",
          "type": "string",
          "default": "",
          "description": "Location of the customer"
        },
        {
          "displayName": "Notes",
          "name": "background",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Organization",
          "name": "organization",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Photo Url",
          "name": "photoUrl",
          "type": "string",
          "default": "",
          "description": "URL of the customer’s photo"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "customer"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get data of a mailbox",
          "action": "Get a mailbox"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many mailboxes",
          "action": "Get many mailboxes"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "mailbox"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Mailbox ID",
      "name": "mailboxId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "mailbox"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "mailbox"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "mailbox"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a new chat thread",
          "action": "Create a thread"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many chat threads",
          "action": "Get many threads"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Conversation ID",
      "name": "conversationId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Type",
      "name": "type",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Chat",
          "value": "chat"
        },
        {
          "name": "Customer",
          "value": "customer"
        },
        {
          "name": "Note",
          "value": "note"
        },
        {
          "name": "Phone",
          "value": "phone"
        },
        {
          "name": "Reply",
          "value": "reply"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Text",
      "name": "text",
      "type": "string",
      "default": "",
      "description": "The chat text",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Created At",
          "name": "createdAt",
          "type": "dateTime",
          "default": ""
        },
        {
          "displayName": "Customer Email",
          "name": "customerEmail",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Customer ID",
          "name": "customerId",
          "type": "number",
          "default": 0
        },
        {
          "displayName": "Draft",
          "name": "draft",
          "type": "boolean",
          "default": false,
          "displayOptions": {
            "show": {
              "/type": [
                "note"
              ]
            }
          },
          "description": "Whether a draft reply is created"
        },
        {
          "displayName": "Imported",
          "name": "imported",
          "type": "boolean",
          "default": false,
          "description": "Whether no outgoing emails or notifications will be generated"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "thread"
          ]
        }
      }
    },
    {
      "displayName": "Attachments",
      "name": "attachmentsUi",
      "type": "fixedCollection",
      "default": {},
      "description": "Array of supported attachments to add to the message",
      "options": [
        {
          "name": "attachmentsValues",
          "displayName": "Attachments Values",
          "values": [
            {
              "displayName": "FileName",
              "name": "fileName",
              "type": "string",
              "default": "",
              "description": "Attachment’s file name"
            },
            {
              "displayName": "Mime Type",
              "name": "mimeType",
              "type": "string",
              "default": "",
              "description": "Attachment’s mime type"
            },
            {
              "displayName": "Data",
              "name": "data",
              "type": "string",
              "default": "",
              "placeholder": "ZXhhbXBsZSBmaWxl",
              "description": "Base64-encoded stream of data"
            }
          ]
        },
        {
          "name": "attachmentsBinary",
          "displayName": "Attachments Binary",
          "values": [
            {
              "displayName": "Property",
              "name": "property",
              "type": "string",
              "default": "data",
              "description": "Name of the binary properties which contain data which should be added to email as attachment"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "thread"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Conversation ID",
      "name": "conversationId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ],
          "operation": [
            "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": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "thread"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "thread"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a new conversation"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a conversation"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a conversation"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many conversations"
    }
  ]


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

updated_at: 2025-07-07 21:06:12
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Help Scout Trigger node documentation
  description: Learn how to use the Help Scout Trigger node in n8n. Follow technical documentation to integrate Help Scout Trigger node into your workflows.
  contentType: [integration, reference]
  ---

  # Help Scout Trigger node

  [Help Scout](https://www.helpscout.com/){:target=_blank .external-link} is a help desk software that provides an email-based customer support platform, knowledge base tool, and an embeddable search/contact widget for customer service professionals.

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

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

properties_schema:
  [
    {
      "displayName": "Events",
      "name": "events",
      "type": "multiOptions",
      "default": [],
      "options": [
        {
          "name": "Conversation - Assigned",
          "value": "convo.assigned"
        },
        {
          "name": "Conversation - Created",
          "value": "convo.created"
        },
        {
          "name": "Conversation - Deleted",
          "value": "convo.deleted"
        },
        {
          "name": "Conversation - Merged",
          "value": "convo.merged"
        },
        {
          "name": "Conversation - Moved",
          "value": "convo.moved"
        },
        {
          "name": "Conversation - Status",
          "value": "convo.status"
        },
        {
          "name": "Conversation - Tags",
          "value": "convo.tags"
        },
        {
          "name": "Conversation Agent Reply - Created",
          "value": "convo.agent.reply.created"
        },
        {
          "name": "Conversation Customer Reply - Created",
          "value": "convo.customer.reply.created"
        },
        {
          "name": "Conversation Note - Created",
          "value": "convo.note.created"
        },
        {
          "name": "Customer - Created",
          "value": "customer.created"
        },
        {
          "name": "Rating - Received",
          "value": "satisfaction.ratings"
        }
      ],
      "required": true
    }
  ]


node_type: nodes-base.highLevel
package_name: n8n-nodes-base
display_name: HighLevel
description: Consume HighLevel API
category: transform
development_style: programmatic
version: 2
credentials_required:
  [
  {
  "name": "highLevelOAuth2Api",
  "required": true
  }
  ]

updated_at: 2025-07-07 21:06:12
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: HighLevel node documentation
  description: Learn how to use the HighLevel node in n8n. Follow technical documentation to integrate HighLevel node into your workflows.
  contentType: [integration, reference]
  ---

  # HighLevel node

  Use the HighLevel node to automate work in HighLevel, and integrate HighLevel with other applications. n8n has built-in support for a wide range of HighLevel features, including creating, updating, deleting, and getting contacts, opportunities, and tasks, as well as booking appointments and getting free time slots in calendars. 

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

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

  ## Operations

  * Contact
  	* Create or update
  	* Delete
  	* Get
  	* Get many
  	* Update
  * Opportunity
  	* Create
  	* Delete
  	* Get
  	* Get many
  	* Update
  * Task
  	* Create
  	* Delete
  	* Get
  	* Get many
  	* Update
  * Calendar
  	* Book an appointment
  	* Get free slots

  ## Templates and examples

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

  ## Related resources

  Refer to [HighLevel's API documentation and support forums](https://help.gohighlevel.com/support/solutions/articles/48001060529-highlevel-api){:target=_blank .external-link} for more information about the service.

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Opportunity",
          "value": "opportunity"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Calendar",
          "value": "calendar"
        }
      ],
      "required": true,
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create or Update",
          "value": "create",
          "routing": {
            "request": {
              "method": "POST",
              "url": "/contacts/upsert/"
            },
            "send": {
              "preSend": [
                null,
                null,
                null,
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "contact"
                  }
                },
                null
              ]
            }
          },
          "action": "Create or update a contact"
        },
        {
          "name": "Delete",
          "value": "delete",
          "routing": {
            "request": {
              "method": "DELETE",
              "url": "=/contacts/{{$parameter.contactId}}/"
            },
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            }
          },
          "action": "Delete a contact"
        },
        {
          "name": "Get",
          "value": "get",
          "routing": {
            "request": {
              "method": "GET",
              "url": "=/contacts/{{$parameter.contactId}}/"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "contact"
                  }
                }
              ]
            }
          },
          "action": "Get a contact"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "routing": {
            "request": {
              "method": "GET",
              "url": "=/contacts/"
            },
            "send": {
              "preSend": [
                null
              ],
              "paginate": true
            }
          },
          "action": "Get many contacts"
        },
        {
          "name": "Update",
          "value": "update",
          "routing": {
            "request": {
              "method": "PUT",
              "url": "=/contacts/{{$parameter.contactId}}/"
            },
            "send": {
              "preSend": [
                null,
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "contact"
                  }
                }
              ]
            }
          },
          "action": "Update a contact"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Create a new contact or update an existing one if email or phone matches (upsert)",
      "name": "contactCreateNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Email",
      "name": "email",
      "type": "string",
      "default": "",
      "description": "Email or Phone are required to create contact",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Phone",
      "name": "phone",
      "type": "string",
      "default": "",
      "description": "Phone or Email are required to create contact. Phone number has to start with a valid <a href=\"https://en.wikipedia.org/wiki/List_of_country_calling_codes\">country code</a> leading with + sign.",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Address",
          "name": "address1",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "address1"
            }
          }
        },
        {
          "displayName": "City",
          "name": "city",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "city"
            }
          }
        },
        {
          "displayName": "Custom Fields",
          "name": "customFields",
          "placeholder": "Add Field",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "values",
              "displayName": "Value",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "required": true,
                  "type": "resourceLocator",
                  "default": "",
                  "description": "Choose from the list, or specify an ID using an expression",
                  "modes": [
                    {
                      "displayName": "List",
                      "name": "list",
                      "type": "list",
                      "typeOptions": {
                        "searchListMethod": "searchCustomFields",
                        "searchable": true
                      }
                    },
                    {
                      "displayName": "ID",
                      "name": "id",
                      "type": "string",
                      "placeholder": "Enter Custom Field ID"
                    }
                  ]
                },
                {
                  "displayName": "Field Value",
                  "name": "fieldValue",
                  "type": "string",
                  "default": "",
                  "routing": {
                    "send": {
                      "type": "body",
                      "property": "customFields",
                      "value": "={{ $parent.values.map(field => ({ fieldId: { id: field.fieldId.id }, field_value: field.fieldValue })) }}"
                    }
                  }
                }
              ]
            }
          ],
          "routing": {
            "send": {
              "type": "body",
              "property": "customFields"
            }
          }
        },
        {
          "displayName": "Do Not Disturb",
          "name": "dnd",
          "description": "Whether automated/manual outbound messages are permitted to go out or not. True means NO outbound messages are permitted.",
          "type": "boolean",
          "default": false,
          "routing": {
            "send": {
              "type": "body",
              "property": "dnd"
            }
          }
        },
        {
          "displayName": "First Name",
          "name": "firstName",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "firstName"
            }
          }
        },
        {
          "displayName": "Last Name",
          "name": "lastName",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "lastName"
            }
          }
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "e.g. John Deo",
          "description": "The full name of the contact, will be overwritten by 'First Name' and 'Last Name' if set",
          "routing": {
            "send": {
              "type": "body",
              "property": "name"
            }
          }
        },
        {
          "displayName": "Postal Code",
          "name": "postalCode",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "postalCode"
            }
          }
        },
        {
          "displayName": "Source",
          "name": "source",
          "type": "string",
          "default": "",
          "placeholder": "e.g. Public API",
          "routing": {
            "send": {
              "type": "body",
              "property": "source"
            }
          }
        },
        {
          "displayName": "State",
          "name": "state",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "state"
            }
          }
        },
        {
          "displayName": "Note",
          "name": "notes",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Tags",
          "name": "tags",
          "type": "string",
          "hint": "Comma separated list of tags, array of strings can be set in expression",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "tags"
            }
          }
        },
        {
          "displayName": "Timezone",
          "name": "timezone",
          "placeholder": "Select Timezone",
          "type": "resourceLocator",
          "default": "",
          "description": "Choose from the list, or specify a timezone using an expression",
          "modes": [
            {
              "displayName": "List",
              "name": "list",
              "type": "list",
              "typeOptions": {
                "searchListMethod": "searchTimezones",
                "searchable": true
              }
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "placeholder": "Enter Timezone ID"
            }
          ],
          "routing": {
            "send": {
              "type": "body",
              "property": "timezone"
            }
          }
        },
        {
          "displayName": "Website",
          "name": "website",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "website"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Address",
          "name": "address1",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "address1"
            }
          }
        },
        {
          "displayName": "City",
          "name": "city",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "city"
            }
          }
        },
        {
          "displayName": "Custom Fields",
          "name": "customFields",
          "placeholder": "Add Field",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "values",
              "displayName": "Value",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "required": true,
                  "type": "resourceLocator",
                  "default": "",
                  "description": "Choose from the list, or specify an ID using an expression",
                  "modes": [
                    {
                      "displayName": "List",
                      "name": "list",
                      "type": "list",
                      "typeOptions": {
                        "searchListMethod": "searchCustomFields",
                        "searchable": true
                      }
                    },
                    {
                      "displayName": "ID",
                      "name": "id",
                      "type": "string",
                      "placeholder": "Enter Custom Field ID"
                    }
                  ]
                },
                {
                  "displayName": "Field Value",
                  "name": "fieldValue",
                  "type": "string",
                  "default": "",
                  "routing": {
                    "send": {
                      "type": "body",
                      "property": "customFields",
                      "value": "={{ $parent.values.map(field => ({ fieldId: { id: field.fieldId.id }, field_value: field.fieldValue })) }}"
                    }
                  }
                }
              ]
            }
          ],
          "routing": {
            "send": {
              "type": "body",
              "property": "customFields"
            }
          }
        },
        {
          "displayName": "Do Not Disturb",
          "name": "dnd",
          "description": "Whether automated/manual outbound messages are permitted to go out or not. True means NO outbound messages are permitted.",
          "type": "boolean",
          "default": false,
          "routing": {
            "send": {
              "type": "body",
              "property": "dnd"
            }
          }
        },
        {
          "displayName": "Email",
          "name": "email",
          "type": "string",
          "placeholder": "name@email.com",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "email"
            }
          }
        },
        {
          "displayName": "First Name",
          "name": "firstName",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "firstName"
            }
          }
        },
        {
          "displayName": "Last Name",
          "name": "lastName",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "lastName"
            }
          }
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "description": "The full name of the contact, will be overwritten by 'First Name' and 'Last Name' if set",
          "default": "e.g. John Deo",
          "routing": {
            "send": {
              "type": "body",
              "property": "name"
            }
          }
        },
        {
          "displayName": "Phone",
          "name": "phone",
          "type": "string",
          "default": "",
          "description": "Phone number has to start with a valid <a href=\"https://en.wikipedia.org/wiki/List_of_country_calling_codes\">country code</a> leading with + sign",
          "placeholder": "+491234567890",
          "routing": {
            "send": {
              "type": "body",
              "property": "phone"
            }
          }
        },
        {
          "displayName": "Postal Code",
          "name": "postalCode",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "postalCode"
            }
          }
        },
        {
          "displayName": "State",
          "name": "state",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "state"
            }
          }
        },
        {
          "displayName": "Tags",
          "name": "tags",
          "type": "string",
          "hint": "Comma separated list of tags, array of strings can be set in expression",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "tags"
            }
          }
        },
        {
          "displayName": "Timezone",
          "name": "timezone",
          "placeholder": "Select Timezone",
          "type": "resourceLocator",
          "default": "",
          "description": "Choose from the list, or specify a timezone using an expression",
          "modes": [
            {
              "displayName": "List",
              "name": "list",
              "type": "list",
              "typeOptions": {
                "searchListMethod": "searchTimezones",
                "searchable": true
              }
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "placeholder": "Enter Timezone ID"
            }
          ],
          "routing": {
            "send": {
              "type": "body",
              "property": "timezone"
            }
          }
        },
        {
          "displayName": "Website",
          "name": "website",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "website"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "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": [
            "contact"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Query",
          "name": "query",
          "type": "string",
          "default": "",
          "description": "Query will search on these fields: Name, Phone, Email, Tags, and Company Name",
          "routing": {
            "send": {
              "type": "query",
              "property": "query"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Order",
          "name": "order",
          "type": "options",
          "options": [
            {
              "name": "Descending",
              "value": "desc"
            },
            {
              "name": "Ascending",
              "value": "asc"
            }
          ],
          "default": "desc",
          "routing": {
            "send": {
              "type": "query",
              "property": "order"
            }
          }
        },
        {
          "displayName": "Sort By",
          "name": "sortBy",
          "type": "options",
          "options": [
            {
              "name": "Date Added",
              "value": "date_added"
            },
            {
              "name": "Date Updated",
              "value": "date_updated"
            }
          ],
          "default": "date_added",
          "routing": {
            "send": {
              "type": "query",
              "property": "sortBy"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Email",
      "name": "email",
      "type": "string",
      "default": "",
      "description": "Lookup Contact by Email. If Email is not found it will try to find a contact by phone.",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "lookup"
          ]
        }
      }
    },
    {
      "displayName": "Phone",
      "name": "phone",
      "type": "string",
      "default": "",
      "description": "Lookup Contact by Phone. It will first try to find a contact by Email and than by Phone.",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "lookup"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "routing": {
            "send": {
              "preSend": [
                null,
                null
              ]
            },
            "request": {
              "method": "POST",
              "url": "/opportunities/"
            }
          },
          "action": "Create an opportunity"
        },
        {
          "name": "Delete",
          "value": "delete",
          "routing": {
            "request": {
              "method": "DELETE",
              "url": "=/opportunities/{{$parameter.opportunityId}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            }
          },
          "action": "Delete an opportunity"
        },
        {
          "name": "Get",
          "value": "get",
          "routing": {
            "request": {
              "method": "GET",
              "url": "=/opportunities/{{$parameter.opportunityId}}"
            }
          },
          "action": "Get an opportunity"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "routing": {
            "request": {
              "method": "GET",
              "url": "/opportunities/search"
            },
            "send": {
              "preSend": [
                null
              ],
              "paginate": true
            }
          },
          "action": "Get many opportunities"
        },
        {
          "name": "Update",
          "value": "update",
          "routing": {
            "request": {
              "method": "PUT",
              "url": "=/opportunities/{{$parameter.opportunityId}}"
            }
          },
          "action": "Update an opportunity"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Pipeline Name or ID",
      "name": "pipelineId",
      "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": [
            "opportunity"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getPipelines"
      }
    },
    {
      "displayName": "Contact Email or ID",
      "name": "contactId",
      "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": [
            "opportunity"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getContacts"
      }
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Status",
      "name": "status",
      "type": "options",
      "default": "open",
      "options": [
        {
          "name": "Open",
          "value": "open"
        },
        {
          "name": "Won",
          "value": "won"
        },
        {
          "name": "Lost",
          "value": "lost"
        },
        {
          "name": "Abandoned",
          "value": "abandoned"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Assigned To",
          "name": "assignedTo",
          "type": "options",
          "default": "",
          "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "routing": {
            "send": {
              "type": "body",
              "property": "assignedTo"
            }
          }
        },
        {
          "displayName": "Company Name",
          "name": "companyName",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "companyName"
            }
          }
        },
        {
          "displayName": "Monetary Value",
          "name": "monetaryValue",
          "type": "number",
          "default": "",
          "description": "Monetary value of lead opportunity",
          "routing": {
            "send": {
              "type": "body",
              "property": "monetaryValue"
            }
          }
        },
        {
          "displayName": "Tags",
          "name": "tags",
          "type": "string",
          "hint": "Comma separated list of tags, array of strings can be set in expression",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "tags"
            }
          }
        },
        {
          "displayName": "Stage Name or ID",
          "name": "stageId",
          "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": {
            "loadOptionsDependsOn": [
              "/pipelineId"
            ],
            "loadOptionsMethod": "getPipelineStages"
          },
          "routing": {
            "send": {
              "type": "body",
              "property": "pipelineStageId"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Opportunity ID",
      "name": "opportunityId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Assigned To",
          "name": "assignedTo",
          "type": "options",
          "default": "",
          "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "routing": {
            "send": {
              "type": "body",
              "property": "assignedTo"
            }
          }
        },
        {
          "displayName": "Monetary Value",
          "name": "monetaryValue",
          "type": "number",
          "default": "",
          "description": "Monetary value of lead opportunity",
          "routing": {
            "send": {
              "type": "body",
              "property": "monetaryValue"
            }
          }
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "placeholder": "e.g. John Deo",
          "routing": {
            "send": {
              "type": "body",
              "property": "name"
            }
          }
        },
        {
          "displayName": "Pipeline Name or ID",
          "name": "pipelineId",
          "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": "getPipelines"
          },
          "routing": {
            "send": {
              "type": "body",
              "property": "pipelineId"
            }
          },
          "default": ""
        },
        {
          "displayName": "Stage Name or ID",
          "name": "stageId",
          "type": "options",
          "default": "",
          "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "hint": "Select 'Pipeline Name or ID' first to see stages",
          "typeOptions": {
            "loadOptionsDependsOn": [
              "pipelineId"
            ],
            "loadOptionsMethod": "getPipelineStages"
          },
          "routing": {
            "send": {
              "type": "body",
              "property": "pipelineStageId"
            }
          }
        },
        {
          "displayName": "Status",
          "name": "status",
          "type": "options",
          "options": [
            {
              "name": "Open",
              "value": "open"
            },
            {
              "name": "Won",
              "value": "won"
            },
            {
              "name": "Lost",
              "value": "lost"
            },
            {
              "name": "Abandoned",
              "value": "abandoned"
            }
          ],
          "default": "open",
          "routing": {
            "send": {
              "type": "body",
              "property": "status"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Opportunity ID",
      "name": "opportunityId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Opportunity ID",
      "name": "opportunityId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "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": [
            "opportunity"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 20,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Assigned To",
          "name": "assignedTo",
          "type": "options",
          "default": "",
          "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "routing": {
            "send": {
              "type": "query",
              "property": "assigned_to"
            }
          }
        },
        {
          "displayName": "Campaign ID",
          "name": "campaignId",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "query",
              "property": "campaignId"
            }
          }
        },
        {
          "displayName": "End Date",
          "name": "endDate",
          "type": "dateTime",
          "default": "",
          "routing": {
            "send": {
              "type": "query",
              "property": "endDate",
              "preSend": [
                null
              ]
            }
          }
        },
        {
          "displayName": "Pipeline Name or ID",
          "name": "pipelineId",
          "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": "getPipelines"
          },
          "routing": {
            "send": {
              "type": "query",
              "property": "pipeline_id"
            }
          },
          "default": ""
        },
        {
          "displayName": "Stage Name or ID",
          "name": "stageId",
          "type": "options",
          "default": "",
          "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "hint": "Select 'Pipeline Name or ID' first to see stages",
          "typeOptions": {
            "loadOptionsDependsOn": [
              "pipelineId"
            ],
            "loadOptionsMethod": "getPipelineStages"
          },
          "routing": {
            "send": {
              "type": "query",
              "property": "pipeline_stage_id"
            }
          }
        },
        {
          "displayName": "Start Date",
          "name": "startDate",
          "type": "dateTime",
          "default": "",
          "routing": {
            "send": {
              "type": "query",
              "property": "date",
              "preSend": [
                null
              ]
            }
          }
        },
        {
          "displayName": "Status",
          "name": "status",
          "type": "options",
          "options": [
            {
              "name": "Open",
              "value": "open"
            },
            {
              "name": "Won",
              "value": "won"
            },
            {
              "name": "Lost",
              "value": "lost"
            },
            {
              "name": "Abandoned",
              "value": "abandoned"
            }
          ],
          "default": "open",
          "routing": {
            "send": {
              "type": "query",
              "property": "status"
            }
          }
        },
        {
          "displayName": "Query",
          "name": "query",
          "type": "string",
          "default": "",
          "description": "Query will search on these fields: Name, Phone, Email, Tags, and Company Name",
          "routing": {
            "send": {
              "type": "query",
              "property": "q"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "routing": {
            "request": {
              "method": "POST",
              "url": "=/contacts/{{$parameter.contactId}}/tasks/"
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          },
          "action": "Create a task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "routing": {
            "request": {
              "method": "DELETE",
              "url": "=/contacts/{{$parameter.contactId}}/tasks/{{$parameter.taskId}}/"
            },
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            }
          },
          "action": "Delete a task"
        },
        {
          "name": "Get",
          "value": "get",
          "routing": {
            "request": {
              "method": "GET",
              "url": "=/contacts/{{$parameter.contactId}}/tasks/{{$parameter.taskId}}/"
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          },
          "action": "Get a task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "routing": {
            "request": {
              "method": "GET",
              "url": "=/contacts/{{$parameter.contactId}}/tasks/"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "tasks"
                  }
                },
                null
              ]
            }
          },
          "action": "Get many tasks"
        },
        {
          "name": "Update",
          "value": "update",
          "routing": {
            "request": {
              "method": "PUT",
              "url": "=/contacts/{{$parameter.contactId}}/tasks/{{$parameter.taskId}}/"
            },
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          },
          "action": "Update a task"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Contact Email or ID",
      "name": "contactId",
      "type": "options",
      "default": "",
      "description": "Contact the task belongs 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": [
            "task"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getContacts"
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Due Date",
      "name": "dueDate",
      "type": "dateTime",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Completed",
      "name": "completed",
      "type": "boolean",
      "default": false,
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Assigned To",
          "name": "assignedTo",
          "type": "options",
          "default": "",
          "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "routing": {
            "send": {
              "type": "body",
              "property": "assignedTo"
            }
          }
        },
        {
          "displayName": "Body",
          "name": "body",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "body"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Contact Email or ID",
      "name": "contactId",
      "type": "options",
      "default": "",
      "description": "Contact the task belongs 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": [
            "task"
          ],
          "operation": [
            "update"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getContacts"
      }
    },
    {
      "displayName": "Task ID",
      "name": "taskId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Assigned To",
          "name": "assignedTo",
          "type": "options",
          "default": "",
          "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "routing": {
            "send": {
              "type": "body",
              "property": "assignedTo"
            }
          }
        },
        {
          "displayName": "Completed",
          "name": "completed",
          "type": "boolean",
          "default": false,
          "routing": {
            "send": {
              "type": "body",
              "property": "completed"
            }
          }
        },
        {
          "displayName": "Body",
          "name": "body",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "body"
            }
          }
        },
        {
          "displayName": "Due Date",
          "name": "dueDate",
          "type": "dateTime",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "dueDate",
              "preSend": [
                null
              ]
            }
          }
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "title"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Contact Email or ID",
      "name": "contactId",
      "type": "options",
      "default": "",
      "description": "Contact the task belongs 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": [
            "task"
          ],
          "operation": [
            "delete"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getContacts"
      }
    },
    {
      "displayName": "Task ID",
      "name": "taskId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Contact Email or ID",
      "name": "contactId",
      "type": "options",
      "default": "",
      "description": "Contact the task belongs 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": [
            "task"
          ],
          "operation": [
            "get"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getContacts"
      }
    },
    {
      "displayName": "Task ID",
      "name": "taskId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Contact Email or ID",
      "name": "contactId",
      "type": "options",
      "default": "",
      "description": "Contact the task belongs 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": [
            "task"
          ],
          "operation": [
            "getAll"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getContacts"
      }
    },
    {
      "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": 20,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "bookAppointment",
      "options": [
        {
          "name": "Book Appointment",
          "value": "bookAppointment",
          "action": "Book appointment in a calendar",
          "routing": {
            "request": {
              "method": "POST",
              "url": "=/calendars/events/appointments"
            }
          }
        },
        {
          "name": "Get Free Slots",
          "value": "getFreeSlots",
          "action": "Get free slots of a calendar",
          "routing": {
            "request": {
              "method": "GET",
              "url": "=/calendars/{{$parameter.calendarId}}/free-slots"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Calendar ID",
      "name": "calendarId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ],
          "operation": [
            "bookAppointment"
          ]
        }
      }
    },
    {
      "displayName": "Location ID",
      "name": "locationId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ],
          "operation": [
            "bookAppointment"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ],
          "operation": [
            "bookAppointment"
          ]
        }
      }
    },
    {
      "displayName": "Start Time",
      "name": "startTime",
      "type": "string",
      "default": "",
      "description": "Example: 2021-06-23T03:30:00+05:30",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ],
          "operation": [
            "bookAppointment"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "End Time",
          "name": "endTime",
          "type": "string",
          "description": "Example: 2021-06-23T04:30:00+05:30",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "endTime"
            }
          }
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "title"
            }
          }
        },
        {
          "displayName": "Appointment Status",
          "name": "appointmentStatus",
          "type": "options",
          "default": "new",
          "description": "The status of the appointment. Allowed values: new, confirmed, cancelled, showed, noshow, invalid.",
          "options": [
            {
              "name": "Cancelled",
              "value": "cancelled"
            },
            {
              "name": "Confirmed",
              "value": "confirmed"
            },
            {
              "name": "Invalid",
              "value": "invalid"
            },
            {
              "name": "New",
              "value": "new"
            },
            {
              "name": "No Show",
              "value": "noshow"
            },
            {
              "name": "Showed",
              "value": "showed"
            }
          ],
          "routing": {
            "send": {
              "type": "body",
              "property": "appointmentStatus"
            }
          }
        },
        {
          "displayName": "Assigned User ID",
          "name": "assignedUserId",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "assignedUserId"
            }
          }
        },
        {
          "displayName": "Address",
          "name": "address",
          "type": "string",
          "default": "",
          "routing": {
            "send": {
              "type": "body",
              "property": "address"
            }
          }
        },
        {
          "displayName": "Ignore Date Range",
          "name": "ignoreDateRange",
          "type": "boolean",
          "default": false,
          "routing": {
            "send": {
              "type": "body",
              "property": "ignoreDateRange"
            }
          }
        },
        {
          "displayName": "Notify",
          "name": "toNotify",
          "type": "boolean",
          "default": true,
          "routing": {
            "send": {
              "type": "body",
              "property": "toNotify"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ],
          "operation": [
            "bookAppointment"
          ]
        }
      }
    },
    {
      "displayName": "Calendar ID",
      "name": "calendarId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ],
          "operation": [
            "getFreeSlots"
          ]
        }
      }
    },
    {
      "displayName": "Start Date",
      "name": "startDate",
      "type": "number",
      "default": "",
      "description": "The start date for fetching free calendar slots. Example: 1548898600000.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ],
          "operation": [
            "getFreeSlots"
          ]
        }
      }
    },
    {
      "displayName": "End Date",
      "name": "endDate",
      "type": "number",
      "default": "",
      "description": "The end date for fetching free calendar slots. Example: 1601490599999.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ],
          "operation": [
            "getFreeSlots"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Timezone",
          "name": "timezone",
          "type": "string",
          "default": "",
          "description": "The timezone to use for the returned slots. Example: America/Chihuahua.",
          "routing": {
            "send": {
              "type": "query",
              "property": "timezone"
            }
          }
        },
        {
          "displayName": "User ID",
          "name": "userId",
          "type": "string",
          "default": "",
          "description": "User ID to filter the slots (optional)",
          "routing": {
            "send": {
              "type": "query",
              "property": "userId"
            }
          }
        },
        {
          "displayName": "User IDs",
          "name": "userIds",
          "type": "collection",
          "default": {},
          "options": [
            {
              "displayName": "User IDs",
              "name": "userIds",
              "type": "string",
              "default": "",
              "description": "Comma-separated list of user IDs to filter the slots",
              "routing": {
                "send": {
                  "type": "query",
                  "property": "userIds"
                }
              }
            }
          ]
        },
        {
          "displayName": "Apply Look Busy",
          "name": "enableLookBusy",
          "type": "boolean",
          "default": false,
          "description": "Apply Look Busy to the slots",
          "routing": {
            "send": {
              "type": "query",
              "property": "enableLookBusy"
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ],
          "operation": [
            "getFreeSlots"
          ]
        }
      }
    }
  ]

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


node_type: nodes-base.homeAssistant
package_name: n8n-nodes-base
display_name: Home Assistant
description: Consume Home Assistant API
category: output
development_style: programmatic
version: 1
updated_at: 2025-07-07 21:06:12
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Home Assistant node documentation
  description: Learn how to use the Home Assistant node in n8n. Follow technical documentation to integrate Home Assistant node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Home Assistant node

  Use the Home Assistant node to automate work in Home Assistant, and integrate Home Assistant with other applications. n8n has built-in support for a wide range of Home Assistant features, including getting, creating, and checking camera proxies, configurations, logs, services, and templates. 

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

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

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

  ## Operations

  * Camera Proxy
      * Get the camera screenshot
  * Config
      * Get the configuration
      * Check the configuration
  * Event
      * Create an event
      * Get all events
  * Log
      * Get a log for a specific entity
      * Get all logs
  * Service
      * Call a service within a specific domain
      * Get all services
  * State
      * Create a new record, or update the current one if it already exists (upsert)
      * Get a state for a specific entity
      * Get all states
  * Template
      * Create a template

  ## Templates and examples

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

  ## Related resources

  Refer to [Home Assistant's documentation](https://developers.home-assistant.io/docs/api/rest/){:target=_blank .external-link} for more information about the service.

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "config",
      "options": [
        {
          "name": "Camera Proxy",
          "value": "cameraProxy"
        },
        {
          "name": "Config",
          "value": "config"
        },
        {
          "name": "Event",
          "value": "event"
        },
        {
          "name": "Log",
          "value": "log"
        },
        {
          "name": "Service",
          "value": "service"
        },
        {
          "name": "State",
          "value": "state"
        },
        {
          "name": "Template",
          "value": "template"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getScreenshot",
      "options": [
        {
          "name": "Get Screenshot",
          "value": "getScreenshot",
          "description": "Get the camera screenshot",
          "action": "Get a screenshot"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "cameraProxy"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Camera Entity Name or ID",
      "name": "cameraEntityId",
      "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": [
            "getScreenshot"
          ],
          "resource": [
            "cameraProxy"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCameraEntities"
      }
    },
    {
      "displayName": "Put Output File in Field",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "getScreenshot"
          ],
          "resource": [
            "cameraProxy"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get the configuration",
          "action": "Get the config"
        },
        {
          "name": "Check Configuration",
          "value": "check",
          "description": "Check the configuration",
          "action": "Check the config"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "config"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create an event",
          "action": "Create an event"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many events",
          "action": "Get many events"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "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": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Event Type",
      "name": "eventType",
      "type": "string",
      "default": "",
      "description": "The Entity ID for which an event will be created",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Event Attributes",
      "name": "eventAttributes",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Attributes",
          "name": "attributes",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": "",
              "description": "Name of the attribute"
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Value of the attribute"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many state changes",
          "action": "Get many state changes"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "history"
          ]
        }
      },
      "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": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "history"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "history"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "End Time",
          "name": "endTime",
          "type": "dateTime",
          "default": "",
          "description": "The end of the period"
        },
        {
          "displayName": "Entity IDs",
          "name": "entityIds",
          "type": "string",
          "default": "",
          "description": "The entities IDs separated by comma"
        },
        {
          "displayName": "Minimal Response",
          "name": "minimalResponse",
          "type": "boolean",
          "default": false,
          "description": "Whether to only return <code>last_changed</code> and state for states"
        },
        {
          "displayName": "Significant Changes Only",
          "name": "significantChangesOnly",
          "type": "boolean",
          "default": false,
          "description": "Whether to only return significant state changes"
        },
        {
          "displayName": "Start Time",
          "name": "startTime",
          "type": "dateTime",
          "default": "",
          "description": "The beginning of the period"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "history"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getErroLogs",
      "options": [
        {
          "name": "Get Error Logs",
          "value": "getErroLogs",
          "description": "Get a log for a specific entity",
          "action": "Get a log for an entity"
        },
        {
          "name": "Get Logbook Entries",
          "value": "getLogbookEntries",
          "description": "Get all logs",
          "action": "Get all logs for an entity"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "log"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "End Time",
          "name": "endTime",
          "type": "dateTime",
          "default": "",
          "description": "The end of the period"
        },
        {
          "displayName": "Entity ID",
          "name": "entityId",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Start Time",
          "name": "startTime",
          "type": "dateTime",
          "default": "",
          "description": "The beginning of the period"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "log"
          ],
          "operation": [
            "getLogbookEntries"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Call",
          "value": "call",
          "description": "Call a service within a specific domain",
          "action": "Call a service"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many services",
          "action": "Get many services"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "service"
          ]
        }
      },
      "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": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "service"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "service"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Domain Name or ID",
      "name": "domain",
      "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": [
            "service"
          ],
          "operation": [
            "call"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getDomains"
      }
    },
    {
      "displayName": "Service Name or ID",
      "name": "service",
      "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": [
            "service"
          ],
          "operation": [
            "call"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "domain"
        ],
        "loadOptionsMethod": "getDomainServices"
      }
    },
    {
      "displayName": "Service Attributes",
      "name": "serviceAttributes",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "name": "attributes",
          "displayName": "Attributes",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": "",
              "description": "Name of the field"
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Value of the field"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "service"
          ],
          "operation": [
            "call"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create or Update",
          "value": "upsert",
          "description": "Create a new record, or update the current one if it already exists (upsert)",
          "action": "Create or update a state"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a state for a specific entity",
          "action": "Get a state"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many states",
          "action": "Get many states"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "state"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Entity Name or ID",
      "name": "entityId",
      "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": [
            "state"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getAllEntities"
      }
    },
    {
      "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": [
            "state"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "state"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Entity Name or ID",
      "name": "entityId",
      "type": "options",
      "default": "",
      "description": "The entity ID for which a state will be created. 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": [
            "upsert"
          ],
          "resource": [
            "state"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getAllEntities"
      }
    },
    {
      "displayName": "State",
      "name": "state",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "state"
          ],
          "operation": [
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "State Attributes",
      "name": "stateAttributes",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Attributes",
          "name": "attributes",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": "",
              "description": "Name of the attribute"
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Value of the attribute"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "state"
          ],
          "operation": [
            "upsert"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a template",
          "action": "Create a template"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Template",
      "name": "template",
      "type": "string",
      "default": "",
      "description": "Render a Home Assistant template. <a href=\"https://www.home-assistant.io/docs/configuration/templating/\">See template docs for more information.</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ],
          "operation": [
            "create"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "getScreenshot",
      "name": "Get Screenshot",
      "description": "Get the camera screenshot"
    }
  ]

credentials_required:
  [
    {
      "name": "homeAssistantApi",
      "required": true,
      "testedBy": "homeAssistantApiTest"
    }
  ]


node_type: nodes-base.htmlExtract
package_name: n8n-nodes-base
display_name: HTML Extract
description: Extracts data from HTML
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
updated_at: 2025-07-07 21:06:12
properties_schema:
  [
    {
      "displayName": "Source Data",
      "name": "sourceData",
      "type": "options",
      "default": "json",
      "description": "If HTML should be read from binary or JSON data",
      "options": [
        {
          "name": "Binary",
          "value": "binary"
        },
        {
          "name": "JSON",
          "value": "json"
        }
      ]
    },
    {
      "displayName": "Input Binary Field",
      "name": "dataPropertyName",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "sourceData": [
            "binary"
          ]
        }
      }
    },
    {
      "displayName": "JSON Property",
      "name": "dataPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the JSON property in which the HTML to extract the data from can be found. The property can either contain a string or an array of strings.",
      "required": true,
      "displayOptions": {
        "show": {
          "sourceData": [
            "json"
          ]
        }
      }
    },
    {
      "displayName": "Extraction Values",
      "name": "extractionValues",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "name": "values",
          "displayName": "Values",
          "values": [
            {
              "displayName": "Key",
              "name": "key",
              "type": "string",
              "default": "",
              "description": "The key under which the extracted value should be saved"
            },
            {
              "displayName": "CSS Selector",
              "name": "cssSelector",
              "type": "string",
              "default": "",
              "placeholder": ".price",
              "description": "The CSS selector to use"
            },
            {
              "displayName": "Return Value",
              "name": "returnValue",
              "type": "options",
              "options": [
                {
                  "name": "Attribute",
                  "value": "attribute",
                  "description": "Get an attribute value like \"class\" from an element"
                },
                {
                  "name": "HTML",
                  "value": "html",
                  "description": "Get the HTML the element contains"
                },
                {
                  "name": "Text",
                  "value": "text",
                  "description": "Get only the text content of the element"
                },
                {
                  "name": "Value",
                  "value": "value",
                  "description": "Get value of an input, select or textarea"
                }
              ],
              "default": "text",
              "description": "What kind of data should be returned"
            },
            {
              "displayName": "Attribute",
              "name": "attribute",
              "type": "string",
              "displayOptions": {
                "show": {
                  "returnValue": [
                    "attribute"
                  ]
                }
              },
              "default": "",
              "placeholder": "class",
              "description": "The name of the attribute to return the value off"
            },
            {
              "displayName": "Return Array",
              "name": "returnArray",
              "type": "boolean",
              "default": false,
              "description": "Whether to return the values as an array so if multiple ones get found they also get returned separately. If not set all will be returned as a single string."
            }
          ]
        }
      ],
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Trim Values",
          "name": "trimValues",
          "type": "boolean",
          "default": true,
          "description": "Whether to remove automatically all spaces and newlines from the beginning and end of the values"
        }
      ]
    }
  ]


node_type: nodes-base.html
package_name: n8n-nodes-base
display_name: HTML
description: Work with HTML
category: transform
development_style: programmatic
version: 1.2
credentials_required: []
updated_at: 2025-07-07 21:06:12
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: HTML
  description: Documentation for the HTML node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: high
  ---

  # HTML

  The HTML node provides operations to help you work with HTML in n8n.

  /// note | HTML Extract node
  The HTML node replaces the HTML Extract node from version 0.213.0 on. If you're using an older version of n8n, you can still view the [HTML Extract node documentation](https://github.com/n8n-io/n8n-docs/blob/86fe33b681621e618e3adcab9a27e8605dbc23ad/docs/integrations/builtin/core-nodes/n8n-nodes-base.htmlextract.md){:target=_blank .external-link}.
  ///
  /// warning | Cross-site scripting
  When using the HTML node to generate an HTML template you can introduce [XSS (cross-site scripting)](https://owasp.org/www-community/attacks/xss/){:target=_blank .external-link}. This is a security risk. Be careful with un-trusted inputs.
  ///

  ## Operations

  * [**Generate HTML template**](#generate-html-template): Use this operation to create an HTML template. This allows you to take data from your workflow and output it as HTML.
  * [**Extract HTML content**](#extract-html-content): Extract contents from an HTML-formatted source. The source can be in JSON or a binary file (`.html`).
  * [**Convert to HTML Table**](#convert-to-html-table): Convert content to an HTML table.

  The node parameters and options depend on the operation you select. Refer to the sections below for more details on configuring each operation.

  ## Generate HTML template

  Create an HTML template. This allows you to take data from your workflow and output it as HTML. 

  You can include:

  * Standard HTML
  * CSS in `<style>` tags.
  * JavaScript in `<script>` tags. n8n doesn't execute the JavaScript.
  * Expressions, wrapped in `{{}}`.

  You can use [Expressions](/code/expressions.md) in the template, including n8n's [Built-in methods and variables](/code/builtin/overview.md). 

  ## Extract HTML Content

  Extract contents from an HTML-formatted source. The source can be in JSON or a binary file (`.html`).

  Use these parameters:

  ### Source Data

  Select the source type for your HTML content. Choose between:

  * **JSON**: If you select this source data, enter the **JSON Property**: the name of the input containing the HTML you want to extract. The property can contain a string or an array of strings.
  * **Binary**: If you select this source data, enter the **Input Binary Field**: the name of the input containing the HTML you want to extract. The property can contain a string or an array of strings.

  ### Extraction Values

  - **Key**: Enter the key to save the extracted value under.
  - **CSS Selector**: Enter the CSS selector to search for.
  - **Return Value**: Select the type of data to return. Choose from:
  	- **Attribute**: Return an attribute value like `class` from an element.
  		- If you select this option, enter the name of the **Attribute** to return the value of.
  	- **HTML**: Return the HTML that the element contains.
  	- **Text**: Return the text content of the element.
  		- If you choose this option, you can also enter a comma-separated list of selectors to skip in the **Skip Selectors**.
  	- **Value**: Return the value of an input, select, or text area.
  - **Return Array**: Choose whether to return multiple extraction values as an array (turned on) or as a single string (turned off).

  ### Extract HTML Content options

  You can also configure this operation with these options:

  * **Trim Values**: Controls whether to remove all spaces and newlines from the beginning and end of the values (turned on) or leaves them (turned off).
  * **Clean Up Text**: Controls whether to remove leading whitespaces, trailing whitespaces, and line breaks (newlines) and condense multiple consecutive whitespaces into a single space (turned on) or to leave them as-is (turned off).

  ## Convert to HTML Table

  This operation expects data from another node. It has no parameters. It includes these options:

  * **Capitalize Headers**: Controls whether to capitalize the table's headers (turned on) or not (turned off).
  * **Custom Styling**: Controls whether to use custom styling (turned on) or not (turned off).
  * **Caption**: Enter a caption to add to the table.
  * **Table Attributes**: Enter any attributes to apply to the `<table>`, such as style attributes.
  * **Header Attributes**: Enter any attributes to apply to the table's headers `<th>`.
  * **Row Attributes**: Enter any attributes to apply to the table's rows `<tr>`.
  * **Cell Attributes**: Enter any attributes to apply to the table's cells `<td>`.

  ## Templates and examples

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

properties_schema:
  [
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generateHtmlTemplate",
      "options": [
        {
          "name": "Generate HTML Template",
          "value": "generateHtmlTemplate",
          "action": "Generate HTML template"
        },
        {
          "name": "Extract HTML Content",
          "value": "extractHtmlContent",
          "action": "Extract HTML Content"
        },
        {
          "name": "Convert to HTML Table",
          "value": "convertToHtmlTable",
          "action": "Convert to HTML Table"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "HTML Template",
      "name": "html",
      "type": "string",
      "default": "<!DOCTYPE html>\n\n<html>\n<head>\n  <meta charset=\"UTF-8\" />\n  <title>My HTML document</title>\n</head>\n<body>\n  <div class=\"container\">\n    <h1>This is an H1 heading</h1>\n    <h2>This is an H2 heading</h2>\n    <p>This is a paragraph</p>\n  </div>\n</body>\n</html>\n\n<style>\n.container {\n  background-color: #ffffff;\n  text-align: center;\n  padding: 16px;\n  border-radius: 8px;\n}\n\nh1 {\n  color: #ff6d5a;\n  font-size: 24px;\n  font-weight: bold;\n  padding: 8px;\n}\n\nh2 {\n  color: #909399;\n  font-size: 18px;\n  font-weight: bold;\n  padding: 8px;\n}\n</style>\n\n<script>\nconsole.log(\"Hello World!\");\n</script>",
      "description": "HTML template to render",
      "displayOptions": {
        "show": {
          "operation": [
            "generateHtmlTemplate"
          ]
        }
      },
      "typeOptions": {
        "editor": "htmlEditor"
      },
      "noDataExpression": true
    },
    {
      "displayName": "<b>Tips</b>: Type ctrl+space for completions. Use <code>{{ }}</code> for expressions and <code>&lt;style&gt;</code> tags for CSS. JS in <code>&lt;script&gt;</code> tags is included but not executed in n8n.",
      "name": "notice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "operation": [
            "generateHtmlTemplate"
          ]
        }
      }
    },
    {
      "displayName": "Source Data",
      "name": "sourceData",
      "type": "options",
      "default": "json",
      "description": "If HTML should be read from binary or JSON data",
      "options": [
        {
          "name": "Binary",
          "value": "binary"
        },
        {
          "name": "JSON",
          "value": "json"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "extractHtmlContent"
          ]
        }
      }
    },
    {
      "displayName": "Input Binary Field",
      "name": "dataPropertyName",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "extractHtmlContent"
          ],
          "sourceData": [
            "binary"
          ]
        }
      }
    },
    {
      "displayName": "JSON Property",
      "name": "dataPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the JSON property in which the HTML to extract the data from can be found. The property can either contain a string or an array of strings.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "extractHtmlContent"
          ],
          "sourceData": [
            "json"
          ]
        }
      }
    },
    {
      "displayName": "Extraction Values",
      "name": "extractionValues",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "name": "values",
          "displayName": "Values",
          "values": [
            {
              "displayName": "Key",
              "name": "key",
              "type": "string",
              "default": "",
              "description": "The key under which the extracted value should be saved"
            },
            {
              "displayName": "CSS Selector",
              "name": "cssSelector",
              "type": "string",
              "default": "",
              "placeholder": ".price",
              "description": "The CSS selector to use"
            },
            {
              "displayName": "Return Value",
              "name": "returnValue",
              "type": "options",
              "options": [
                {
                  "name": "Attribute",
                  "value": "attribute",
                  "description": "Get an attribute value like \"class\" from an element"
                },
                {
                  "name": "HTML",
                  "value": "html",
                  "description": "Get the HTML the element contains"
                },
                {
                  "name": "Text",
                  "value": "text",
                  "description": "Get only the text content of the element"
                },
                {
                  "name": "Value",
                  "value": "value",
                  "description": "Get value of an input, select or textarea"
                }
              ],
              "default": "text",
              "description": "What kind of data should be returned"
            },
            {
              "displayName": "Attribute",
              "name": "attribute",
              "type": "string",
              "displayOptions": {
                "show": {
                  "returnValue": [
                    "attribute"
                  ]
                }
              },
              "default": "",
              "placeholder": "class",
              "description": "The name of the attribute to return the value off"
            },
            {
              "displayName": "Skip Selectors",
              "name": "skipSelectors",
              "type": "string",
              "displayOptions": {
                "show": {
                  "returnValue": [
                    "text"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "gt": 1.1
                      }
                    }
                  ]
                }
              },
              "default": "",
              "placeholder": "e.g. img, .className, #ItemId",
              "description": "Comma-separated list of selectors to skip in the text extraction"
            },
            {
              "displayName": "Return Array",
              "name": "returnArray",
              "type": "boolean",
              "default": false,
              "description": "Whether to return the values as an array so if multiple ones get found they also get returned separately. If not set all will be returned as a single string."
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "extractHtmlContent"
          ],
          "@version": [
            1
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Extraction Values",
      "name": "extractionValues",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "key": "",
            "cssSelector": "",
            "returnValue": "text",
            "returnArray": false
          }
        ]
      },
      "options": [
        {
          "name": "values",
          "displayName": "Values",
          "values": [
            {
              "displayName": "Key",
              "name": "key",
              "type": "string",
              "default": "",
              "description": "The key under which the extracted value should be saved"
            },
            {
              "displayName": "CSS Selector",
              "name": "cssSelector",
              "type": "string",
              "default": "",
              "placeholder": ".price",
              "description": "The CSS selector to use"
            },
            {
              "displayName": "Return Value",
              "name": "returnValue",
              "type": "options",
              "options": [
                {
                  "name": "Attribute",
                  "value": "attribute",
                  "description": "Get an attribute value like \"class\" from an element"
                },
                {
                  "name": "HTML",
                  "value": "html",
                  "description": "Get the HTML the element contains"
                },
                {
                  "name": "Text",
                  "value": "text",
                  "description": "Get only the text content of the element"
                },
                {
                  "name": "Value",
                  "value": "value",
                  "description": "Get value of an input, select or textarea"
                }
              ],
              "default": "text",
              "description": "What kind of data should be returned"
            },
            {
              "displayName": "Attribute",
              "name": "attribute",
              "type": "string",
              "displayOptions": {
                "show": {
                  "returnValue": [
                    "attribute"
                  ]
                }
              },
              "default": "",
              "placeholder": "class",
              "description": "The name of the attribute to return the value off"
            },
            {
              "displayName": "Skip Selectors",
              "name": "skipSelectors",
              "type": "string",
              "displayOptions": {
                "show": {
                  "returnValue": [
                    "text"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "gt": 1.1
                      }
                    }
                  ]
                }
              },
              "default": "",
              "placeholder": "e.g. img, .className, #ItemId",
              "description": "Comma-separated list of selectors to skip in the text extraction"
            },
            {
              "displayName": "Return Array",
              "name": "returnArray",
              "type": "boolean",
              "default": false,
              "description": "Whether to return the values as an array so if multiple ones get found they also get returned separately. If not set all will be returned as a single string."
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "extractHtmlContent"
          ],
          "@version": [
            {
              "_cnd": {
                "gt": 1
              }
            }
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Trim Values",
          "name": "trimValues",
          "type": "boolean",
          "default": true,
          "description": "Whether to remove automatically all spaces and newlines from the beginning and end of the values"
        },
        {
          "displayName": "Clean Up Text",
          "name": "cleanUpText",
          "type": "boolean",
          "default": true,
          "description": "Whether to remove leading and trailing whitespaces, line breaks (newlines) and condense multiple consecutive whitespaces into a single space"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "extractHtmlContent"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Capitalize Headers",
          "name": "capitalize",
          "type": "boolean",
          "default": false,
          "description": "Whether to capitalize the headers"
        },
        {
          "displayName": "Custom Styling",
          "name": "customStyling",
          "type": "boolean",
          "default": false,
          "description": "Whether to use custom styling"
        },
        {
          "displayName": "Caption",
          "name": "caption",
          "type": "string",
          "default": "",
          "description": "Caption to add to the table"
        },
        {
          "displayName": "Table Attributes",
          "name": "tableAttributes",
          "type": "string",
          "default": "",
          "description": "Attributes to attach to the table",
          "placeholder": "e.g. style=\"padding:10px\""
        },
        {
          "displayName": "Header Attributes",
          "name": "headerAttributes",
          "type": "string",
          "default": "",
          "description": "Attributes to attach to the table header",
          "placeholder": "e.g. style=\"padding:10px\""
        },
        {
          "displayName": "Row Attributes",
          "name": "rowAttributes",
          "type": "string",
          "default": "",
          "description": "Attributes to attach to the table row",
          "placeholder": "e.g. style=\"padding:10px\""
        },
        {
          "displayName": "Cell Attributes",
          "name": "cellAttributes",
          "type": "string",
          "default": "",
          "description": "Attributes to attach to the table cell",
          "placeholder": "e.g. style=\"padding:10px\""
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "convertToHtmlTable"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "generateHtmlTemplate",
      "name": "Generate HTML Template"
    },
    {
      "operation": "extractHtmlContent",
      "name": "Extract HTML Content"
    },
    {
      "operation": "convertToHtmlTable",
      "name": "Convert to HTML Table"
    }
  ]


node_type: nodes-base.httpRequest
package_name: n8n-nodes-base
display_name: HTTP Request
description: Makes an HTTP request and returns the response data
category: output
development_style: programmatic
version: 4.2
operations: []
updated_at: 2025-07-07 21:06:12
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: HTTP Request node documentation
  description: Learn how to use the HTTP Request node in n8n. Follow technical documentation to integrate HTTP Request node into your workflows.
  contentType: [integration, reference]
  priority: critical
  ---

  # HTTP Request node

  The HTTP Request node is one of the most versatile nodes in n8n. It allows you to make HTTP requests to query data from any app or service with a REST API. You can use the HTTP Request node a regular node or attached to an [AI agent](/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/tools-agent.md) to use as a [tool](/advanced-ai/examples/understand-tools.md){ data-preview }.

  When using this node, you're creating a REST API call. You need some understanding of basic API terminology and concepts.

  There are two ways to create an HTTP request: configure the [node parameters](#node-parameters) or [import a curl command](#import-curl-command).

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

  ## Node parameters

  ### Method

  Select the method to use for the request:

  - DELETE
  - GET
  - HEAD
  - OPTIONS
  - PATCH
  - POST
  - PUT

  ### URL

  Enter the endpoint you want to use.

  ### Authentication

  n8n recommends using the **Predefined Credential Type** option when it's available. It offers an easier way to set up and manage credentials, compared to configuring generic credentials.

  #### Predefined credentials

  Credentials for integrations supported by n8n, including both built-in and community nodes. Use **Predefined Credential Type** for custom operations without extra setup. Refer to [Custom API operations](/integrations/custom-operations.md) for more information.

  #### Generic credentials

  Credentials for integrations not supported by n8n. You'll need to manually configure the authentication process, including specifying the required API endpoints, necessary parameters, and the authentication method. 

  You can select one of the following methods:

  * Basic auth
  * Custom auth
  * Digest auth
  * Header auth
  * OAuth1 API
  * OAuth2 API
  * Query auth

  Refer to [HTTP request credentials](/integrations/builtin/credentials/httprequest.md) for more information on setting up each credential type.

  ### Send Query Parameters

  Query parameters act as filters on HTTP requests. If the API you're interacting with supports them and the request you're making needs a filter, turn this option on.

  **Specify your query parameters** using one of the available options:

  * **Using Fields Below**: Enter **Name**/**Value** pairs of **Query Parameters**. To enter more query parameter name/value pairs, select **Add Parameter**. The name is the name of the field you're filtering on, and the value is the filter value.
  * **Using JSON**: Enter **JSON** to define your query parameters.

  Refer to your service's API documentation for detailed guidance.

  ### Send Headers

  Use this parameter to send headers with your request. Headers contain metadata or context about your request.

  **Specify Headers** using one of the available options:

  * **Using Fields Below**: Enter **Name**/**Value** pairs of **Header Parameters**. To enter more header parameter name/value pairs, select **Add Parameter**. The name is the header you wish to set, and the value is the value you want to pass for that header.
  * **Using JSON**: Enter **JSON** to define your header parameters.

  Refer to your service's API documentation for detailed guidance.

  ### Send Body

  If you need to send a body with your API request, turn this option on.

  Then select the **Body Content Type** that best matches the format for the body content you wish to send.

  <!-- vale Vale.Spelling = NO -->
  #### Form URLencoded
  <!-- vale Vale.Spelling = YES -->

  Use this option to send your body as `application/x-www-form-urlencoded`.

  **Specify Body** using one of the available options:

  * **Using Fields Below**: Enter **Name**/**Value** pairs of **Body Parameters**. To enter more body parameter name/value pairs, select **Add Parameter**. The name should be the form field name, and the value is what you wish to set that field to.
  * **Using Single Field**: Enter your name/value pairs in a single **Body** parameter with format `fieldname1=value1&fieldname2=value2`.

  Refer to your service's API documentation for detailed guidance.

  #### Form-Data

  Use this option to send your body as `multipart/form-data`.

  Configure your **Body Parameters** by selecting the **Parameter Type**:

  * Choose **Form Data** to enter **Name**/**Value** pairs.
  * Choose **n8n Binary File** to pull the body from a file the node has access to.
      * **Name**: Enter the ID of the field to set.
      * **Input Data Field Name**: Enter the name of the incoming field containing the binary file data you want to process.

  Select **Add Parameter** to enter more parameters.

  Refer to your service's API documentation for detailed guidance.

  #### JSON

  Use this option to send your body as JSON.

  **Specify Body** using one of the available options:

  * **Using Fields Below**: Enter **Name**/**Value** pairs of **Body Parameters**. To enter more body parameter name/value pairs, select **Add Parameter**.
  * **Using JSON**: Enter **JSON** to define your body.

  Refer to your service's API documentation for detailed guidance.

  #### n8n Binary File

  Use this option to send the contents of a file stored in n8n as the body.

  Enter the name of the incoming field that contains the file as the **Input Data Field Name**.

  Refer to your service's API documentation for detailed guidance on how to format the file.

  #### Raw

  Use this option to send raw data in the body.

  * **Content Type**: Enter the `Content-Type` header to use for the raw body content. Refer to the IANA [Media types](https://www.iana.org/assignments/media-types/media-types.xhtml){:target=_blank .external-link} documentation for a full list of MIME content types.
  * **Body**: Enter the raw body content to send.

  Refer to your service's API documentation for detailed guidance.

  ## Node options

  Select **Add Option** to view and select these options. Options are available to all parameters unless otherwise noted.

  ### Array Format in Query Parameters

  /// note | Option availability
  This option is only available when you turn on **Send Query Parameters**.
  ///

  Use this option to control the format for arrays included in query parameters. Choose from these options:

  * **No Brackets**: Arrays will format as the name=value for each item in the array, for example: `foo=bar&foo=qux`.
  * **Brackets Only**: The node adds square brackets after each array name, for example: `foo[]=bar&foo[]=qux`.
  * **Brackets with Indices**: The node adds square brackets with an index value after each array name, for example: `foo[0]=bar&foo[1]=qux`.

  Refer to your service's API documentation for guidance on which option to use.

  ### Batching

  Control how to batch large numbers of input items:

  * **Items per Batch**: Enter the number of input items to include in each batch.
  * **Batch Interval**: Enter the time to wait between each batch of requests in milliseconds. Enter 0 for no batch interval.

  ### Ignore SSL Issues

  By default, n8n only downloads the response if SSL certificate validation succeeds. If you'd like to download the response even if SSL certificate validation fails, turn this option on.

  ### Lowercase Headers

  Choose whether to lowercase header names (turned on, default) or not (turned off).

  ### Redirects

  Choose whether to follow redirects (turned on by default) or not (turned off). If turned on, enter the maximum number of redirects the request should follow in **Max Redirects**.

  ### Response

  Use this option to set some details about the expected API response, including:

  * **Include Response Headers and Status**: By default, the node returns only the body. Turn this option on to return the full response (headers and response status code) as well as the body.
  * **Never Error**: By default, the node returns success only when the response returns with a 2xx code. Turn this option on to return success regardless of the code returned.
  * **Response Format**: Select the format in which the data gets returned. Choose from:
      * **Autodetect** (default): The node detects and formats the response based on the data returned.
      * **File**: Select this option to put the response into a file. Enter the field name where you want the file returned in **Put Output in Field**.
      * **JSON**: Select this option to format the response as JSON.
      * **Text**: Select this option to format the response as plain text. Enter the field name where you want the file returned in **Put Output in Field**.

  ### Pagination

  Use this option to paginate results, useful for handling query results that are too big for the API to return in a single call.

  /// note | Inspect the API data first
  Some options for pagination require knowledge of the data returned by the API you're using. Before setting up pagination, either check the API documentation, or do an API call without pagination, to see the data it returns.
  ///
  ??? Details "Understand pagination"
      Pagination means splitting a large set of data into multiple pages. The amount of data on each page depends on the limit you set.
    
      For example, you make an API call to an endpoint called `/users`. The API wants to send back information on 300 users, but this is too much data for the API to send in one response. 
    
      If the API supports pagination, you can incrementally fetch the data. To do this, you call `/users` with a pagination limit, and a page number or URL to tell the API which page to send. In this example, say you use a limit of 10, and start from page 0. The API sends the first 10 users in its response. You then call the API again, increasing the page number by 1, to get the next 10 results.

  Configure the pagination settings:

  * **Pagination Mode**:
      * **Off**: Turn off pagination.
      * **Update a Parameter in Each Request**: Use this when you need to dynamically set parameters for each request.
      * **Response Contains Next URL**: Use this when the API response includes the URL of the next page. Use an expression to set **Next URL**.

  For example setups, refer to [HTTP Request node cookbook | Pagination](/code/cookbook/http-node/pagination.md).

  n8n provides built-in variables for working with HTTP node requests and responses when using pagination:

  --8<-- "_snippets/integrations/builtin/core-nodes/http/pagination-variables.md"

  --8<-- "_snippets/integrations/builtin/core-nodes/http/pagination-api-differences.md"

  ### Proxy

  Use this option if you need to specify an HTTP proxy.

  Enter the **Proxy** the request should use.

  ### Timeout

  Use this option to set how long the node should wait for the server to send response headers (and start the response body). The node aborts requests that exceed this value for the initial response.

  Enter the **Timeout** time to wait in milliseconds.

  ## Tool-only options

  The following options are only available when attached to an [AI agent](/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/tools-agent.md) as a [tool](/advanced-ai/examples/understand-tools.md){ data-preview }.

  ### Optimize Response

  Whether to optimize the tool response to reduce the amount of data passed to the LLM. Optimizing the response can reduce costs and can help the LLM ignore unimportant details, often leading to better results.

  When optimizing responses, you select an expected response type, which determines other options you can configure. The supported response types are:

  #### JSON

  When expecting a **JSON** response, you can configure which parts of the JSON data to use as a response with the following choices:

  * **Field Containing Data**: This field identifies a specific part of the JSON object that contains your relevant data. You can leave this blank to use the entire response.
  * **Include Fields**: This is how you choose which fields you want in your response object. There are three choices:
  	* **All**: Include all fields in the response object.
  	* **Selected**: Include only the fields specified below.
  		* **Fields**: A comma-separated list of fields to include in the response. You can use dot notation to specify nested fields. You can drag fields from the Input panel to add them to the field list.
  	* **Exclude**: Include all fields *except* the fields specified below.
  		* **Fields**: A comma-separated list of fields to exclude from the response. You can use dot notation to specify nested fields. You can drag fields from the Input panel to add them to the field list.

  #### HTML

  When expecting **HTML**, you can identify the part of an HTML document relevant to the LLM and optimize the response with the following options:

  * **Selector (CSS)**: A specific element or element type to include in the response HTML. Uses the `body` element by default.
  * **Return Only Content**: Whether to strip HTML tags and attributes from the response, leaving only the actual content. This uses fewer tokens and may be easier for the model to understand.
  	* **Elements To Omit**: A comma-separated list of CSS selectors to exclude when extracting content.
  * **Truncate Response**: Whether to limit the response size to save tokens.
  	* **Max Response Characters**: The maximum number of characters to include in the HTML response. The default value is 1000.

  #### Text

  When expecting a generic **Text** response, you can optimize the results with the following options:

  * **Truncate Response**: Whether to limit the response size to save tokens.
  	* **Max Response Characters**: The maximum number of characters to include in the HTML response. The default value is 1000.

  ## Import curl command

  [curl](https://curl.se/){:target=_blank .external-link} is a command line tool and library for transferring data with URLs.

  You can use curl to call REST APIs. If the API documentation of the service you want to use provides curl examples, you can copy them out of the documentation and into n8n to configure the HTTP Request node.

  Import a curl command:

  1. From the HTTP Request node's **Parameters** tab, select **Import cURL**. The **Import cURL command** modal opens.
  2. Paste your curl command into the text box.
  3. Select **Import**. n8n loads the request configuration into the node fields. This overwrites any existing configuration.

  ## Templates and examples

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

  ## Common issues

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

properties_schema:
  [
    {
      "displayName": "",
      "name": "curlImport",
      "type": "curlImport",
      "default": ""
    },
    {
      "displayName": "Method",
      "name": "method",
      "type": "options",
      "default": "GET",
      "description": "The request method to use",
      "options": [
        {
          "name": "DELETE",
          "value": "DELETE"
        },
        {
          "name": "GET",
          "value": "GET"
        },
        {
          "name": "HEAD",
          "value": "HEAD"
        },
        {
          "name": "OPTIONS",
          "value": "OPTIONS"
        },
        {
          "name": "PATCH",
          "value": "PATCH"
        },
        {
          "name": "POST",
          "value": "POST"
        },
        {
          "name": "PUT",
          "value": "PUT"
        }
      ]
    },
    {
      "displayName": "URL",
      "name": "url",
      "type": "string",
      "default": "",
      "description": "The URL to make the request to",
      "required": true
    },
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "none",
      "options": [
        {
          "name": "None",
          "value": "none"
        },
        {
          "name": "Predefined Credential Type",
          "value": "predefinedCredentialType",
          "description": "We've already implemented auth for many services so that you don't have to set it up manually"
        },
        {
          "name": "Generic Credential Type",
          "value": "genericCredentialType",
          "description": "Fully customizable. Choose between basic, header, OAuth2, etc."
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Credential Type",
      "name": "nodeCredentialType",
      "type": "credentialsSelect",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "predefinedCredentialType"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Make sure you have specified the scope(s) for the Service Account in the credential",
      "name": "googleApiWarning",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "nodeCredentialType": [
            "googleApi"
          ]
        }
      }
    },
    {
      "displayName": "Generic Auth Type",
      "name": "genericAuthType",
      "type": "credentialsSelect",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "genericCredentialType"
          ]
        }
      }
    },
    {
      "displayName": "SSL Certificates",
      "name": "provideSslCertificates",
      "type": "boolean",
      "default": false
    },
    {
      "displayName": "Provide certificates in node's 'Credential for SSL Certificates' parameter",
      "name": "provideSslCertificatesNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "provideSslCertificates": [
            true
          ]
        }
      }
    },
    {
      "displayName": "SSL Certificate",
      "name": "sslCertificate",
      "type": "credentials",
      "default": "",
      "displayOptions": {
        "show": {
          "provideSslCertificates": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Send Query Parameters",
      "name": "sendQuery",
      "type": "boolean",
      "default": false,
      "description": "Whether the request has query params or not",
      "noDataExpression": true
    },
    {
      "displayName": "Specify Query Parameters",
      "name": "specifyQuery",
      "type": "options",
      "default": "keypair",
      "options": [
        {
          "name": "Using Fields Below",
          "value": "keypair"
        },
        {
          "name": "Using JSON",
          "value": "json"
        }
      ],
      "displayOptions": {
        "show": {
          "sendQuery": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Query Parameters",
      "name": "queryParameters",
      "type": "fixedCollection",
      "default": {
        "parameters": [
          {
            "name": "",
            "value": ""
          }
        ]
      },
      "options": [
        {
          "name": "parameters",
          "displayName": "Parameter",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": ""
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "sendQuery": [
            true
          ],
          "specifyQuery": [
            "keypair"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "JSON",
      "name": "jsonQuery",
      "type": "json",
      "default": "",
      "displayOptions": {
        "show": {
          "sendQuery": [
            true
          ],
          "specifyQuery": [
            "json"
          ]
        }
      }
    },
    {
      "displayName": "Send Headers",
      "name": "sendHeaders",
      "type": "boolean",
      "default": false,
      "description": "Whether the request has headers or not",
      "noDataExpression": true
    },
    {
      "displayName": "Specify Headers",
      "name": "specifyHeaders",
      "type": "options",
      "default": "keypair",
      "options": [
        {
          "name": "Using Fields Below",
          "value": "keypair"
        },
        {
          "name": "Using JSON",
          "value": "json"
        }
      ],
      "displayOptions": {
        "show": {
          "sendHeaders": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Header Parameters",
      "name": "headerParameters",
      "type": "fixedCollection",
      "default": {
        "parameters": [
          {
            "name": "",
            "value": ""
          }
        ]
      },
      "options": [
        {
          "name": "parameters",
          "displayName": "Parameter",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": ""
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "sendHeaders": [
            true
          ],
          "specifyHeaders": [
            "keypair"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "JSON",
      "name": "jsonHeaders",
      "type": "json",
      "default": "",
      "displayOptions": {
        "show": {
          "sendHeaders": [
            true
          ],
          "specifyHeaders": [
            "json"
          ]
        }
      }
    },
    {
      "displayName": "Send Body",
      "name": "sendBody",
      "type": "boolean",
      "default": false,
      "description": "Whether the request has a body or not",
      "noDataExpression": true
    },
    {
      "displayName": "Body Content Type",
      "name": "contentType",
      "type": "options",
      "default": "json",
      "description": "Content-Type to use to send body parameters",
      "options": [
        {
          "name": "Form Urlencoded",
          "value": "form-urlencoded"
        },
        {
          "name": "Form-Data",
          "value": "multipart-form-data"
        },
        {
          "name": "JSON",
          "value": "json"
        },
        {
          "name": "n8n Binary File",
          "value": "binaryData"
        },
        {
          "name": "Raw",
          "value": "raw"
        }
      ],
      "displayOptions": {
        "show": {
          "sendBody": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Specify Body",
      "name": "specifyBody",
      "type": "options",
      "default": "keypair",
      "description": "The body can be specified using explicit fields (<code>keypair</code>) or using a JavaScript object (<code>json</code>)",
      "options": [
        {
          "name": "Using Fields Below",
          "value": "keypair"
        },
        {
          "name": "Using JSON",
          "value": "json"
        }
      ],
      "displayOptions": {
        "show": {
          "sendBody": [
            true
          ],
          "contentType": [
            "json"
          ]
        }
      }
    },
    {
      "displayName": "Body Parameters",
      "name": "bodyParameters",
      "type": "fixedCollection",
      "default": {
        "parameters": [
          {
            "name": "",
            "value": ""
          }
        ]
      },
      "options": [
        {
          "name": "parameters",
          "displayName": "Parameter",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": "",
              "description": "ID of the field to set. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Value of the field to set"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "sendBody": [
            true
          ],
          "contentType": [
            "json"
          ],
          "specifyBody": [
            "keypair"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "JSON",
      "name": "jsonBody",
      "type": "json",
      "default": "",
      "displayOptions": {
        "show": {
          "sendBody": [
            true
          ],
          "contentType": [
            "json"
          ],
          "specifyBody": [
            "json"
          ]
        }
      }
    },
    {
      "displayName": "Body Parameters",
      "name": "bodyParameters",
      "type": "fixedCollection",
      "default": {
        "parameters": [
          {
            "name": "",
            "value": ""
          }
        ]
      },
      "options": [
        {
          "name": "parameters",
          "displayName": "Parameter",
          "values": [
            {
              "displayName": "Parameter Type",
              "name": "parameterType",
              "type": "options",
              "options": [
                {
                  "name": "n8n Binary File",
                  "value": "formBinaryData"
                },
                {
                  "name": "Form Data",
                  "value": "formData"
                }
              ],
              "default": "formData"
            },
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": "",
              "description": "ID of the field to set. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "displayOptions": {
                "show": {
                  "parameterType": [
                    "formData"
                  ]
                }
              },
              "default": "",
              "description": "Value of the field to set"
            },
            {
              "displayName": "Input Data Field Name",
              "name": "inputDataFieldName",
              "type": "string",
              "displayOptions": {
                "show": {
                  "parameterType": [
                    "formBinaryData"
                  ]
                }
              },
              "default": "",
              "description": "The name of the incoming field containing the binary file data to be processed"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "sendBody": [
            true
          ],
          "contentType": [
            "multipart-form-data"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Specify Body",
      "name": "specifyBody",
      "type": "options",
      "default": "keypair",
      "options": [
        {
          "name": "Using Fields Below",
          "value": "keypair"
        },
        {
          "name": "Using Single Field",
          "value": "string"
        }
      ],
      "displayOptions": {
        "show": {
          "sendBody": [
            true
          ],
          "contentType": [
            "form-urlencoded"
          ]
        }
      }
    },
    {
      "displayName": "Body Parameters",
      "name": "bodyParameters",
      "type": "fixedCollection",
      "default": {
        "parameters": [
          {
            "name": "",
            "value": ""
          }
        ]
      },
      "options": [
        {
          "name": "parameters",
          "displayName": "Parameter",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": "",
              "description": "ID of the field to set. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Value of the field to set"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "sendBody": [
            true
          ],
          "contentType": [
            "form-urlencoded"
          ],
          "specifyBody": [
            "keypair"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Body",
      "name": "body",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "sendBody": [
            true
          ],
          "specifyBody": [
            "string"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "inputDataFieldName",
      "type": "string",
      "default": "",
      "description": "The name of the incoming field containing the binary file data to be processed",
      "displayOptions": {
        "show": {
          "sendBody": [
            true
          ],
          "contentType": [
            "binaryData"
          ]
        }
      }
    },
    {
      "displayName": "Content Type",
      "name": "rawContentType",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "sendBody": [
            true
          ],
          "contentType": [
            "raw"
          ]
        }
      }
    },
    {
      "displayName": "Body",
      "name": "body",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "sendBody": [
            true
          ],
          "contentType": [
            "raw"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Batching",
          "name": "batching",
          "placeholder": "Add Batching",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": false
          },
          "default": {
            "batch": {}
          },
          "options": [
            {
              "displayName": "Batching",
              "name": "batch",
              "values": [
                {
                  "displayName": "Items per Batch",
                  "name": "batchSize",
                  "type": "number",
                  "typeOptions": {
                    "minValue": -1
                  },
                  "default": 50,
                  "description": "Input will be split in batches to throttle requests. -1 for disabled. 0 will be treated as 1."
                },
                {
                  "displayName": "Batch Interval (ms)",
                  "name": "batchInterval",
                  "type": "number",
                  "typeOptions": {
                    "minValue": 0
                  },
                  "default": 1000,
                  "description": "Time (in milliseconds) between each batch of requests. 0 for disabled."
                }
              ]
            }
          ]
        },
        {
          "displayName": "Ignore SSL Issues (Insecure)",
          "name": "allowUnauthorizedCerts",
          "type": "boolean",
          "noDataExpression": true,
          "default": false,
          "description": "Whether to download the response even if SSL certificate validation is not possible"
        },
        {
          "displayName": "Array Format in Query Parameters",
          "name": "queryParameterArrays",
          "type": "options",
          "displayOptions": {
            "show": {
              "/sendQuery": [
                true
              ]
            }
          },
          "options": [
            {
              "name": "No Brackets",
              "value": "repeat",
              "description": "e.g. foo=bar&foo=qux"
            },
            {
              "name": "Brackets Only",
              "value": "brackets",
              "description": "e.g. foo[]=bar&foo[]=qux"
            },
            {
              "name": "Brackets with Indices",
              "value": "indices",
              "description": "e.g. foo[0]=bar&foo[1]=qux"
            }
          ],
          "default": "brackets"
        },
        {
          "displayName": "Lowercase Headers",
          "name": "lowercaseHeaders",
          "type": "boolean",
          "default": true,
          "description": "Whether to lowercase header names"
        },
        {
          "displayName": "Redirects",
          "name": "redirect",
          "placeholder": "Add Redirect",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": false
          },
          "default": {
            "redirect": {}
          },
          "options": [
            {
              "displayName": "Redirect",
              "name": "redirect",
              "values": [
                {
                  "displayName": "Follow Redirects",
                  "name": "followRedirects",
                  "type": "boolean",
                  "default": false,
                  "noDataExpression": true,
                  "description": "Whether to follow all redirects"
                },
                {
                  "displayName": "Max Redirects",
                  "name": "maxRedirects",
                  "type": "number",
                  "displayOptions": {
                    "show": {
                      "followRedirects": [
                        true
                      ]
                    }
                  },
                  "default": 21,
                  "description": "Max number of redirects to follow"
                }
              ]
            }
          ],
          "displayOptions": {
            "show": {
              "@version": [
                1,
                2,
                3
              ]
            }
          }
        },
        {
          "displayName": "Redirects",
          "name": "redirect",
          "placeholder": "Add Redirect",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": false
          },
          "default": {
            "redirect": {}
          },
          "options": [
            {
              "displayName": "Redirect",
              "name": "redirect",
              "values": [
                {
                  "displayName": "Follow Redirects",
                  "name": "followRedirects",
                  "type": "boolean",
                  "default": true,
                  "noDataExpression": true,
                  "description": "Whether to follow all redirects"
                },
                {
                  "displayName": "Max Redirects",
                  "name": "maxRedirects",
                  "type": "number",
                  "displayOptions": {
                    "show": {
                      "followRedirects": [
                        true
                      ]
                    }
                  },
                  "default": 21,
                  "description": "Max number of redirects to follow"
                }
              ]
            }
          ],
          "displayOptions": {
            "hide": {
              "@version": [
                1,
                2,
                3
              ]
            }
          }
        },
        {
          "displayName": "Response",
          "name": "response",
          "placeholder": "Add response",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": false
          },
          "default": {
            "response": {}
          },
          "options": [
            {
              "displayName": "Response",
              "name": "response",
              "values": [
                {
                  "displayName": "Include Response Headers and Status",
                  "name": "fullResponse",
                  "type": "boolean",
                  "default": false,
                  "description": "Whether to return the full response (headers and response status code) data instead of only the body"
                },
                {
                  "displayName": "Never Error",
                  "name": "neverError",
                  "type": "boolean",
                  "default": false,
                  "description": "Whether to succeeds also when status code is not 2xx"
                },
                {
                  "displayName": "Response Format",
                  "name": "responseFormat",
                  "type": "options",
                  "noDataExpression": true,
                  "options": [
                    {
                      "name": "Autodetect",
                      "value": "autodetect"
                    },
                    {
                      "name": "File",
                      "value": "file"
                    },
                    {
                      "name": "JSON",
                      "value": "json"
                    },
                    {
                      "name": "Text",
                      "value": "text"
                    }
                  ],
                  "default": "autodetect",
                  "description": "The format in which the data gets returned from the URL"
                },
                {
                  "displayName": "Put Output in Field",
                  "name": "outputPropertyName",
                  "type": "string",
                  "default": "data",
                  "required": true,
                  "displayOptions": {
                    "show": {
                      "responseFormat": [
                        "file",
                        "text"
                      ]
                    }
                  },
                  "description": "Name of the binary property to which to write the data of the read file"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Pagination",
          "name": "pagination",
          "placeholder": "Add pagination",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": false
          },
          "default": {
            "pagination": {}
          },
          "options": [
            {
              "displayName": "Pagination",
              "name": "pagination",
              "values": [
                {
                  "displayName": "Pagination Mode",
                  "name": "paginationMode",
                  "type": "options",
                  "typeOptions": {
                    "noDataExpression": true
                  },
                  "options": [
                    {
                      "name": "Off",
                      "value": "off"
                    },
                    {
                      "name": "Update a Parameter in Each Request",
                      "value": "updateAParameterInEachRequest"
                    },
                    {
                      "name": "Response Contains Next URL",
                      "value": "responseContainsNextURL"
                    }
                  ],
                  "default": "updateAParameterInEachRequest",
                  "description": "If pagination should be used"
                },
                {
                  "displayName": "Use the $response variables to access the data of the previous response. Refer to the <a href=\"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/#pagination/?utm_source=n8n_app&utm_medium=node_settings_modal-credential_link&utm_campaign=n8n-nodes-base.httpRequest\" target=\"_blank\">docs</a> for more info about pagination/",
                  "name": "webhookNotice",
                  "displayOptions": {
                    "hide": {
                      "paginationMode": [
                        "off"
                      ]
                    }
                  },
                  "type": "notice",
                  "default": ""
                },
                {
                  "displayName": "Next URL",
                  "name": "nextURL",
                  "type": "string",
                  "displayOptions": {
                    "show": {
                      "paginationMode": [
                        "responseContainsNextURL"
                      ]
                    }
                  },
                  "default": "",
                  "description": "Should evaluate to the URL of the next page. <a href=\"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/#pagination\" target=\"_blank\">More info</a>."
                },
                {
                  "displayName": "Parameters",
                  "name": "parameters",
                  "type": "fixedCollection",
                  "displayOptions": {
                    "show": {
                      "paginationMode": [
                        "updateAParameterInEachRequest"
                      ]
                    }
                  },
                  "typeOptions": {
                    "multipleValues": true,
                    "noExpression": true
                  },
                  "placeholder": "Add Parameter",
                  "default": {
                    "parameters": [
                      {
                        "type": "qs",
                        "name": "",
                        "value": ""
                      }
                    ]
                  },
                  "options": [
                    {
                      "name": "parameters",
                      "displayName": "Parameter",
                      "values": [
                        {
                          "displayName": "Type",
                          "name": "type",
                          "type": "options",
                          "options": [
                            {
                              "name": "Body",
                              "value": "body"
                            },
                            {
                              "name": "Header",
                              "value": "headers"
                            },
                            {
                              "name": "Query",
                              "value": "qs"
                            }
                          ],
                          "default": "qs",
                          "description": "Where the parameter should be set"
                        },
                        {
                          "displayName": "Name",
                          "name": "name",
                          "type": "string",
                          "default": "",
                          "placeholder": "e.g page"
                        },
                        {
                          "displayName": "Value",
                          "name": "value",
                          "type": "string",
                          "default": "",
                          "hint": "Use expression mode and $response to access response data"
                        }
                      ]
                    }
                  ]
                },
                {
                  "displayName": "Pagination Complete When",
                  "name": "paginationCompleteWhen",
                  "type": "options",
                  "typeOptions": {
                    "noDataExpression": true
                  },
                  "displayOptions": {
                    "hide": {
                      "paginationMode": [
                        "off"
                      ]
                    }
                  },
                  "options": [
                    {
                      "name": "Response Is Empty",
                      "value": "responseIsEmpty"
                    },
                    {
                      "name": "Receive Specific Status Code(s)",
                      "value": "receiveSpecificStatusCodes"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": "responseIsEmpty",
                  "description": "When should no further requests be made?"
                },
                {
                  "displayName": "Status Code(s) when Complete",
                  "name": "statusCodesWhenComplete",
                  "type": "string",
                  "typeOptions": {
                    "noDataExpression": true
                  },
                  "displayOptions": {
                    "show": {
                      "paginationCompleteWhen": [
                        "receiveSpecificStatusCodes"
                      ]
                    }
                  },
                  "default": "",
                  "description": "Accepts comma-separated values"
                },
                {
                  "displayName": "Complete Expression",
                  "name": "completeExpression",
                  "type": "string",
                  "displayOptions": {
                    "show": {
                      "paginationCompleteWhen": [
                        "other"
                      ]
                    }
                  },
                  "default": "",
                  "description": "Should evaluate to true when pagination is complete. <a href=\"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/#pagination\" target=\"_blank\">More info</a>."
                },
                {
                  "displayName": "Limit Pages Fetched",
                  "name": "limitPagesFetched",
                  "type": "boolean",
                  "typeOptions": {
                    "noDataExpression": true
                  },
                  "displayOptions": {
                    "hide": {
                      "paginationMode": [
                        "off"
                      ]
                    }
                  },
                  "default": false,
                  "noDataExpression": true,
                  "description": "Whether the number of requests should be limited"
                },
                {
                  "displayName": "Max Pages",
                  "name": "maxRequests",
                  "type": "number",
                  "typeOptions": {
                    "noDataExpression": true
                  },
                  "displayOptions": {
                    "show": {
                      "limitPagesFetched": [
                        true
                      ]
                    }
                  },
                  "default": 100,
                  "description": "Maximum amount of request to be make"
                },
                {
                  "displayName": "Interval Between Requests (ms)",
                  "name": "requestInterval",
                  "type": "number",
                  "displayOptions": {
                    "hide": {
                      "paginationMode": [
                        "off"
                      ]
                    }
                  },
                  "default": 0,
                  "description": "Time in milliseconds to wait between requests",
                  "hint": "At 0 no delay will be added",
                  "typeOptions": {
                    "minValue": 0
                  }
                }
              ]
            }
          ]
        },
        {
          "displayName": "Proxy",
          "name": "proxy",
          "type": "string",
          "default": "",
          "placeholder": "e.g. http://myproxy:3128",
          "description": "HTTP proxy to use"
        },
        {
          "displayName": "Timeout",
          "name": "timeout",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 10000,
          "description": "Time in ms to wait for the server to send response headers (and start the response body) before aborting the request"
        }
      ]
    },
    {
      "displayName": "Optimize Response",
      "name": "optimizeResponse",
      "type": "boolean",
      "default": false,
      "description": "Whether the optimize the tool response to reduce amount of data passed to the LLM that could lead to better result and reduce cost",
      "displayOptions": {
        "show": {
          "@tool": [
            true
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Expected Response Type",
      "name": "responseType",
      "type": "options",
      "default": "json",
      "options": [
        {
          "name": "JSON",
          "value": "json"
        },
        {
          "name": "HTML",
          "value": "html"
        },
        {
          "name": "Text",
          "value": "text"
        }
      ],
      "displayOptions": {
        "show": {
          "optimizeResponse": [
            true
          ],
          "@tool": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Field Containing Data",
      "name": "dataField",
      "type": "string",
      "default": "",
      "description": "Specify the name of the field in the response containing the data",
      "displayOptions": {
        "show": {
          "optimizeResponse": [
            true
          ],
          "responseType": [
            "json"
          ],
          "@tool": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Include Fields",
      "name": "fieldsToInclude",
      "type": "options",
      "default": "all",
      "description": "What fields response object should include",
      "options": [
        {
          "name": "All",
          "value": "all",
          "description": "Include all fields"
        },
        {
          "name": "Selected",
          "value": "selected",
          "description": "Include only fields specified below"
        },
        {
          "name": "Except",
          "value": "except",
          "description": "Exclude fields specified below"
        }
      ],
      "displayOptions": {
        "show": {
          "optimizeResponse": [
            true
          ],
          "responseType": [
            "json"
          ],
          "@tool": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "fields",
      "type": "string",
      "default": "",
      "description": "Comma-separated list of the field names. Supports dot notation. You can drag the selected fields from the input panel.",
      "displayOptions": {
        "show": {
          "optimizeResponse": [
            true
          ],
          "responseType": [
            "json"
          ],
          "@tool": [
            true
          ]
        },
        "hide": {
          "fieldsToInclude": [
            "all"
          ]
        }
      }
    },
    {
      "displayName": "Selector (CSS)",
      "name": "cssSelector",
      "type": "string",
      "default": "body",
      "description": "Select specific element(e.g. body) or multiple elements(e.g. div) of chosen type in the response HTML.",
      "displayOptions": {
        "show": {
          "optimizeResponse": [
            true
          ],
          "responseType": [
            "html"
          ],
          "@tool": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Return Only Content",
      "name": "onlyContent",
      "type": "boolean",
      "default": false,
      "description": "Whether to return only content of html elements, stripping html tags and attributes",
      "displayOptions": {
        "show": {
          "optimizeResponse": [
            true
          ],
          "responseType": [
            "html"
          ],
          "@tool": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Elements To Omit",
      "name": "elementsToOmit",
      "type": "string",
      "default": "",
      "description": "Comma-separated list of selectors that would be excluded when extracting content",
      "displayOptions": {
        "show": {
          "optimizeResponse": [
            true
          ],
          "responseType": [
            "html"
          ],
          "onlyContent": [
            true
          ],
          "@tool": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Truncate Response",
      "name": "truncateResponse",
      "type": "boolean",
      "default": false,
      "displayOptions": {
        "show": {
          "optimizeResponse": [
            true
          ],
          "responseType": [
            "text",
            "html"
          ],
          "@tool": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Max Response Characters",
      "name": "maxLength",
      "type": "number",
      "default": 1000,
      "displayOptions": {
        "show": {
          "optimizeResponse": [
            true
          ],
          "responseType": [
            "text",
            "html"
          ],
          "truncateResponse": [
            true
          ],
          "@tool": [
            true
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "You can view the raw requests this node makes in your browser's developer console",
      "name": "infoMessage",
      "type": "notice",
      "default": ""
    }
  ]

credentials_required:
  [
    {
      "name": "httpSslAuth",
      "required": true,
      "displayOptions": {
        "show": {
          "provideSslCertificates": [
            true
          ]
        }
      }
    }
  ]


