# nodes

node_type: nodes-base.readPDF
package_name: n8n-nodes-base
display_name: Read PDF
description: Reads a PDF and extracts its content
category: input
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-21 08:10:03
properties_schema:
  [
    {
      "displayName": "Input Binary Field",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property from which to read the PDF file",
      "required": true
    },
    {
      "displayName": "Encrypted",
      "name": "encrypted",
      "type": "boolean",
      "default": false,
      "required": true
    },
    {
      "displayName": "Password",
      "name": "password",
      "type": "string",
      "default": "",
      "description": "Password to decrypt the PDF file with",
      "displayOptions": {
        "show": {
          "encrypted": [
            true
          ]
        }
      },
      "typeOptions": {
        "password": true
      }
    }
  ]


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

output_names:
  [
  "Tool"
  ]

updated_at: 2026-01-21 08:10:03
tool_variant_of: nodes-base.reddit
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Reddit node documentation
  description: Learn how to use the Reddit node in n8n. Follow technical documentation to integrate Reddit node into your workflows.
  contentType: [integration, reference]
  ---

  # Reddit node

  Use the Reddit node to automate work in Reddit, and integrate Reddit with other applications. n8n has built-in support for a wide range of Reddit features, including getting profiles, and users, retrieving post comments and subreddit, as well as submitting, getting, and deleting posts. 

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

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

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

  ## Operations

  * Post
      * Submit a post to a subreddit
      * Delete a post from a subreddit
      * Get a post from a subreddit
      * Get all posts from a subreddit
      * Search posts in a subreddit or in all of Reddit.
  * Post Comment
      * Create a top-level comment in a post
      * Retrieve all comments in a post
      * Remove a comment from a post
      * Write a reply to a comment in a post
  * Profile
      * Get
  * Subreddit
      * Retrieve background information about a subreddit.
      * Retrieve information about subreddits from all of Reddit.
  * User
      * Get

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Reddit"
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Post",
          "value": "post"
        },
        {
          "name": "Post Comment",
          "value": "postComment"
        },
        {
          "name": "Profile",
          "value": "profile"
        },
        {
          "name": "Subreddit",
          "value": "subreddit"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a top-level comment in a post",
          "action": "Create a comment in a post"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many comments in a post",
          "action": "Get many comments in a post"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Remove a comment from a post",
          "action": "Delete a comment from a post"
        },
        {
          "name": "Reply",
          "value": "reply",
          "description": "Write a reply to a comment in a post",
          "action": "Reply to a comment in a post"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Post ID",
      "name": "postId",
      "type": "string",
      "default": "",
      "description": "ID of the post to write the comment to. Found in the post URL: <code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Comment Text",
      "name": "commentText",
      "type": "string",
      "default": "",
      "description": "Text of the comment. Markdown supported.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "The name of subreddit where the post is",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Post ID",
      "name": "postId",
      "type": "string",
      "default": "",
      "description": "ID of the post to get all comments from. Found in the post URL: <code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "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": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Comment ID",
      "name": "commentId",
      "type": "string",
      "default": "",
      "description": "ID of the comment to remove. Found in the comment URL:<code>/r/[subreddit_name]/comments/[post_id]/[post_title]/[comment_id]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Comment ID",
      "name": "commentId",
      "type": "string",
      "default": "",
      "description": "ID of the comment to reply to. To be found in the comment URL: <code>www.reddit.com/r/[subreddit_name]/comments/[post_id]/[post_title]/[comment_id]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "reply"
          ]
        }
      }
    },
    {
      "displayName": "Reply Text",
      "name": "replyText",
      "type": "string",
      "default": "",
      "description": "Text of the reply. Markdown supported.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "reply"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a profile"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "profile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Details",
      "name": "details",
      "type": "options",
      "default": "identity",
      "description": "Details of my account to retrieve",
      "options": [
        {
          "name": "Blocked Users",
          "value": "blockedUsers",
          "description": "Return the blocked users of the logged-in user"
        },
        {
          "name": "Friends",
          "value": "friends",
          "description": "Return the friends of the logged-in user"
        },
        {
          "name": "Identity",
          "value": "identity",
          "description": "Return the identity of the logged-in user"
        },
        {
          "name": "Karma",
          "value": "karma",
          "description": "Return the subreddit karma for the logged-in user"
        },
        {
          "name": "Preferences",
          "value": "prefs",
          "description": "Return the settings preferences of the logged-in user"
        },
        {
          "name": "Saved",
          "value": "saved",
          "description": "Return the saved posts for the user"
        },
        {
          "name": "Trophies",
          "value": "trophies",
          "description": "Return the trophies of the logged-in user"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "profile"
          ],
          "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": [
            "profile"
          ],
          "operation": [
            "get"
          ],
          "details": [
            "saved"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "profile"
          ],
          "operation": [
            "get"
          ],
          "details": [
            "saved"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Retrieve background information about a subreddit",
          "action": "Get a subreddit"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve information about many subreddits",
          "action": "Get many subreddits"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "subreddit"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Content",
      "name": "content",
      "type": "options",
      "default": "about",
      "description": "Subreddit content to retrieve",
      "options": [
        {
          "name": "About",
          "value": "about"
        },
        {
          "name": "Rules",
          "value": "rules"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "subreddit"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "The name of subreddit to retrieve the content from",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "subreddit"
          ],
          "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": [
            "subreddit"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "subreddit"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Keyword",
          "name": "keyword",
          "type": "string",
          "default": "",
          "description": "The keyword for the subreddit search"
        },
        {
          "displayName": "Trending",
          "name": "trending",
          "type": "boolean",
          "default": false,
          "description": "Whether to fetch currently trending subreddits in all of Reddit"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "subreddit"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Submit a post to a subreddit",
          "action": "Create a post"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a post from a subreddit",
          "action": "Delete a post"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a post from a subreddit",
          "action": "Get a post"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many posts from a subreddit",
          "action": "Get many posts"
        },
        {
          "name": "Search",
          "value": "search",
          "description": "Search posts in a subreddit or in all of Reddit",
          "action": "Search for a post"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "Subreddit to create the post in",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Kind",
      "name": "kind",
      "type": "options",
      "default": "self",
      "description": "The kind of the post to create",
      "options": [
        {
          "name": "Text Post",
          "value": "self"
        },
        {
          "name": "Link Post",
          "value": "link"
        },
        {
          "name": "Image Post",
          "value": "image"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "Title of the post, up to 300 characters long",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "url",
      "type": "string",
      "default": "",
      "description": "URL of the post",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ],
          "kind": [
            "link",
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Text",
      "name": "text",
      "type": "string",
      "default": "",
      "description": "Text of the post. Markdown supported.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ],
          "kind": [
            "self"
          ]
        }
      }
    },
    {
      "displayName": "Resubmit",
      "name": "resubmit",
      "type": "boolean",
      "default": false,
      "description": "Whether the URL will be posted even if it was already posted to the subreddit before. Otherwise, the re-posting will trigger an error.",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ],
          "kind": [
            "link",
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Post ID",
      "name": "postId",
      "type": "string",
      "default": "",
      "description": "ID of the post to delete. Found in the post URL: <code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "The name of subreddit to retrieve the post from",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Post ID",
      "name": "postId",
      "type": "string",
      "default": "",
      "description": "ID of the post to retrieve. Found in the post URL: <code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "The name of subreddit to retrieve the posts from",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "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": {
          "resource": [
            "post"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Category",
          "name": "category",
          "type": "options",
          "default": "top",
          "description": "Category of the posts to retrieve",
          "options": [
            {
              "name": "Top Posts",
              "value": "top"
            },
            {
              "name": "Hot Posts",
              "value": "hot"
            },
            {
              "name": "New Posts",
              "value": "new"
            },
            {
              "name": "Rising Posts",
              "value": "rising"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Location",
      "name": "location",
      "type": "options",
      "default": "subreddit",
      "description": "Location where to search for posts",
      "options": [
        {
          "name": "All Reddit",
          "value": "allReddit",
          "description": "Search for posts in all of Reddit"
        },
        {
          "name": "Subreddit",
          "value": "subreddit",
          "description": "Search for posts in a specific subreddit"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "The name of subreddit to search in",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ],
          "location": [
            "subreddit"
          ]
        }
      }
    },
    {
      "displayName": "Keyword",
      "name": "keyword",
      "type": "string",
      "default": "",
      "description": "The keyword for the search",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Sort",
          "name": "sort",
          "placeholder": "",
          "type": "options",
          "default": "relevance",
          "description": "The category to sort results by",
          "options": [
            {
              "name": "Comments",
              "value": "comments"
            },
            {
              "name": "Hot",
              "value": "hot"
            },
            {
              "name": "New",
              "value": "new"
            },
            {
              "name": "Relevance",
              "value": "relevance"
            },
            {
              "name": "Top",
              "value": "top"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Username",
      "name": "username",
      "type": "string",
      "default": "",
      "description": "Reddit ID of the user to retrieve",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Details",
      "name": "details",
      "type": "options",
      "default": "about",
      "description": "Details of the user to retrieve",
      "options": [
        {
          "name": "About",
          "value": "about"
        },
        {
          "name": "Comments",
          "value": "comments"
        },
        {
          "name": "Gilded",
          "value": "gilded"
        },
        {
          "name": "Overview",
          "value": "overview"
        },
        {
          "name": "Submitted",
          "value": "submitted"
        }
      ],
      "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": [
            "user"
          ],
          "operation": [
            "get"
          ],
          "details": [
            "overview",
            "submitted",
            "comments",
            "gilded"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "get"
          ],
          "details": [
            "comments",
            "gilded",
            "overview",
            "submitted"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a top-level comment in a post"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve many comments in a post"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Remove a comment from a post"
    },
    {
      "operation": "reply",
      "name": "Reply",
      "description": "Write a reply to a comment in a post"
    }
  ]

credentials_required:
  [
    {
      "name": "redditOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment",
            "post",
            "profile"
          ]
        }
      }
    }
  ]


node_type: nodes-base.reddit
package_name: n8n-nodes-base
display_name: Reddit
description: Consume the Reddit API
category: transform
development_style: programmatic
version: 1
outputs:
  [
  "main"
  ]

updated_at: 2026-01-21 08:10:03
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Reddit node documentation
  description: Learn how to use the Reddit node in n8n. Follow technical documentation to integrate Reddit node into your workflows.
  contentType: [integration, reference]
  ---

  # Reddit node

  Use the Reddit node to automate work in Reddit, and integrate Reddit with other applications. n8n has built-in support for a wide range of Reddit features, including getting profiles, and users, retrieving post comments and subreddit, as well as submitting, getting, and deleting posts. 

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

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

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

  ## Operations

  * Post
      * Submit a post to a subreddit
      * Delete a post from a subreddit
      * Get a post from a subreddit
      * Get all posts from a subreddit
      * Search posts in a subreddit or in all of Reddit.
  * Post Comment
      * Create a top-level comment in a post
      * Retrieve all comments in a post
      * Remove a comment from a post
      * Write a reply to a comment in a post
  * Profile
      * Get
  * Subreddit
      * Retrieve background information about a subreddit.
      * Retrieve information about subreddits from all of Reddit.
  * User
      * Get

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Post",
          "value": "post"
        },
        {
          "name": "Post Comment",
          "value": "postComment"
        },
        {
          "name": "Profile",
          "value": "profile"
        },
        {
          "name": "Subreddit",
          "value": "subreddit"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a top-level comment in a post",
          "action": "Create a comment in a post"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many comments in a post",
          "action": "Get many comments in a post"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Remove a comment from a post",
          "action": "Delete a comment from a post"
        },
        {
          "name": "Reply",
          "value": "reply",
          "description": "Write a reply to a comment in a post",
          "action": "Reply to a comment in a post"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Post ID",
      "name": "postId",
      "type": "string",
      "default": "",
      "description": "ID of the post to write the comment to. Found in the post URL: <code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Comment Text",
      "name": "commentText",
      "type": "string",
      "default": "",
      "description": "Text of the comment. Markdown supported.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "The name of subreddit where the post is",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Post ID",
      "name": "postId",
      "type": "string",
      "default": "",
      "description": "ID of the post to get all comments from. Found in the post URL: <code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "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": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Comment ID",
      "name": "commentId",
      "type": "string",
      "default": "",
      "description": "ID of the comment to remove. Found in the comment URL:<code>/r/[subreddit_name]/comments/[post_id]/[post_title]/[comment_id]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Comment ID",
      "name": "commentId",
      "type": "string",
      "default": "",
      "description": "ID of the comment to reply to. To be found in the comment URL: <code>www.reddit.com/r/[subreddit_name]/comments/[post_id]/[post_title]/[comment_id]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "reply"
          ]
        }
      }
    },
    {
      "displayName": "Reply Text",
      "name": "replyText",
      "type": "string",
      "default": "",
      "description": "Text of the reply. Markdown supported.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment"
          ],
          "operation": [
            "reply"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a profile"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "profile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Details",
      "name": "details",
      "type": "options",
      "default": "identity",
      "description": "Details of my account to retrieve",
      "options": [
        {
          "name": "Blocked Users",
          "value": "blockedUsers",
          "description": "Return the blocked users of the logged-in user"
        },
        {
          "name": "Friends",
          "value": "friends",
          "description": "Return the friends of the logged-in user"
        },
        {
          "name": "Identity",
          "value": "identity",
          "description": "Return the identity of the logged-in user"
        },
        {
          "name": "Karma",
          "value": "karma",
          "description": "Return the subreddit karma for the logged-in user"
        },
        {
          "name": "Preferences",
          "value": "prefs",
          "description": "Return the settings preferences of the logged-in user"
        },
        {
          "name": "Saved",
          "value": "saved",
          "description": "Return the saved posts for the user"
        },
        {
          "name": "Trophies",
          "value": "trophies",
          "description": "Return the trophies of the logged-in user"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "profile"
          ],
          "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": [
            "profile"
          ],
          "operation": [
            "get"
          ],
          "details": [
            "saved"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "profile"
          ],
          "operation": [
            "get"
          ],
          "details": [
            "saved"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Retrieve background information about a subreddit",
          "action": "Get a subreddit"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve information about many subreddits",
          "action": "Get many subreddits"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "subreddit"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Content",
      "name": "content",
      "type": "options",
      "default": "about",
      "description": "Subreddit content to retrieve",
      "options": [
        {
          "name": "About",
          "value": "about"
        },
        {
          "name": "Rules",
          "value": "rules"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "subreddit"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "The name of subreddit to retrieve the content from",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "subreddit"
          ],
          "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": [
            "subreddit"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "subreddit"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Keyword",
          "name": "keyword",
          "type": "string",
          "default": "",
          "description": "The keyword for the subreddit search"
        },
        {
          "displayName": "Trending",
          "name": "trending",
          "type": "boolean",
          "default": false,
          "description": "Whether to fetch currently trending subreddits in all of Reddit"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "subreddit"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Submit a post to a subreddit",
          "action": "Create a post"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a post from a subreddit",
          "action": "Delete a post"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a post from a subreddit",
          "action": "Get a post"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many posts from a subreddit",
          "action": "Get many posts"
        },
        {
          "name": "Search",
          "value": "search",
          "description": "Search posts in a subreddit or in all of Reddit",
          "action": "Search for a post"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "Subreddit to create the post in",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Kind",
      "name": "kind",
      "type": "options",
      "default": "self",
      "description": "The kind of the post to create",
      "options": [
        {
          "name": "Text Post",
          "value": "self"
        },
        {
          "name": "Link Post",
          "value": "link"
        },
        {
          "name": "Image Post",
          "value": "image"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "Title of the post, up to 300 characters long",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "url",
      "type": "string",
      "default": "",
      "description": "URL of the post",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ],
          "kind": [
            "link",
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Text",
      "name": "text",
      "type": "string",
      "default": "",
      "description": "Text of the post. Markdown supported.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ],
          "kind": [
            "self"
          ]
        }
      }
    },
    {
      "displayName": "Resubmit",
      "name": "resubmit",
      "type": "boolean",
      "default": false,
      "description": "Whether the URL will be posted even if it was already posted to the subreddit before. Otherwise, the re-posting will trigger an error.",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "create"
          ],
          "kind": [
            "link",
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Post ID",
      "name": "postId",
      "type": "string",
      "default": "",
      "description": "ID of the post to delete. Found in the post URL: <code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "The name of subreddit to retrieve the post from",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Post ID",
      "name": "postId",
      "type": "string",
      "default": "",
      "description": "ID of the post to retrieve. Found in the post URL: <code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "The name of subreddit to retrieve the posts from",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "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": {
          "resource": [
            "post"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Category",
          "name": "category",
          "type": "options",
          "default": "top",
          "description": "Category of the posts to retrieve",
          "options": [
            {
              "name": "Top Posts",
              "value": "top"
            },
            {
              "name": "Hot Posts",
              "value": "hot"
            },
            {
              "name": "New Posts",
              "value": "new"
            },
            {
              "name": "Rising Posts",
              "value": "rising"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Location",
      "name": "location",
      "type": "options",
      "default": "subreddit",
      "description": "Location where to search for posts",
      "options": [
        {
          "name": "All Reddit",
          "value": "allReddit",
          "description": "Search for posts in all of Reddit"
        },
        {
          "name": "Subreddit",
          "value": "subreddit",
          "description": "Search for posts in a specific subreddit"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Subreddit",
      "name": "subreddit",
      "type": "string",
      "default": "",
      "description": "The name of subreddit to search in",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ],
          "location": [
            "subreddit"
          ]
        }
      }
    },
    {
      "displayName": "Keyword",
      "name": "keyword",
      "type": "string",
      "default": "",
      "description": "The keyword for the search",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Sort",
          "name": "sort",
          "placeholder": "",
          "type": "options",
          "default": "relevance",
          "description": "The category to sort results by",
          "options": [
            {
              "name": "Comments",
              "value": "comments"
            },
            {
              "name": "Hot",
              "value": "hot"
            },
            {
              "name": "New",
              "value": "new"
            },
            {
              "name": "Relevance",
              "value": "relevance"
            },
            {
              "name": "Top",
              "value": "top"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Username",
      "name": "username",
      "type": "string",
      "default": "",
      "description": "Reddit ID of the user to retrieve",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Details",
      "name": "details",
      "type": "options",
      "default": "about",
      "description": "Details of the user to retrieve",
      "options": [
        {
          "name": "About",
          "value": "about"
        },
        {
          "name": "Comments",
          "value": "comments"
        },
        {
          "name": "Gilded",
          "value": "gilded"
        },
        {
          "name": "Overview",
          "value": "overview"
        },
        {
          "name": "Submitted",
          "value": "submitted"
        }
      ],
      "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": [
            "user"
          ],
          "operation": [
            "get"
          ],
          "details": [
            "overview",
            "submitted",
            "comments",
            "gilded"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "get"
          ],
          "details": [
            "comments",
            "gilded",
            "overview",
            "submitted"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a top-level comment in a post"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve many comments in a post"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Remove a comment from a post"
    },
    {
      "operation": "reply",
      "name": "Reply",
      "description": "Write a reply to a comment in a post"
    }
  ]

credentials_required:
  [
    {
      "name": "redditOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "postComment",
            "post",
            "profile"
          ]
        }
      }
    }
  ]


node_type: nodes-base.redisTool
package_name: n8n-nodes-base
display_name: Redis Tool
description: Get, send and update data in Redis (AI Tool variant for use with AI Agents)
category: input
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "redis",
  "required": true,
  "testedBy": "redisConnectionTest"
  }
  ]

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

output_names:
  [
  "Tool"
  ]

updated_at: 2026-01-21 08:10:03
tool_variant_of: nodes-base.redis
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Redis node documentation
  description: Learn how to use the Redis node in n8n. Follow technical documentation to integrate Redis node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Redis node

  Use the Redis node to automate work in Redis, and integrate Redis with other applications. n8n has built-in support for a wide range of Redis features, including deleting keys, getting key values, setting key value, and publishing messages to the Redis channel.  

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

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

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

  ## Operations

  * Delete a key from Redis.
  * Get the value of a key from Redis.
  * Returns generic information about the Redis instance.
  * Atomically increments a key by 1. Creates the key if it doesn't exist.
  * Returns all the keys matching a pattern.
  * Set the value of a key in Redis.
  * Publish message to Redis channel.

  ## Templates and examples

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

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Redis"
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "info",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a key from Redis",
          "action": "Delete a key from Redis"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get the value of a key from Redis",
          "action": "Get the value of a key from Redis"
        },
        {
          "name": "Increment",
          "value": "incr",
          "description": "Atomically increments a key by 1. Creates the key if it does not exist.",
          "action": "Atomically increment a key by 1. Creates the key if it does not exist."
        },
        {
          "name": "Info",
          "value": "info",
          "description": "Returns generic information about the Redis instance",
          "action": "Return generic information about the Redis instance"
        },
        {
          "name": "Keys",
          "value": "keys",
          "description": "Returns all the keys matching a pattern",
          "action": "Return all keys matching a pattern"
        },
        {
          "name": "List Length",
          "value": "llen",
          "description": "Returns the length of a list",
          "action": "Return the length of a list"
        },
        {
          "name": "Pop",
          "value": "pop",
          "description": "Pop data from a redis list",
          "action": "Pop data from a redis list"
        },
        {
          "name": "Publish",
          "value": "publish",
          "description": "Publish message to redis channel",
          "action": "Publish message to redis channel"
        },
        {
          "name": "Push",
          "value": "push",
          "description": "Push data to a redis list",
          "action": "Push data to a redis list"
        },
        {
          "name": "Set",
          "value": "set",
          "description": "Set the value of a key in redis",
          "action": "Set the value of a key in redis"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Key",
      "name": "key",
      "type": "string",
      "default": "",
      "description": "Name of the key to delete from Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "propertyName",
      "type": "string",
      "default": "propertyName",
      "description": "Name of the property to write received data to. Supports dot-notation. Example: \"data.person[0].name\".",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Key",
      "name": "key",
      "type": "string",
      "default": "",
      "description": "Name of the key to get from Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Key Type",
      "name": "keyType",
      "type": "options",
      "default": "automatic",
      "description": "The type of the key to get",
      "options": [
        {
          "name": "Automatic",
          "value": "automatic",
          "description": "Requests the type before requesting the data (slower)"
        },
        {
          "name": "Hash",
          "value": "hash",
          "description": "Data in key is of type 'hash'"
        },
        {
          "name": "List",
          "value": "list",
          "description": "Data in key is of type 'lists'"
        },
        {
          "name": "Sets",
          "value": "sets",
          "description": "Data in key is of type 'sets'"
        },
        {
          "name": "String",
          "value": "string",
          "description": "Data in key is of type 'string'"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Dot Notation",
          "name": "dotNotation",
          "type": "boolean",
          "default": true,
          "description": "<p>By default, dot-notation is used in property names. This means that \"a.b\" will set the property \"b\" underneath \"a\" so { \"a\": { \"b\": value} }.<p></p>If that is not intended this can be deactivated, it will then set { \"a.b\": value } instead.</p>."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Key",
      "name": "key",
      "type": "string",
      "default": "",
      "description": "Name of the key to increment",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "incr"
          ]
        }
      }
    },
    {
      "displayName": "Expire",
      "name": "expire",
      "type": "boolean",
      "default": false,
      "description": "Whether to set a timeout on key",
      "displayOptions": {
        "show": {
          "operation": [
            "incr"
          ]
        }
      }
    },
    {
      "displayName": "TTL",
      "name": "ttl",
      "type": "number",
      "default": 60,
      "description": "Number of seconds before key expiration",
      "displayOptions": {
        "show": {
          "operation": [
            "incr"
          ],
          "expire": [
            true
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Key Pattern",
      "name": "keyPattern",
      "type": "string",
      "default": "",
      "description": "The key pattern for the keys to return",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "keys"
          ]
        }
      }
    },
    {
      "displayName": "Get Values",
      "name": "getValues",
      "type": "boolean",
      "default": true,
      "description": "Whether to get the value of matching keys",
      "displayOptions": {
        "show": {
          "operation": [
            "keys"
          ]
        }
      }
    },
    {
      "displayName": "List",
      "name": "list",
      "type": "string",
      "default": "",
      "description": "Name of the list in Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "llen"
          ]
        }
      }
    },
    {
      "displayName": "List",
      "name": "list",
      "type": "string",
      "default": "",
      "description": "Name of the list in Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "llen"
          ]
        }
      }
    },
    {
      "displayName": "Key",
      "name": "key",
      "type": "string",
      "default": "",
      "description": "Name of the key to set in Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "set"
          ]
        }
      }
    },
    {
      "displayName": "Value",
      "name": "value",
      "type": "string",
      "default": "",
      "description": "The value to write in Redis",
      "displayOptions": {
        "show": {
          "operation": [
            "set"
          ]
        }
      }
    },
    {
      "displayName": "Key Type",
      "name": "keyType",
      "type": "options",
      "default": "automatic",
      "description": "The type of the key to set",
      "options": [
        {
          "name": "Automatic",
          "value": "automatic",
          "description": "Tries to figure out the type automatically depending on the data"
        },
        {
          "name": "Hash",
          "value": "hash",
          "description": "Data in key is of type 'hash'"
        },
        {
          "name": "List",
          "value": "list",
          "description": "Data in key is of type 'lists'"
        },
        {
          "name": "Sets",
          "value": "sets",
          "description": "Data in key is of type 'sets'"
        },
        {
          "name": "String",
          "value": "string",
          "description": "Data in key is of type 'string'"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "set"
          ]
        }
      }
    },
    {
      "displayName": "Value Is JSON",
      "name": "valueIsJSON",
      "type": "boolean",
      "default": true,
      "description": "Whether the value is JSON or key value pairs",
      "displayOptions": {
        "show": {
          "keyType": [
            "hash"
          ]
        }
      }
    },
    {
      "displayName": "Expire",
      "name": "expire",
      "type": "boolean",
      "default": false,
      "description": "Whether to set a timeout on key",
      "displayOptions": {
        "show": {
          "operation": [
            "set"
          ]
        }
      }
    },
    {
      "displayName": "TTL",
      "name": "ttl",
      "type": "number",
      "default": 60,
      "description": "Number of seconds before key expiration",
      "displayOptions": {
        "show": {
          "operation": [
            "set"
          ],
          "expire": [
            true
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Channel",
      "name": "channel",
      "type": "string",
      "default": "",
      "description": "Channel name",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "publish"
          ]
        }
      }
    },
    {
      "displayName": "Data",
      "name": "messageData",
      "type": "string",
      "default": "",
      "description": "Data to publish",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "publish"
          ]
        }
      }
    },
    {
      "displayName": "List",
      "name": "list",
      "type": "string",
      "default": "",
      "description": "Name of the list in Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "push",
            "pop"
          ]
        }
      }
    },
    {
      "displayName": "Data",
      "name": "messageData",
      "type": "string",
      "default": "",
      "description": "Data to push",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "push"
          ]
        }
      }
    },
    {
      "displayName": "Tail",
      "name": "tail",
      "type": "boolean",
      "default": false,
      "description": "Whether to push or pop data from the end of the list",
      "displayOptions": {
        "show": {
          "operation": [
            "push",
            "pop"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "propertyName",
      "type": "string",
      "default": "propertyName",
      "description": "Optional name of the property to write received data to. Supports dot-notation. Example: \"data.person[0].name\".",
      "displayOptions": {
        "show": {
          "operation": [
            "pop"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Dot Notation",
          "name": "dotNotation",
          "type": "boolean",
          "default": true,
          "description": "<p>By default, dot-notation is used in property names. This means that \"a.b\" will set the property \"b\" underneath \"a\" so { \"a\": { \"b\": value} }.<p></p>If that is not intended this can be deactivated, it will then set { \"a.b\": value } instead.</p>."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "pop"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a key from Redis"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get the value of a key from Redis"
    },
    {
      "operation": "incr",
      "name": "Increment",
      "description": "Atomically increments a key by 1. Creates the key if it does not exist."
    },
    {
      "operation": "info",
      "name": "Info",
      "description": "Returns generic information about the Redis instance"
    },
    {
      "operation": "keys",
      "name": "Keys",
      "description": "Returns all the keys matching a pattern"
    },
    {
      "operation": "llen",
      "name": "List Length",
      "description": "Returns the length of a list"
    },
    {
      "operation": "pop",
      "name": "Pop",
      "description": "Pop data from a redis list"
    },
    {
      "operation": "publish",
      "name": "Publish",
      "description": "Publish message to redis channel"
    },
    {
      "operation": "push",
      "name": "Push",
      "description": "Push data to a redis list"
    },
    {
      "operation": "set",
      "name": "Set",
      "description": "Set the value of a key in redis"
    }
  ]


node_type: nodes-base.redis
package_name: n8n-nodes-base
display_name: Redis
description: Get, send and update data in Redis
category: input
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "redis",
  "required": true,
  "testedBy": "redisConnectionTest"
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-01-21 08:10:03
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Redis node documentation
  description: Learn how to use the Redis node in n8n. Follow technical documentation to integrate Redis node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Redis node

  Use the Redis node to automate work in Redis, and integrate Redis with other applications. n8n has built-in support for a wide range of Redis features, including deleting keys, getting key values, setting key value, and publishing messages to the Redis channel.  

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

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

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

  ## Operations

  * Delete a key from Redis.
  * Get the value of a key from Redis.
  * Returns generic information about the Redis instance.
  * Atomically increments a key by 1. Creates the key if it doesn't exist.
  * Returns all the keys matching a pattern.
  * Set the value of a key in Redis.
  * Publish message to Redis channel.

  ## Templates and examples

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

properties_schema:
  [
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "info",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a key from Redis",
          "action": "Delete a key from Redis"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get the value of a key from Redis",
          "action": "Get the value of a key from Redis"
        },
        {
          "name": "Increment",
          "value": "incr",
          "description": "Atomically increments a key by 1. Creates the key if it does not exist.",
          "action": "Atomically increment a key by 1. Creates the key if it does not exist."
        },
        {
          "name": "Info",
          "value": "info",
          "description": "Returns generic information about the Redis instance",
          "action": "Return generic information about the Redis instance"
        },
        {
          "name": "Keys",
          "value": "keys",
          "description": "Returns all the keys matching a pattern",
          "action": "Return all keys matching a pattern"
        },
        {
          "name": "List Length",
          "value": "llen",
          "description": "Returns the length of a list",
          "action": "Return the length of a list"
        },
        {
          "name": "Pop",
          "value": "pop",
          "description": "Pop data from a redis list",
          "action": "Pop data from a redis list"
        },
        {
          "name": "Publish",
          "value": "publish",
          "description": "Publish message to redis channel",
          "action": "Publish message to redis channel"
        },
        {
          "name": "Push",
          "value": "push",
          "description": "Push data to a redis list",
          "action": "Push data to a redis list"
        },
        {
          "name": "Set",
          "value": "set",
          "description": "Set the value of a key in redis",
          "action": "Set the value of a key in redis"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Key",
      "name": "key",
      "type": "string",
      "default": "",
      "description": "Name of the key to delete from Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "propertyName",
      "type": "string",
      "default": "propertyName",
      "description": "Name of the property to write received data to. Supports dot-notation. Example: \"data.person[0].name\".",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Key",
      "name": "key",
      "type": "string",
      "default": "",
      "description": "Name of the key to get from Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Key Type",
      "name": "keyType",
      "type": "options",
      "default": "automatic",
      "description": "The type of the key to get",
      "options": [
        {
          "name": "Automatic",
          "value": "automatic",
          "description": "Requests the type before requesting the data (slower)"
        },
        {
          "name": "Hash",
          "value": "hash",
          "description": "Data in key is of type 'hash'"
        },
        {
          "name": "List",
          "value": "list",
          "description": "Data in key is of type 'lists'"
        },
        {
          "name": "Sets",
          "value": "sets",
          "description": "Data in key is of type 'sets'"
        },
        {
          "name": "String",
          "value": "string",
          "description": "Data in key is of type 'string'"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Dot Notation",
          "name": "dotNotation",
          "type": "boolean",
          "default": true,
          "description": "<p>By default, dot-notation is used in property names. This means that \"a.b\" will set the property \"b\" underneath \"a\" so { \"a\": { \"b\": value} }.<p></p>If that is not intended this can be deactivated, it will then set { \"a.b\": value } instead.</p>."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Key",
      "name": "key",
      "type": "string",
      "default": "",
      "description": "Name of the key to increment",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "incr"
          ]
        }
      }
    },
    {
      "displayName": "Expire",
      "name": "expire",
      "type": "boolean",
      "default": false,
      "description": "Whether to set a timeout on key",
      "displayOptions": {
        "show": {
          "operation": [
            "incr"
          ]
        }
      }
    },
    {
      "displayName": "TTL",
      "name": "ttl",
      "type": "number",
      "default": 60,
      "description": "Number of seconds before key expiration",
      "displayOptions": {
        "show": {
          "operation": [
            "incr"
          ],
          "expire": [
            true
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Key Pattern",
      "name": "keyPattern",
      "type": "string",
      "default": "",
      "description": "The key pattern for the keys to return",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "keys"
          ]
        }
      }
    },
    {
      "displayName": "Get Values",
      "name": "getValues",
      "type": "boolean",
      "default": true,
      "description": "Whether to get the value of matching keys",
      "displayOptions": {
        "show": {
          "operation": [
            "keys"
          ]
        }
      }
    },
    {
      "displayName": "List",
      "name": "list",
      "type": "string",
      "default": "",
      "description": "Name of the list in Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "llen"
          ]
        }
      }
    },
    {
      "displayName": "List",
      "name": "list",
      "type": "string",
      "default": "",
      "description": "Name of the list in Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "llen"
          ]
        }
      }
    },
    {
      "displayName": "Key",
      "name": "key",
      "type": "string",
      "default": "",
      "description": "Name of the key to set in Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "set"
          ]
        }
      }
    },
    {
      "displayName": "Value",
      "name": "value",
      "type": "string",
      "default": "",
      "description": "The value to write in Redis",
      "displayOptions": {
        "show": {
          "operation": [
            "set"
          ]
        }
      }
    },
    {
      "displayName": "Key Type",
      "name": "keyType",
      "type": "options",
      "default": "automatic",
      "description": "The type of the key to set",
      "options": [
        {
          "name": "Automatic",
          "value": "automatic",
          "description": "Tries to figure out the type automatically depending on the data"
        },
        {
          "name": "Hash",
          "value": "hash",
          "description": "Data in key is of type 'hash'"
        },
        {
          "name": "List",
          "value": "list",
          "description": "Data in key is of type 'lists'"
        },
        {
          "name": "Sets",
          "value": "sets",
          "description": "Data in key is of type 'sets'"
        },
        {
          "name": "String",
          "value": "string",
          "description": "Data in key is of type 'string'"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "set"
          ]
        }
      }
    },
    {
      "displayName": "Value Is JSON",
      "name": "valueIsJSON",
      "type": "boolean",
      "default": true,
      "description": "Whether the value is JSON or key value pairs",
      "displayOptions": {
        "show": {
          "keyType": [
            "hash"
          ]
        }
      }
    },
    {
      "displayName": "Expire",
      "name": "expire",
      "type": "boolean",
      "default": false,
      "description": "Whether to set a timeout on key",
      "displayOptions": {
        "show": {
          "operation": [
            "set"
          ]
        }
      }
    },
    {
      "displayName": "TTL",
      "name": "ttl",
      "type": "number",
      "default": 60,
      "description": "Number of seconds before key expiration",
      "displayOptions": {
        "show": {
          "operation": [
            "set"
          ],
          "expire": [
            true
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Channel",
      "name": "channel",
      "type": "string",
      "default": "",
      "description": "Channel name",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "publish"
          ]
        }
      }
    },
    {
      "displayName": "Data",
      "name": "messageData",
      "type": "string",
      "default": "",
      "description": "Data to publish",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "publish"
          ]
        }
      }
    },
    {
      "displayName": "List",
      "name": "list",
      "type": "string",
      "default": "",
      "description": "Name of the list in Redis",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "push",
            "pop"
          ]
        }
      }
    },
    {
      "displayName": "Data",
      "name": "messageData",
      "type": "string",
      "default": "",
      "description": "Data to push",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "push"
          ]
        }
      }
    },
    {
      "displayName": "Tail",
      "name": "tail",
      "type": "boolean",
      "default": false,
      "description": "Whether to push or pop data from the end of the list",
      "displayOptions": {
        "show": {
          "operation": [
            "push",
            "pop"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "propertyName",
      "type": "string",
      "default": "propertyName",
      "description": "Optional name of the property to write received data to. Supports dot-notation. Example: \"data.person[0].name\".",
      "displayOptions": {
        "show": {
          "operation": [
            "pop"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Dot Notation",
          "name": "dotNotation",
          "type": "boolean",
          "default": true,
          "description": "<p>By default, dot-notation is used in property names. This means that \"a.b\" will set the property \"b\" underneath \"a\" so { \"a\": { \"b\": value} }.<p></p>If that is not intended this can be deactivated, it will then set { \"a.b\": value } instead.</p>."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "pop"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a key from Redis"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get the value of a key from Redis"
    },
    {
      "operation": "incr",
      "name": "Increment",
      "description": "Atomically increments a key by 1. Creates the key if it does not exist."
    },
    {
      "operation": "info",
      "name": "Info",
      "description": "Returns generic information about the Redis instance"
    },
    {
      "operation": "keys",
      "name": "Keys",
      "description": "Returns all the keys matching a pattern"
    },
    {
      "operation": "llen",
      "name": "List Length",
      "description": "Returns the length of a list"
    },
    {
      "operation": "pop",
      "name": "Pop",
      "description": "Pop data from a redis list"
    },
    {
      "operation": "publish",
      "name": "Publish",
      "description": "Publish message to redis channel"
    },
    {
      "operation": "push",
      "name": "Push",
      "description": "Push data to a redis list"
    },
    {
      "operation": "set",
      "name": "Set",
      "description": "Set the value of a key in redis"
    }
  ]


node_type: nodes-base.redisTrigger
package_name: n8n-nodes-base
display_name: Redis Trigger
description: Subscribe to redis channel
category: trigger
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "redis",
  "required": true,
  "testedBy": "redisConnectionTest"
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-01-21 08:10:03
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Redis Trigger node documentation
  description: Learn how to use the Redis Trigger node in n8n. Follow technical documentation to integrate Redis Trigger node into your workflows.
  contentType: [integration, reference]
  ---

  # Redis Trigger node

  [Redis](https://redis.io/){:target=_blank .external-link} is an open-source, in-memory data structure store, used as a database, cache and message broker.

  Use the Redis Trigger node to subscribe to a Redis channel. The workflow starts whenever the channel receives a new message.

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

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

properties_schema:
  [
    {
      "displayName": "Channels",
      "name": "channels",
      "type": "string",
      "default": "",
      "description": "Channels to subscribe to, multiple channels be defined with comma. Wildcard character(*) is supported.",
      "required": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "JSON Parse Body",
          "name": "jsonParseBody",
          "type": "boolean",
          "default": false,
          "description": "Whether to try to parse the message to an object"
        },
        {
          "displayName": "Only Message",
          "name": "onlyMessage",
          "type": "boolean",
          "default": false,
          "description": "Whether to return only the message property"
        }
      ]
    }
  ]


node_type: nodes-base.renameKeys
package_name: n8n-nodes-base
display_name: Rename Keys
description: Update item field names
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-21 08:10:03
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Rename Keys
  description: Documentation for the Rename Keys node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: medium
  ---

  # Rename Keys

  Use the Rename Keys node to rename the keys of a key-value pair in n8n.

  ## Node parameters

  You can rename one or multiple keys using the Rename Keys node. Select the **Add new key** button to rename a key.

  For each key, enter the:

  - **Current Key Name**: The current name of the key you want to rename.
  - **New Key Name**: The new name you want to assign to the key.

  ## Node options

  Choose whether to use a **Regex** regular expression to identify keys to rename. To use this option, you must also enter:

  * The **Regular Expression** you'd like to use.
  * **Replace With**: Enter the new name you want to assign to the key(s) that match the **Regular Expression**.
  * You can also choose these Regex-specific options:
      * **Case Insensitive**: Set whether the regular expression should match case (turned off) or be case insensitive (turned on).
      * **Max Depth**: Enter the maximum depth to replace keys, using `-1` for unlimited and `0` for top-level only.

  /// warning | Regex impacts
  Using a regular expression can affect any keys that match the expression, including keys you've already renamed.
  ///

  ## Templates and examples

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

properties_schema:
  [
    {
      "displayName": "Keys",
      "name": "keys",
      "type": "fixedCollection",
      "default": {},
      "description": "Adds a key which should be renamed",
      "options": [
        {
          "displayName": "Key",
          "name": "key",
          "values": [
            {
              "displayName": "Current Key Name",
              "name": "currentKey",
              "type": "string",
              "default": "",
              "placeholder": "currentKey",
              "requiresDataPath": "single",
              "description": "The current name of the key. It is also possible to define deep keys by using dot-notation like for example: \"level1.level2.currentKey\"."
            },
            {
              "displayName": "New Key Name",
              "name": "newKey",
              "type": "string",
              "default": "",
              "placeholder": "newKey",
              "description": "The name the key should be renamed to. It is also possible to define deep keys by using dot-notation like for example: \"level1.level2.newKey\"."
            }
          ]
        }
      ],
      "typeOptions": {
        "multipleValues": true,
        "sortable": true
      }
    },
    {
      "displayName": "Additional Options",
      "name": "additionalOptions",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Regex",
          "name": "regexReplacement",
          "placeholder": "Add new regular expression",
          "description": "Adds a regular expression",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true,
            "sortable": true
          },
          "default": {},
          "options": [
            {
              "displayName": "Replacement",
              "name": "replacements",
              "values": [
                {
                  "displayName": "Be aware that by using regular expression previously renamed keys can be affected",
                  "name": "regExNotice",
                  "type": "notice",
                  "default": ""
                },
                {
                  "displayName": "Regular Expression",
                  "name": "searchRegex",
                  "type": "string",
                  "default": "",
                  "placeholder": "e.g. [N-n]ame",
                  "description": "Regex to match the key name",
                  "hint": "Learn more and test RegEx <a href=\"https://regex101.com/\">here</a>"
                },
                {
                  "displayName": "Replace With",
                  "name": "replaceRegex",
                  "type": "string",
                  "default": "",
                  "placeholder": "replacedName",
                  "description": "The name the key/s should be renamed to. It's possible to use regex captures e.g. $1, $2, ..."
                },
                {
                  "displayName": "Options",
                  "name": "options",
                  "type": "collection",
                  "default": {},
                  "placeholder": "Add Regex Option",
                  "options": [
                    {
                      "displayName": "Case Insensitive",
                      "name": "caseInsensitive",
                      "type": "boolean",
                      "description": "Whether to use case insensitive match",
                      "default": false
                    },
                    {
                      "displayName": "Max Depth",
                      "name": "depth",
                      "type": "number",
                      "default": -1,
                      "description": "Maximum depth to replace keys",
                      "hint": "Specify number for depth level (-1 for unlimited, 0 for top level only)"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]


node_type: nodes-base.respondToWebhook
package_name: n8n-nodes-base
display_name: Respond to Webhook
description: Returns data for Webhook
category: transform
development_style: programmatic
version: 1.5
operations: []
updated_at: 2026-01-21 08:10:03
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Respond to Webhook
  description: Documentation for the Respond to Webhook node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: critical
  ---

  # Respond to Webhook

  Use the Respond to Webhook node to control the response to incoming webhooks. This node works with the [Webhook](/integrations/builtin/core-nodes/n8n-nodes-base.webhook/index.md) node.

  /// note | Runs once for the first data item
  The Respond to Webhook node runs once, using the first incoming data item. Refer to [Return more than one data item](#return-more-than-one-data-item-deprecated) for more information.
  ///

  ## How to use Respond to Webhook

  To use the Respond to Webhook node:

  1. Add a [Webhook](/integrations/builtin/core-nodes/n8n-nodes-base.webhook/index.md) node as the trigger node for the workflow.
  1. In the Webhook node, set **Respond** to **Using 'Respond to Webhook' node**.
  1. Add the Respond to Webhook node anywhere in your workflow. If you want it to return data from other nodes, place it after those nodes.

  ## Node parameters

  Configure the node behavior using these parameters.

  ### Respond With

  Choose what data to send in the webhook response.

  - **All Incoming Items**: Respond with all the JSON items from the input.
  - **Binary File**: Respond with a binary file defined in **Response Data Source**.
  - **First Incoming Item**: Respond with the first incoming item's JSON.
  - **JSON**: Respond with a JSON object defined in **Response Body**.
  - **JWT Token**: Respond with a JSON Web Token (JWT).
  - **No Data**: No response payload.
  - **Redirect**: Redirect to a URL set in **Redirect URL**.
  - **Text**: Respond with text set in **Response Body**.

  ## Node options

  Select **Add Option** to view and set the options.

  - **Response Code**: Set the [response code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) to use.
  - **Response Headers**: Define the response headers to send.
  - **Put Response in Field**: Available when you respond with **All Incoming Items** or **First Incoming Item**. Set the field name for the field containing the response data.

  ## Templates and examples

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

  ## Workflow behavior

  When using the Respond to Webhook node, workflows behave as follows:

  - The workflow finishes without executing the Respond to Webhook node: it returns a standard message with a 200 status.
  - The workflow errors before the first Respond to Webhook node executes: the workflow returns an error message with a 500 status.
  - A second Respond to Webhook node executes after the first one: the workflow ignores it.
  - A Respond to Webhook node executes but there was no webhook: the workflow ignores the Respond to Webhook node.

  ## Output the response sent to the webhook

  By default, the Respond to Webhook node has a single output branch that contains the node's input data.

  You can optionally enable a second output branch containing the response sent to the webhook. To enable this secondary output, open the Respond to Webhook node on the canvas and select the **Settings** tab. Activate the **Enable Response Output Branch** option.

  The node will now have two outputs:

  * **Input Data**: The original output, passing on the node's input.
  * **Response**: The response object sent to the webhook.

  ## Return more than one data item (deprecated)

  /// note | Deprecated in 1.22.0
  n8n 1.22.0 added support for returning all data items using the **All Incoming Items** option. n8n recommends upgrading to the latest version of n8n, instead of using the workarounds described in this section.
  ///

  The Respond to Webhook node runs once, using the first incoming data item. This includes when using [expressions](/code/expressions.md). You can't force looping using the Loop node: the workflow will run, but the webhook response will still only contain the results of the first execution. 

  If you need to return more than one data item, choose one of these options:

  - Instead of using the Respond to Webhook node, use the **When Last Node Finishes** option in **Respond** in the Webhook node. Use this when you want to return the final data that the workflow outputs.
  - Use the [Aggregate](/integrations/builtin/core-nodes/n8n-nodes-base.aggregate.md) node to turn multiple items into a single item before passing the data to the Respond to Webhook node. Set **Aggregate** to **All Item Data (Into a Single List)**.

properties_schema:
  [
    {
      "displayName": "Enable Response Output Branch",
      "name": "enableResponseOutput",
      "type": "boolean",
      "default": false,
      "description": "Whether to provide an additional output branch with the response sent to the webhook",
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.4
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Verify that the \"Webhook\" node's \"Respond\" parameter is set to \"Using Respond to Webhook Node\". <a href=\"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/\" target=\"_blank\">More details",
      "name": "generalNotice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Respond With",
      "name": "respondWith",
      "type": "options",
      "default": "firstIncomingItem",
      "description": "The data that should be returned",
      "options": [
        {
          "name": "All Incoming Items",
          "value": "allIncomingItems",
          "description": "Respond with all input JSON items"
        },
        {
          "name": "Binary File",
          "value": "binary",
          "description": "Respond with incoming file binary data"
        },
        {
          "name": "First Incoming Item",
          "value": "firstIncomingItem",
          "description": "Respond with the first input JSON item"
        },
        {
          "name": "JSON",
          "value": "json",
          "description": "Respond with a custom JSON body"
        },
        {
          "name": "JWT Token",
          "value": "jwt",
          "description": "Respond with a JWT token"
        },
        {
          "name": "No Data",
          "value": "noData",
          "description": "Respond with an empty body"
        },
        {
          "name": "Redirect",
          "value": "redirect",
          "description": "Respond with a redirect to a given URL"
        },
        {
          "name": "Text",
          "value": "text",
          "description": "Respond with a simple text message body"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            1,
            1.1
          ]
        }
      }
    },
    {
      "displayName": "Respond With",
      "name": "respondWith",
      "type": "options",
      "default": "firstIncomingItem",
      "description": "The data that should be returned",
      "options": [
        {
          "name": "All Incoming Items",
          "value": "allIncomingItems",
          "description": "Respond with all input JSON items"
        },
        {
          "name": "Binary File",
          "value": "binary",
          "description": "Respond with incoming file binary data"
        },
        {
          "name": "First Incoming Item",
          "value": "firstIncomingItem",
          "description": "Respond with the first input JSON item"
        },
        {
          "name": "JSON",
          "value": "json",
          "description": "Respond with a custom JSON body"
        },
        {
          "name": "JWT Token",
          "value": "jwt",
          "description": "Respond with a JWT token"
        },
        {
          "name": "No Data",
          "value": "noData",
          "description": "Respond with an empty body"
        },
        {
          "name": "Redirect",
          "value": "redirect",
          "description": "Respond with a redirect to a given URL"
        },
        {
          "name": "Text",
          "value": "text",
          "description": "Respond with a simple text message body"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.2
              }
            }
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Credentials",
      "name": "credentials",
      "type": "credentials",
      "default": "",
      "displayOptions": {
        "show": {
          "respondWith": [
            "jwt"
          ]
        }
      }
    },
    {
      "displayName": "When using expressions, note that this node will only run for the first item in the input data",
      "name": "webhookNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "respondWith": [
            "json",
            "text",
            "jwt"
          ]
        }
      }
    },
    {
      "displayName": "Redirect URL",
      "name": "redirectURL",
      "type": "string",
      "default": "",
      "description": "The URL to redirect to",
      "required": true,
      "displayOptions": {
        "show": {
          "respondWith": [
            "redirect"
          ]
        }
      }
    },
    {
      "displayName": "Response Body",
      "name": "responseBody",
      "type": "json",
      "default": "{\n  \"myField\": \"value\"\n}",
      "description": "The HTTP response JSON data",
      "displayOptions": {
        "show": {
          "respondWith": [
            "json"
          ]
        }
      },
      "typeOptions": {
        "rows": 4
      }
    },
    {
      "displayName": "Payload",
      "name": "payload",
      "type": "json",
      "default": "{\n  \"myField\": \"value\"\n}",
      "description": "The payload to include in the JWT token",
      "displayOptions": {
        "show": {
          "respondWith": [
            "jwt"
          ]
        }
      },
      "typeOptions": {
        "rows": 4
      }
    },
    {
      "displayName": "Response Body",
      "name": "responseBody",
      "type": "string",
      "default": "",
      "description": "The HTTP response text data",
      "displayOptions": {
        "show": {
          "respondWith": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Response Data Source",
      "name": "responseDataSource",
      "type": "options",
      "default": "automatically",
      "options": [
        {
          "name": "Choose Automatically From Input",
          "value": "automatically",
          "description": "Use if input data will contain a single piece of binary data"
        },
        {
          "name": "Specify Myself",
          "value": "set",
          "description": "Enter the name of the input field the binary data will be in"
        }
      ],
      "displayOptions": {
        "show": {
          "respondWith": [
            "binary"
          ]
        }
      }
    },
    {
      "displayName": "Input Field Name",
      "name": "inputFieldName",
      "type": "string",
      "default": "data",
      "description": "The name of the node input field with the binary data",
      "required": true,
      "displayOptions": {
        "show": {
          "respondWith": [
            "binary"
          ],
          "responseDataSource": [
            "set"
          ]
        }
      }
    },
    {
      "displayName": "To avoid unexpected behavior, add a \"Content-Type\" response header with the appropriate value",
      "name": "contentTypeNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "respondWith": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Response Code",
          "name": "responseCode",
          "type": "number",
          "typeOptions": {
            "minValue": 100,
            "maxValue": 599
          },
          "default": 200,
          "description": "The HTTP response code to return. Defaults to 200."
        },
        {
          "displayName": "Response Headers",
          "name": "responseHeaders",
          "placeholder": "Add Response Header",
          "description": "Add headers to the webhook response",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "default": {},
          "options": [
            {
              "name": "entries",
              "displayName": "Entries",
              "values": [
                {
                  "displayName": "Name",
                  "name": "name",
                  "type": "string",
                  "default": "",
                  "description": "Name of the header"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value of the header"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Put Response in Field",
          "name": "responseKey",
          "type": "string",
          "displayOptions": {
            "show": {
              "/respondWith": [
                "allIncomingItems",
                "firstIncomingItem"
              ]
            }
          },
          "default": "",
          "description": "The name of the response field to put all items in",
          "placeholder": "e.g. data"
        },
        {
          "displayName": "Enable Streaming",
          "name": "enableStreaming",
          "type": "boolean",
          "default": true,
          "description": "Whether to enable streaming to the response",
          "displayOptions": {
            "show": {
              "/respondWith": [
                "allIncomingItems",
                "firstIncomingItem",
                "text",
                "json",
                "jwt"
              ],
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.5
                  }
                }
              ]
            }
          }
        }
      ]
    }
  ]

credentials_required:
  [
    {
      "name": "jwtAuth",
      "required": true,
      "displayOptions": {
        "show": {
          "respondWith": [
            "jwt"
          ]
        }
      }
    }
  ]

outputs:
  [
    "={{((version, parameters) => {\n    const multipleOutputs = version === 1.3 || (version >= 1.4 && parameters.enableResponseOutput);\n    if (multipleOutputs) {\n        return [\n            {\n                type: 'main',\n                displayName: 'Input Data',\n            },\n            {\n                type: 'main',\n                displayName: 'Response',\n            },\n        ];\n    }\n    return ['main'];\n})($nodeVersion, $parameter)}}"
  ]


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

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

output_names:
  [
  "Tool"
  ]

updated_at: 2026-01-21 08:10:03
tool_variant_of: nodes-base.rocketchat
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Rocket.Chat node documentation
  description: Learn how to use the Rocket.Chat node in n8n. Follow technical documentation to integrate Rocket.Chat node into your workflows.
  contentType: [integration, reference]
  ---

  # Rocket.Chat node

  Use the Rocket.Chat node to automate work in Rocket.Chat, and integrate Rocket.Chat with other applications. n8n supports posting messages to channels, and sending direct messages, with Rocket.Chat. 

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

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

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

  ## Operations

  * Chat
      * Post a message to a channel or a direct message

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to send messages and communicate"
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Chat",
          "value": "chat"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "postMessage",
      "options": [
        {
          "name": "Post Message",
          "value": "postMessage",
          "description": "Post a message to a channel or a direct message",
          "action": "Post a message"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Channel",
      "name": "channel",
      "type": "string",
      "default": "",
      "description": "The channel name with the prefix in front of it",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ]
        }
      }
    },
    {
      "displayName": "Text",
      "name": "text",
      "type": "string",
      "default": "",
      "description": "The text of the message to send, is optional because of attachments",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ]
        }
      }
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Alias",
          "name": "alias",
          "type": "string",
          "default": "",
          "description": "This will cause the message’s name to appear as the given alias, but your username will still display"
        },
        {
          "displayName": "Avatar",
          "name": "avatar",
          "type": "string",
          "default": "",
          "description": "If provided, this will make the avatar use the provided image URL"
        },
        {
          "displayName": "Emoji",
          "name": "emoji",
          "type": "string",
          "default": "",
          "description": "This will cause the message’s name to appear as the given alias, but your username will still display"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ]
        }
      }
    },
    {
      "displayName": "Attachments",
      "name": "attachments",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Color",
          "name": "color",
          "type": "color",
          "default": "#ff0000",
          "description": "The color you want the order on the left side to be, any value background-css supports"
        },
        {
          "displayName": "Text",
          "name": "text",
          "type": "string",
          "default": "",
          "description": "The text to display for this attachment, it is different than the message’s text"
        },
        {
          "displayName": "Timestamp",
          "name": "ts",
          "type": "dateTime",
          "default": "",
          "description": "Displays the time next to the text portion"
        },
        {
          "displayName": "Thumb URL",
          "name": "thumbUrl",
          "type": "string",
          "default": "",
          "description": "An image that displays to the left of the text, looks better when this is relatively small"
        },
        {
          "displayName": "Message Link",
          "name": "messageLink",
          "type": "string",
          "default": "",
          "description": "Only applicable if the timestamp is provided, as it makes the time clickable to this link"
        },
        {
          "displayName": "Collapsed",
          "name": "collapsed",
          "type": "boolean",
          "default": false,
          "description": "Causes the image, audio, and video sections to be hiding when collapsed is true"
        },
        {
          "displayName": "Author Name",
          "name": "authorName",
          "type": "string",
          "default": "",
          "description": "Name of the author"
        },
        {
          "displayName": "Author Link",
          "name": "authorLink",
          "type": "string",
          "default": "",
          "description": "Providing this makes the author name clickable and points to this link"
        },
        {
          "displayName": "Author Icon",
          "name": "authorIcon",
          "type": "string",
          "default": "",
          "placeholder": "https://site.com/img.png",
          "description": "Displays a tiny icon to the left of the Author’s name"
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "description": "Title to display for this attachment, displays under the author"
        },
        {
          "displayName": "Title Link",
          "name": "titleLink",
          "type": "string",
          "default": "",
          "description": "Providing this makes the title clickable, pointing to this link"
        },
        {
          "displayName": "Title Link Download",
          "name": "titleLinkDownload",
          "type": "boolean",
          "default": false,
          "description": "When this is true, a download icon appears and clicking this saves the link to file"
        },
        {
          "displayName": "Image URL",
          "name": "imageUrl",
          "type": "string",
          "default": "",
          "description": "The image to display, will be “big” and easy to see"
        },
        {
          "displayName": "Audio URL",
          "name": "audioUrl",
          "type": "string",
          "default": "",
          "placeholder": "https://site.com/aud.mp3",
          "description": "Audio file to play, only supports what html audio does"
        },
        {
          "displayName": "Video URL",
          "name": "videoUrl",
          "type": "string",
          "default": "",
          "placeholder": "https://site.com/vid.mp4",
          "description": "Video file to play, only supports what html video does"
        },
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "fixedCollection",
          "placeholder": "Add Field Item",
          "typeOptions": {
            "multipleValues": true
          },
          "default": {},
          "options": [
            {
              "name": "fieldsValues",
              "displayName": "Fields",
              "values": [
                {
                  "displayName": "Short",
                  "name": "short",
                  "type": "boolean",
                  "default": false,
                  "description": "Whether this field should be a short field"
                },
                {
                  "displayName": "Title",
                  "name": "title",
                  "type": "string",
                  "default": "",
                  "description": "The title of this field"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "The value of this field, displayed underneath the title value"
                }
              ]
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ],
          "jsonParameters": [
            false
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "multipleValueButtonText": "Add Attachment"
      }
    },
    {
      "displayName": "Attachments",
      "name": "attachmentsJson",
      "type": "json",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    }
  ]

operations:
  [
    {
      "operation": "postMessage",
      "name": "Post Message",
      "description": "Post a message to a channel or a direct message"
    }
  ]


node_type: nodes-base.rocketchat
package_name: n8n-nodes-base
display_name: RocketChat
description: Consume RocketChat API
category: output
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "rocketchatApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-01-21 08:10:03
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Rocket.Chat node documentation
  description: Learn how to use the Rocket.Chat node in n8n. Follow technical documentation to integrate Rocket.Chat node into your workflows.
  contentType: [integration, reference]
  ---

  # Rocket.Chat node

  Use the Rocket.Chat node to automate work in Rocket.Chat, and integrate Rocket.Chat with other applications. n8n supports posting messages to channels, and sending direct messages, with Rocket.Chat. 

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

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

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

  ## Operations

  * Chat
      * Post a message to a channel or a direct message

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Chat",
          "value": "chat"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "postMessage",
      "options": [
        {
          "name": "Post Message",
          "value": "postMessage",
          "description": "Post a message to a channel or a direct message",
          "action": "Post a message"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Channel",
      "name": "channel",
      "type": "string",
      "default": "",
      "description": "The channel name with the prefix in front of it",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ]
        }
      }
    },
    {
      "displayName": "Text",
      "name": "text",
      "type": "string",
      "default": "",
      "description": "The text of the message to send, is optional because of attachments",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ]
        }
      }
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Alias",
          "name": "alias",
          "type": "string",
          "default": "",
          "description": "This will cause the message’s name to appear as the given alias, but your username will still display"
        },
        {
          "displayName": "Avatar",
          "name": "avatar",
          "type": "string",
          "default": "",
          "description": "If provided, this will make the avatar use the provided image URL"
        },
        {
          "displayName": "Emoji",
          "name": "emoji",
          "type": "string",
          "default": "",
          "description": "This will cause the message’s name to appear as the given alias, but your username will still display"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ]
        }
      }
    },
    {
      "displayName": "Attachments",
      "name": "attachments",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Color",
          "name": "color",
          "type": "color",
          "default": "#ff0000",
          "description": "The color you want the order on the left side to be, any value background-css supports"
        },
        {
          "displayName": "Text",
          "name": "text",
          "type": "string",
          "default": "",
          "description": "The text to display for this attachment, it is different than the message’s text"
        },
        {
          "displayName": "Timestamp",
          "name": "ts",
          "type": "dateTime",
          "default": "",
          "description": "Displays the time next to the text portion"
        },
        {
          "displayName": "Thumb URL",
          "name": "thumbUrl",
          "type": "string",
          "default": "",
          "description": "An image that displays to the left of the text, looks better when this is relatively small"
        },
        {
          "displayName": "Message Link",
          "name": "messageLink",
          "type": "string",
          "default": "",
          "description": "Only applicable if the timestamp is provided, as it makes the time clickable to this link"
        },
        {
          "displayName": "Collapsed",
          "name": "collapsed",
          "type": "boolean",
          "default": false,
          "description": "Causes the image, audio, and video sections to be hiding when collapsed is true"
        },
        {
          "displayName": "Author Name",
          "name": "authorName",
          "type": "string",
          "default": "",
          "description": "Name of the author"
        },
        {
          "displayName": "Author Link",
          "name": "authorLink",
          "type": "string",
          "default": "",
          "description": "Providing this makes the author name clickable and points to this link"
        },
        {
          "displayName": "Author Icon",
          "name": "authorIcon",
          "type": "string",
          "default": "",
          "placeholder": "https://site.com/img.png",
          "description": "Displays a tiny icon to the left of the Author’s name"
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "description": "Title to display for this attachment, displays under the author"
        },
        {
          "displayName": "Title Link",
          "name": "titleLink",
          "type": "string",
          "default": "",
          "description": "Providing this makes the title clickable, pointing to this link"
        },
        {
          "displayName": "Title Link Download",
          "name": "titleLinkDownload",
          "type": "boolean",
          "default": false,
          "description": "When this is true, a download icon appears and clicking this saves the link to file"
        },
        {
          "displayName": "Image URL",
          "name": "imageUrl",
          "type": "string",
          "default": "",
          "description": "The image to display, will be “big” and easy to see"
        },
        {
          "displayName": "Audio URL",
          "name": "audioUrl",
          "type": "string",
          "default": "",
          "placeholder": "https://site.com/aud.mp3",
          "description": "Audio file to play, only supports what html audio does"
        },
        {
          "displayName": "Video URL",
          "name": "videoUrl",
          "type": "string",
          "default": "",
          "placeholder": "https://site.com/vid.mp4",
          "description": "Video file to play, only supports what html video does"
        },
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "fixedCollection",
          "placeholder": "Add Field Item",
          "typeOptions": {
            "multipleValues": true
          },
          "default": {},
          "options": [
            {
              "name": "fieldsValues",
              "displayName": "Fields",
              "values": [
                {
                  "displayName": "Short",
                  "name": "short",
                  "type": "boolean",
                  "default": false,
                  "description": "Whether this field should be a short field"
                },
                {
                  "displayName": "Title",
                  "name": "title",
                  "type": "string",
                  "default": "",
                  "description": "The title of this field"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "The value of this field, displayed underneath the title value"
                }
              ]
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ],
          "jsonParameters": [
            false
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "multipleValueButtonText": "Add Attachment"
      }
    },
    {
      "displayName": "Attachments",
      "name": "attachmentsJson",
      "type": "json",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "postMessage"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    }
  ]

operations:
  [
    {
      "operation": "postMessage",
      "name": "Post Message",
      "description": "Post a message to a channel or a direct message"
    }
  ]


node_type: nodes-base.rssFeedReadTool
package_name: n8n-nodes-base
display_name: RSS Read Tool
description: Reads data from an RSS Feed (AI Tool variant for use with AI Agents)
category: input
development_style: programmatic
version: 1.2
operations: []
credentials_required: []
outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-01-21 08:10:03
tool_variant_of: nodes-base.rssFeedRead
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: RSS Read
  description: Documentation for the RSS Read node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: medium
  ---

  # RSS Read

  Use the RSS Read node to read data from RSS feeds published on the internet.

  ## Node parameters

  - **URL**: Enter the URL for the RSS publication you want to read.

  ## Node options

  * **Ignore SSL Issues**: Choose whether n8n should ignore SSL/TLS verification (turned on) or not (turned off).

  ## Templates and examples

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

  ## Related resources

  n8n provides a trigger node for RSS Read. You can find the trigger node docs [here](/integrations/builtin/core-nodes/n8n-nodes-base.rssfeedreadtrigger.md).

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with RSS Read"
    },
    {
      "displayName": "URL",
      "name": "url",
      "type": "string",
      "default": "",
      "description": "URL of the RSS feed",
      "required": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Custom Fields",
          "name": "customFields",
          "type": "string",
          "default": "",
          "description": "A comma-separated list of custom fields to include in the output. For example, \"author, contentSnippet\"."
        },
        {
          "displayName": "Ignore SSL Issues (Insecure)",
          "name": "ignoreSSL",
          "type": "boolean",
          "default": false,
          "description": "Whether to ignore SSL/TLS certificate issues or not"
        }
      ]
    }
  ]


node_type: nodes-base.rssFeedRead
package_name: n8n-nodes-base
display_name: RSS Read
description: Reads data from an RSS Feed
category: input
development_style: programmatic
version: 1.2
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-21 08:10:03
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: RSS Read
  description: Documentation for the RSS Read node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: medium
  ---

  # RSS Read

  Use the RSS Read node to read data from RSS feeds published on the internet.

  ## Node parameters

  - **URL**: Enter the URL for the RSS publication you want to read.

  ## Node options

  * **Ignore SSL Issues**: Choose whether n8n should ignore SSL/TLS verification (turned on) or not (turned off).

  ## Templates and examples

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

  ## Related resources

  n8n provides a trigger node for RSS Read. You can find the trigger node docs [here](/integrations/builtin/core-nodes/n8n-nodes-base.rssfeedreadtrigger.md).

properties_schema:
  [
    {
      "displayName": "URL",
      "name": "url",
      "type": "string",
      "default": "",
      "description": "URL of the RSS feed",
      "required": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Custom Fields",
          "name": "customFields",
          "type": "string",
          "default": "",
          "description": "A comma-separated list of custom fields to include in the output. For example, \"author, contentSnippet\"."
        },
        {
          "displayName": "Ignore SSL Issues (Insecure)",
          "name": "ignoreSSL",
          "type": "boolean",
          "default": false,
          "description": "Whether to ignore SSL/TLS certificate issues or not"
        }
      ]
    }
  ]


node_type: nodes-base.rssFeedReadTrigger
package_name: n8n-nodes-base
display_name: RSS Feed Trigger
description: Starts a workflow when an RSS feed is updated
category: trigger
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-21 08:10:03
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: RSS Feed Trigger node documentation
  description: Learn how to use the RSS Feed Trigger node in n8n. Follow technical documentation to integrate RSS Feed Trigger node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # RSS Feed Trigger node

  The RSS Feed Trigger node allows you to start an n8n workflow when a new RSS feed item has been published.

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

  ## Node parameters

  * **Poll Times**: Select a poll **Mode** to set how often to trigger the poll. Your **Mode** selection will add or remove relevant fields. Refer to the sections below to configure the parameters for each mode type.
  * **Feed URL**: Enter the URL of the RSS feed to poll.

  --8<-- "_snippets/integrations/builtin/poll-modes.md"

  ## Templates and examples

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

  ## Related resources

  n8n provides an app node for RSS Feeds. You can find the node docs [here](/integrations/builtin/core-nodes/n8n-nodes-base.rssfeedread.md).

properties_schema:
  [
    {
      "displayName": "Feed URL",
      "name": "feedUrl",
      "type": "string",
      "default": "https://blog.n8n.io/rss/",
      "description": "URL of the RSS feed to poll",
      "required": true
    }
  ]


node_type: nodes-base.rundeckTool
package_name: n8n-nodes-base
display_name: Rundeck Tool
description: Manage Rundeck API (AI Tool variant for use with AI Agents)
category: transform
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "rundeckApi",
  "required": true
  }
  ]

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

output_names:
  [
  "Tool"
  ]

updated_at: 2026-01-21 08:10:03
tool_variant_of: nodes-base.rundeck
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Rundeck node documentation
  description: Learn how to use the Rundeck node in n8n. Follow technical documentation to integrate Rundeck node into your workflows.
  contentType: [integration, reference]
  ---

  # Rundeck node

  Use the Rundeck node to automate work in Rundeck, and integrate Rundeck with other applications. n8n has built-in support for executing jobs and getting metadata.

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

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

  ## Operations

  - **Job**
      - Execute a job
      - Get metadata of a job

  ## Templates and examples

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

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

  ## Find the job ID

  1. Access your Rundeck dashboard.
  2. Open the project that contains the job you want to use with n8n.
  3. In the sidebar, select **JOBS**.
  4. Under **All Jobs**, select the name of the job you want to use with n8n.
  5. In the top left corner, under the name of the job, copy the string that's displayed in smaller font below the job name. This is your job ID.
  6. Paste this job ID in the **Job Id** field in n8n.

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Rundeck"
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "job",
      "options": [
        {
          "name": "Job",
          "value": "job"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "execute",
      "options": [
        {
          "name": "Execute",
          "value": "execute",
          "description": "Execute a job",
          "action": "Execute a job"
        },
        {
          "name": "Get Metadata",
          "value": "getMetadata",
          "description": "Get metadata of a job",
          "action": "Get metadata of a job"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Job ID",
      "name": "jobid",
      "type": "string",
      "default": "",
      "description": "The job ID to execute",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "execute"
          ],
          "resource": [
            "job"
          ]
        }
      }
    },
    {
      "displayName": "Arguments",
      "name": "arguments",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "name": "arguments",
          "displayName": "Arguments",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": ""
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "execute"
          ],
          "resource": [
            "job"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Filter",
      "name": "filter",
      "type": "string",
      "default": "",
      "description": "Filter Rundeck nodes by name",
      "displayOptions": {
        "show": {
          "operation": [
            "execute"
          ],
          "resource": [
            "job"
          ]
        }
      }
    },
    {
      "displayName": "Job ID",
      "name": "jobid",
      "type": "string",
      "default": "",
      "description": "The job ID to get metadata off",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "getMetadata"
          ],
          "resource": [
            "job"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "execute",
      "name": "Execute",
      "description": "Execute a job"
    },
    {
      "operation": "getMetadata",
      "name": "Get Metadata",
      "description": "Get metadata of a job"
    }
  ]


node_type: nodes-base.rundeck
package_name: n8n-nodes-base
display_name: Rundeck
description: Manage Rundeck API
category: transform
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "rundeckApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-01-21 08:10:03
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Rundeck node documentation
  description: Learn how to use the Rundeck node in n8n. Follow technical documentation to integrate Rundeck node into your workflows.
  contentType: [integration, reference]
  ---

  # Rundeck node

  Use the Rundeck node to automate work in Rundeck, and integrate Rundeck with other applications. n8n has built-in support for executing jobs and getting metadata.

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

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

  ## Operations

  - **Job**
      - Execute a job
      - Get metadata of a job

  ## Templates and examples

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

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

  ## Find the job ID

  1. Access your Rundeck dashboard.
  2. Open the project that contains the job you want to use with n8n.
  3. In the sidebar, select **JOBS**.
  4. Under **All Jobs**, select the name of the job you want to use with n8n.
  5. In the top left corner, under the name of the job, copy the string that's displayed in smaller font below the job name. This is your job ID.
  6. Paste this job ID in the **Job Id** field in n8n.

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "job",
      "options": [
        {
          "name": "Job",
          "value": "job"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "execute",
      "options": [
        {
          "name": "Execute",
          "value": "execute",
          "description": "Execute a job",
          "action": "Execute a job"
        },
        {
          "name": "Get Metadata",
          "value": "getMetadata",
          "description": "Get metadata of a job",
          "action": "Get metadata of a job"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Job ID",
      "name": "jobid",
      "type": "string",
      "default": "",
      "description": "The job ID to execute",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "execute"
          ],
          "resource": [
            "job"
          ]
        }
      }
    },
    {
      "displayName": "Arguments",
      "name": "arguments",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "name": "arguments",
          "displayName": "Arguments",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": ""
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "execute"
          ],
          "resource": [
            "job"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Filter",
      "name": "filter",
      "type": "string",
      "default": "",
      "description": "Filter Rundeck nodes by name",
      "displayOptions": {
        "show": {
          "operation": [
            "execute"
          ],
          "resource": [
            "job"
          ]
        }
      }
    },
    {
      "displayName": "Job ID",
      "name": "jobid",
      "type": "string",
      "default": "",
      "description": "The job ID to get metadata off",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "getMetadata"
          ],
          "resource": [
            "job"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "execute",
      "name": "Execute",
      "description": "Execute a job"
    },
    {
      "operation": "getMetadata",
      "name": "Get Metadata",
      "description": "Get metadata of a job"
    }
  ]


node_type: nodes-base.s3Tool
package_name: n8n-nodes-base
display_name: S3 Tool
description: Sends data to any S3-compatible service (AI Tool variant for use with AI Agents)
category: output
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "s3",
  "required": true
  }
  ]

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

output_names:
  [
  "Tool"
  ]

updated_at: 2026-01-21 08:10:03
tool_variant_of: nodes-base.s3
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: S3 node documentation
  description: Learn how to use the S3 node in n8n. Follow technical documentation to integrate S3 node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # S3 node

  Use the S3 node to automate work in non-AWS S3 storage and integrate S3 with other applications. n8n has built-in support for a wide range of S3 features, including creating, deleting, and getting buckets, files, and folders. For AWS S3, use [AWS S3](/integrations/builtin/app-nodes/n8n-nodes-base.awss3.md).

  Use the S3 node for non-AWS S3 solutions like:

  * [MinIO](https://min.io/){:target="_blank" .external-link}
  * [Wasabi](https://wasabi.com/){:target="_blank" .external-link}
  * [Digital Ocean spaces](https://www.digitalocean.com/products/spaces){:target="_blank" .external-link}

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

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

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

  ## Operations

  * Bucket
      * Create a bucket
      * Delete a bucket
      * Get all buckets
      * Search within a bucket
  * File
      * Copy a file
      * Delete a file
      * Download a file
      * Get all files
      * Upload a file

      /// note | Attach file for upload
      To attach a file for upload, use another node to pass the file as a data property. Nodes like the [Read/Write Files from Disk](/integrations/builtin/core-nodes/n8n-nodes-base.readwritefile.md) node or the [HTTP Request](/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/index.md) work well.
      ///

  * Folder
      * Create a folder
      * Delete a folder
      * Get all folders

  ## Templates and examples

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

  ## Node reference

  ### Setting file permissions in Wasabi

  When uploading files to [Wasabi](https://wasabi.com/){:target="_blank" .external-link}, you must set permissions for the files using the **ACL** dropdown and not the toggles.

  ![File permissions when using the S3 node with Wasabi](/_images/integrations/builtin/app-nodes/s3/acl_dropdown.png)

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with S3"
    },
    {
      "displayName": "This node is for services that use the S3 standard, e.g. Minio or Digital Ocean Spaces. For AWS S3 use the 'AWS S3' node.",
      "name": "s3StandardNotice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "file",
      "options": [
        {
          "name": "Bucket",
          "value": "bucket"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Folder",
          "value": "folder"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a bucket",
          "action": "Create a bucket"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a bucket",
          "action": "Delete a bucket"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many buckets",
          "action": "Get many buckets"
        },
        {
          "name": "Search",
          "value": "search",
          "description": "Search within a bucket",
          "action": "Search a bucket"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "A succinct description of the nature, symptoms, cause, or effect of the bucket",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "ACL",
          "name": "acl",
          "type": "options",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "Private",
              "value": "Private"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            },
            {
              "name": "Public Read Write",
              "value": "publicReadWrite"
            }
          ],
          "default": "",
          "description": "The canned ACL to apply to the bucket"
        },
        {
          "displayName": "Bucket Object Lock Enabled",
          "name": "bucketObjectLockEnabled",
          "type": "boolean",
          "default": false,
          "description": "Whether you want S3 Object Lock to be enabled for the new bucket"
        },
        {
          "displayName": "Grant Full Control",
          "name": "grantFullControl",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee the read, write, read ACP, and write ACP permissions on the bucket"
        },
        {
          "displayName": "Grant Read",
          "name": "grantRead",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to list the objects in the bucket"
        },
        {
          "displayName": "Grant Read ACP",
          "name": "grantReadAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to read the bucket ACL"
        },
        {
          "displayName": "Grant Write",
          "name": "grantWrite",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to create, overwrite, and delete any object in the bucket"
        },
        {
          "displayName": "Grant Write ACP",
          "name": "grantWriteAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to write the ACL for the applicable bucket"
        },
        {
          "displayName": "Region",
          "name": "region",
          "type": "string",
          "default": "",
          "description": "Region you want to create the bucket in, by default the buckets are created on the region defined on the credentials"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "Name of the AWS S3 bucket to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "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": [
            "bucket"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "bucket"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "search"
          ],
          "resource": [
            "bucket"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "search"
          ],
          "resource": [
            "bucket"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Delimiter",
          "name": "delimiter",
          "type": "string",
          "default": "",
          "description": "A delimiter is a character you use to group keys"
        },
        {
          "displayName": "Encoding Type",
          "name": "encodingType",
          "type": "options",
          "options": [
            {
              "name": "URL",
              "value": "url"
            }
          ],
          "default": "",
          "description": "Encoding type used by Amazon S3 to encode object keys in the response"
        },
        {
          "displayName": "Fetch Owner",
          "name": "fetchOwner",
          "type": "boolean",
          "default": false,
          "description": "The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true"
        },
        {
          "displayName": "Prefix",
          "name": "prefix",
          "type": "string",
          "default": "",
          "description": "Limits the response to keys that begin with the specified prefix"
        },
        {
          "displayName": "Requester Pays",
          "name": "requesterPays",
          "type": "boolean",
          "default": false,
          "description": "Whether the requester will pay for requests and data transfer. While Requester Pays is enabled, anonymous access to this bucket is disabled."
        },
        {
          "displayName": "Start After",
          "name": "startAfter",
          "type": "string",
          "default": "",
          "description": "StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified key."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a folder",
          "action": "Create a folder"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a folder",
          "action": "Delete a folder"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many folders",
          "action": "Get many folders"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Folder Name",
      "name": "folderName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Parent Folder Key",
          "name": "parentFolderKey",
          "type": "string",
          "default": "",
          "description": "Parent folder you want to create the folder in"
        },
        {
          "displayName": "Requester Pays",
          "name": "requesterPays",
          "type": "boolean",
          "default": false,
          "description": "Whether the requester will pay for requests and data transfer. While Requester Pays is enabled, anonymous access to this bucket is disabled."
        },
        {
          "displayName": "Storage Class",
          "name": "storageClass",
          "type": "options",
          "options": [
            {
              "name": "Deep Archive",
              "value": "deepArchive"
            },
            {
              "name": "Glacier",
              "value": "glacier"
            },
            {
              "name": "Intelligent Tiering",
              "value": "intelligentTiering"
            },
            {
              "name": "One Zone IA",
              "value": "onezoneIA"
            },
            {
              "name": "Reduced Redundancy",
              "value": "RecudedRedundancy"
            },
            {
              "name": "Standard",
              "value": "standard"
            },
            {
              "name": "Standard IA",
              "value": "standardIA"
            }
          ],
          "default": "standard",
          "description": "Amazon S3 storage classes"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Folder Key",
      "name": "folderKey",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "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": [
            "folder"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "folder"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Fetch Owner",
          "name": "fetchOwner",
          "type": "boolean",
          "default": false,
          "description": "The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true"
        },
        {
          "displayName": "Folder Key",
          "name": "folderKey",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "download",
      "options": [
        {
          "name": "Copy",
          "value": "copy",
          "description": "Copy a file",
          "action": "Copy a file"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a file",
          "action": "Delete a file"
        },
        {
          "name": "Download",
          "value": "download",
          "description": "Download a file",
          "action": "Download a file"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many files",
          "action": "Get many files"
        },
        {
          "name": "Upload",
          "value": "upload",
          "description": "Upload a file",
          "action": "Upload a file"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Source Path",
      "name": "sourcePath",
      "type": "string",
      "default": "",
      "description": "The name of the source bucket should start with (/) and key name of the source object, separated by a slash (/)",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Destination Path",
      "name": "destinationPath",
      "type": "string",
      "default": "",
      "description": "The name of the destination bucket and key name of the destination object, separated by a slash (/)",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "ACL",
          "name": "acl",
          "type": "options",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "AWS Exec Read",
              "value": "awsExecRead"
            },
            {
              "name": "Bucket Owner Full Control",
              "value": "bucketOwnerFullControl"
            },
            {
              "name": "Bucket Owner Read",
              "value": "bucketOwnerRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            },
            {
              "name": "Public Read Write",
              "value": "publicReadWrite"
            }
          ],
          "default": "private",
          "description": "The canned ACL to apply to the object"
        },
        {
          "displayName": "Grant Full Control",
          "name": "grantFullControl",
          "type": "boolean",
          "default": false,
          "description": "Whether to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object"
        },
        {
          "displayName": "Grant Read",
          "name": "grantRead",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to read the object data and its metadata"
        },
        {
          "displayName": "Grant Read ACP",
          "name": "grantReadAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to read the object ACL"
        },
        {
          "displayName": "Grant Write ACP",
          "name": "grantWriteAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to write the ACL for the applicable object"
        },
        {
          "displayName": "Lock Legal Hold",
          "name": "lockLegalHold",
          "type": "boolean",
          "default": false,
          "description": "Whether a legal hold will be applied to this object"
        },
        {
          "displayName": "Lock Mode",
          "name": "lockMode",
          "type": "options",
          "options": [
            {
              "name": "Governance",
              "value": "governance"
            },
            {
              "name": "Compliance",
              "value": "compliance"
            }
          ],
          "default": "",
          "description": "The Object Lock mode that you want to apply to this object"
        },
        {
          "displayName": "Lock Retain Until Date",
          "name": "lockRetainUntilDate",
          "type": "dateTime",
          "default": "",
          "description": "The date and time when you want this object's Object Lock to expire"
        },
        {
          "displayName": "Metadata Directive",
          "name": "metadataDirective",
          "type": "options",
          "options": [
            {
              "name": "Copy",
              "value": "copy"
            },
            {
              "name": "Replace",
              "value": "replace"
            }
          ],
          "default": "",
          "description": "Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request"
        },
        {
          "displayName": "Requester Pays",
          "name": "requesterPays",
          "type": "boolean",
          "default": false,
          "description": "Whether the requester will pay for requests and data transfer. While Requester Pays is enabled, anonymous access to this bucket is disabled."
        },
        {
          "displayName": "Server Side Encryption",
          "name": "serverSideEncryption",
          "type": "options",
          "options": [
            {
              "name": "AES256",
              "value": "AES256"
            },
            {
              "name": "AWS:KMS",
              "value": "aws:kms"
            }
          ],
          "default": "",
          "description": "The server-side encryption algorithm used when storing this object in Amazon S3"
        },
        {
          "displayName": "Server Side Encryption Context",
          "name": "serverSideEncryptionContext",
          "type": "string",
          "default": "",
          "description": "Specifies the AWS KMS Encryption Context to use for object encryption"
        },
        {
          "displayName": "Server Side Encryption AWS KMS Key ID",
          "name": "encryptionAwsKmsKeyId",
          "type": "string",
          "default": "",
          "description": "If x-amz-server-side-encryption is present and has the value of aws:kms"
        },
        {
          "displayName": "Server Side Encryption Customer Algorithm",
          "name": "serversideEncryptionCustomerAlgorithm",
          "type": "string",
          "default": "",
          "description": "Specifies the algorithm to use to when encrypting the object (for example, AES256)"
        },
        {
          "displayName": "Server Side Encryption Customer Key",
          "name": "serversideEncryptionCustomerKey",
          "type": "string",
          "default": "",
          "description": "Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data"
        },
        {
          "displayName": "Server Side Encryption Customer Key MD5",
          "name": "serversideEncryptionCustomerKeyMD5",
          "type": "string",
          "default": "",
          "description": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321"
        },
        {
          "displayName": "Storage Class",
          "name": "storageClass",
          "type": "options",
          "options": [
            {
              "name": "Deep Archive",
              "value": "deepArchive"
            },
            {
              "name": "Glacier",
              "value": "glacier"
            },
            {
              "name": "Intelligent Tiering",
              "value": "intelligentTiering"
            },
            {
              "name": "One Zone IA",
              "value": "onezoneIA"
            },
            {
              "name": "Standard",
              "value": "standard"
            },
            {
              "name": "Standard IA",
              "value": "standardIA"
            }
          ],
          "default": "standard",
          "description": "Amazon S3 storage classes"
        },
        {
          "displayName": "Tagging Directive",
          "name": "taggingDirective",
          "type": "options",
          "options": [
            {
              "name": "Copy",
              "value": "copy"
            },
            {
              "name": "Replace",
              "value": "replace"
            }
          ],
          "default": "",
          "description": "Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "File Name",
      "name": "fileName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ],
          "binaryData": [
            false
          ]
        }
      }
    },
    {
      "displayName": "File Name",
      "name": "fileName",
      "type": "string",
      "default": "",
      "description": "If not set the binary data filename will be used",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ],
          "binaryData": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Binary File",
      "name": "binaryData",
      "type": "boolean",
      "default": true,
      "description": "Whether the data to upload should be taken from binary field",
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "File Content",
      "name": "fileContent",
      "type": "string",
      "default": "",
      "description": "The text content of the file to upload",
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ],
          "binaryData": [
            false
          ]
        }
      }
    },
    {
      "displayName": "Input Binary Field",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ],
          "binaryData": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "ACL",
          "name": "acl",
          "type": "options",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "AWS Exec Read",
              "value": "awsExecRead"
            },
            {
              "name": "Bucket Owner Full Control",
              "value": "bucketOwnerFullControl"
            },
            {
              "name": "Bucket Owner Read",
              "value": "bucketOwnerRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            },
            {
              "name": "Public Read Write",
              "value": "publicReadWrite"
            }
          ],
          "default": "private",
          "description": "The canned ACL to apply to the object"
        },
        {
          "displayName": "Grant Full Control",
          "name": "grantFullControl",
          "type": "boolean",
          "default": false,
          "description": "Whether to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object"
        },
        {
          "displayName": "Grant Read",
          "name": "grantRead",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to read the object data and its metadata"
        },
        {
          "displayName": "Grant Read ACP",
          "name": "grantReadAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to read the object ACL"
        },
        {
          "displayName": "Grant Write ACP",
          "name": "grantWriteAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to write the ACL for the applicable object"
        },
        {
          "displayName": "Lock Legal Hold",
          "name": "lockLegalHold",
          "type": "boolean",
          "default": false,
          "description": "Whether a legal hold will be applied to this object"
        },
        {
          "displayName": "Lock Mode",
          "name": "lockMode",
          "type": "options",
          "options": [
            {
              "name": "Governance",
              "value": "governance"
            },
            {
              "name": "Compliance",
              "value": "compliance"
            }
          ],
          "default": "",
          "description": "The Object Lock mode that you want to apply to this object"
        },
        {
          "displayName": "Lock Retain Until Date",
          "name": "lockRetainUntilDate",
          "type": "dateTime",
          "default": "",
          "description": "The date and time when you want this object's Object Lock to expire"
        },
        {
          "displayName": "Parent Folder Key",
          "name": "parentFolderKey",
          "type": "string",
          "default": "",
          "description": "Parent folder you want to create the file in"
        },
        {
          "displayName": "Requester Pays",
          "name": "requesterPays",
          "type": "boolean",
          "default": false,
          "description": "Whether the requester will pay for requests and data transfer. While Requester Pays is enabled, anonymous access to this bucket is disabled."
        },
        {
          "displayName": "Server Side Encryption",
          "name": "serverSideEncryption",
          "type": "options",
          "options": [
            {
              "name": "AES256",
              "value": "AES256"
            },
            {
              "name": "AWS:KMS",
              "value": "aws:kms"
            }
          ],
          "default": "",
          "description": "The server-side encryption algorithm used when storing this object in Amazon S3"
        },
        {
          "displayName": "Server Side Encryption Context",
          "name": "serverSideEncryptionContext",
          "type": "string",
          "default": "",
          "description": "Specifies the AWS KMS Encryption Context to use for object encryption"
        },
        {
          "displayName": "Server Side Encryption AWS KMS Key ID",
          "name": "encryptionAwsKmsKeyId",
          "type": "string",
          "default": "",
          "description": "If x-amz-server-side-encryption is present and has the value of aws:kms"
        },
        {
          "displayName": "Server Side Encryption Customer Algorithm",
          "name": "serversideEncryptionCustomerAlgorithm",
          "type": "string",
          "default": "",
          "description": "Specifies the algorithm to use to when encrypting the object (for example, AES256)"
        },
        {
          "displayName": "Server Side Encryption Customer Key",
          "name": "serversideEncryptionCustomerKey",
          "type": "string",
          "default": "",
          "description": "Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data"
        },
        {
          "displayName": "Server Side Encryption Customer Key MD5",
          "name": "serversideEncryptionCustomerKeyMD5",
          "type": "string",
          "default": "",
          "description": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321"
        },
        {
          "displayName": "Storage Class",
          "name": "storageClass",
          "type": "options",
          "options": [
            {
              "name": "Deep Archive",
              "value": "deepArchive"
            },
            {
              "name": "Glacier",
              "value": "glacier"
            },
            {
              "name": "Intelligent Tiering",
              "value": "intelligentTiering"
            },
            {
              "name": "One Zone IA",
              "value": "onezoneIA"
            },
            {
              "name": "Standard",
              "value": "standard"
            },
            {
              "name": "Standard IA",
              "value": "standardIA"
            }
          ],
          "default": "standard",
          "description": "Amazon S3 storage classes"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "Tags",
      "name": "tagsUi",
      "type": "fixedCollection",
      "default": {},
      "description": "Optional extra headers to add to the message (most headers are allowed)",
      "options": [
        {
          "name": "tagsValues",
          "displayName": "Tag",
          "values": [
            {
              "displayName": "Key",
              "name": "key",
              "type": "string",
              "default": ""
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "download"
          ]
        }
      }
    },
    {
      "displayName": "File Key",
      "name": "fileKey",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "download"
          ]
        }
      }
    },
    {
      "displayName": "Put Output File in Field",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "download"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "File Key",
      "name": "fileKey",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Version ID",
          "name": "versionId",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "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": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "file"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Fetch Owner",
          "name": "fetchOwner",
          "type": "boolean",
          "default": false,
          "description": "The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true"
        },
        {
          "displayName": "Folder Key",
          "name": "folderKey",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a bucket"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a bucket"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many buckets"
    },
    {
      "operation": "search",
      "name": "Search",
      "description": "Search within a bucket"
    }
  ]


node_type: nodes-base.s3
package_name: n8n-nodes-base
display_name: S3
description: Sends data to any S3-compatible service
category: output
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "s3",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-01-21 08:10:03
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: S3 node documentation
  description: Learn how to use the S3 node in n8n. Follow technical documentation to integrate S3 node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # S3 node

  Use the S3 node to automate work in non-AWS S3 storage and integrate S3 with other applications. n8n has built-in support for a wide range of S3 features, including creating, deleting, and getting buckets, files, and folders. For AWS S3, use [AWS S3](/integrations/builtin/app-nodes/n8n-nodes-base.awss3.md).

  Use the S3 node for non-AWS S3 solutions like:

  * [MinIO](https://min.io/){:target="_blank" .external-link}
  * [Wasabi](https://wasabi.com/){:target="_blank" .external-link}
  * [Digital Ocean spaces](https://www.digitalocean.com/products/spaces){:target="_blank" .external-link}

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

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

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

  ## Operations

  * Bucket
      * Create a bucket
      * Delete a bucket
      * Get all buckets
      * Search within a bucket
  * File
      * Copy a file
      * Delete a file
      * Download a file
      * Get all files
      * Upload a file

      /// note | Attach file for upload
      To attach a file for upload, use another node to pass the file as a data property. Nodes like the [Read/Write Files from Disk](/integrations/builtin/core-nodes/n8n-nodes-base.readwritefile.md) node or the [HTTP Request](/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/index.md) work well.
      ///

  * Folder
      * Create a folder
      * Delete a folder
      * Get all folders

  ## Templates and examples

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

  ## Node reference

  ### Setting file permissions in Wasabi

  When uploading files to [Wasabi](https://wasabi.com/){:target="_blank" .external-link}, you must set permissions for the files using the **ACL** dropdown and not the toggles.

  ![File permissions when using the S3 node with Wasabi](/_images/integrations/builtin/app-nodes/s3/acl_dropdown.png)

properties_schema:
  [
    {
      "displayName": "This node is for services that use the S3 standard, e.g. Minio or Digital Ocean Spaces. For AWS S3 use the 'AWS S3' node.",
      "name": "s3StandardNotice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "file",
      "options": [
        {
          "name": "Bucket",
          "value": "bucket"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Folder",
          "value": "folder"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a bucket",
          "action": "Create a bucket"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a bucket",
          "action": "Delete a bucket"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many buckets",
          "action": "Get many buckets"
        },
        {
          "name": "Search",
          "value": "search",
          "description": "Search within a bucket",
          "action": "Search a bucket"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "A succinct description of the nature, symptoms, cause, or effect of the bucket",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "ACL",
          "name": "acl",
          "type": "options",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "Private",
              "value": "Private"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            },
            {
              "name": "Public Read Write",
              "value": "publicReadWrite"
            }
          ],
          "default": "",
          "description": "The canned ACL to apply to the bucket"
        },
        {
          "displayName": "Bucket Object Lock Enabled",
          "name": "bucketObjectLockEnabled",
          "type": "boolean",
          "default": false,
          "description": "Whether you want S3 Object Lock to be enabled for the new bucket"
        },
        {
          "displayName": "Grant Full Control",
          "name": "grantFullControl",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee the read, write, read ACP, and write ACP permissions on the bucket"
        },
        {
          "displayName": "Grant Read",
          "name": "grantRead",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to list the objects in the bucket"
        },
        {
          "displayName": "Grant Read ACP",
          "name": "grantReadAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to read the bucket ACL"
        },
        {
          "displayName": "Grant Write",
          "name": "grantWrite",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to create, overwrite, and delete any object in the bucket"
        },
        {
          "displayName": "Grant Write ACP",
          "name": "grantWriteAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to write the ACL for the applicable bucket"
        },
        {
          "displayName": "Region",
          "name": "region",
          "type": "string",
          "default": "",
          "description": "Region you want to create the bucket in, by default the buckets are created on the region defined on the credentials"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "Name of the AWS S3 bucket to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "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": [
            "bucket"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "bucket"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "search"
          ],
          "resource": [
            "bucket"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "search"
          ],
          "resource": [
            "bucket"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Delimiter",
          "name": "delimiter",
          "type": "string",
          "default": "",
          "description": "A delimiter is a character you use to group keys"
        },
        {
          "displayName": "Encoding Type",
          "name": "encodingType",
          "type": "options",
          "options": [
            {
              "name": "URL",
              "value": "url"
            }
          ],
          "default": "",
          "description": "Encoding type used by Amazon S3 to encode object keys in the response"
        },
        {
          "displayName": "Fetch Owner",
          "name": "fetchOwner",
          "type": "boolean",
          "default": false,
          "description": "The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true"
        },
        {
          "displayName": "Prefix",
          "name": "prefix",
          "type": "string",
          "default": "",
          "description": "Limits the response to keys that begin with the specified prefix"
        },
        {
          "displayName": "Requester Pays",
          "name": "requesterPays",
          "type": "boolean",
          "default": false,
          "description": "Whether the requester will pay for requests and data transfer. While Requester Pays is enabled, anonymous access to this bucket is disabled."
        },
        {
          "displayName": "Start After",
          "name": "startAfter",
          "type": "string",
          "default": "",
          "description": "StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified key."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a folder",
          "action": "Create a folder"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a folder",
          "action": "Delete a folder"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many folders",
          "action": "Get many folders"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Folder Name",
      "name": "folderName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Parent Folder Key",
          "name": "parentFolderKey",
          "type": "string",
          "default": "",
          "description": "Parent folder you want to create the folder in"
        },
        {
          "displayName": "Requester Pays",
          "name": "requesterPays",
          "type": "boolean",
          "default": false,
          "description": "Whether the requester will pay for requests and data transfer. While Requester Pays is enabled, anonymous access to this bucket is disabled."
        },
        {
          "displayName": "Storage Class",
          "name": "storageClass",
          "type": "options",
          "options": [
            {
              "name": "Deep Archive",
              "value": "deepArchive"
            },
            {
              "name": "Glacier",
              "value": "glacier"
            },
            {
              "name": "Intelligent Tiering",
              "value": "intelligentTiering"
            },
            {
              "name": "One Zone IA",
              "value": "onezoneIA"
            },
            {
              "name": "Reduced Redundancy",
              "value": "RecudedRedundancy"
            },
            {
              "name": "Standard",
              "value": "standard"
            },
            {
              "name": "Standard IA",
              "value": "standardIA"
            }
          ],
          "default": "standard",
          "description": "Amazon S3 storage classes"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Folder Key",
      "name": "folderKey",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "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": [
            "folder"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "folder"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Fetch Owner",
          "name": "fetchOwner",
          "type": "boolean",
          "default": false,
          "description": "The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true"
        },
        {
          "displayName": "Folder Key",
          "name": "folderKey",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "download",
      "options": [
        {
          "name": "Copy",
          "value": "copy",
          "description": "Copy a file",
          "action": "Copy a file"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a file",
          "action": "Delete a file"
        },
        {
          "name": "Download",
          "value": "download",
          "description": "Download a file",
          "action": "Download a file"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many files",
          "action": "Get many files"
        },
        {
          "name": "Upload",
          "value": "upload",
          "description": "Upload a file",
          "action": "Upload a file"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Source Path",
      "name": "sourcePath",
      "type": "string",
      "default": "",
      "description": "The name of the source bucket should start with (/) and key name of the source object, separated by a slash (/)",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Destination Path",
      "name": "destinationPath",
      "type": "string",
      "default": "",
      "description": "The name of the destination bucket and key name of the destination object, separated by a slash (/)",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "ACL",
          "name": "acl",
          "type": "options",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "AWS Exec Read",
              "value": "awsExecRead"
            },
            {
              "name": "Bucket Owner Full Control",
              "value": "bucketOwnerFullControl"
            },
            {
              "name": "Bucket Owner Read",
              "value": "bucketOwnerRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            },
            {
              "name": "Public Read Write",
              "value": "publicReadWrite"
            }
          ],
          "default": "private",
          "description": "The canned ACL to apply to the object"
        },
        {
          "displayName": "Grant Full Control",
          "name": "grantFullControl",
          "type": "boolean",
          "default": false,
          "description": "Whether to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object"
        },
        {
          "displayName": "Grant Read",
          "name": "grantRead",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to read the object data and its metadata"
        },
        {
          "displayName": "Grant Read ACP",
          "name": "grantReadAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to read the object ACL"
        },
        {
          "displayName": "Grant Write ACP",
          "name": "grantWriteAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to write the ACL for the applicable object"
        },
        {
          "displayName": "Lock Legal Hold",
          "name": "lockLegalHold",
          "type": "boolean",
          "default": false,
          "description": "Whether a legal hold will be applied to this object"
        },
        {
          "displayName": "Lock Mode",
          "name": "lockMode",
          "type": "options",
          "options": [
            {
              "name": "Governance",
              "value": "governance"
            },
            {
              "name": "Compliance",
              "value": "compliance"
            }
          ],
          "default": "",
          "description": "The Object Lock mode that you want to apply to this object"
        },
        {
          "displayName": "Lock Retain Until Date",
          "name": "lockRetainUntilDate",
          "type": "dateTime",
          "default": "",
          "description": "The date and time when you want this object's Object Lock to expire"
        },
        {
          "displayName": "Metadata Directive",
          "name": "metadataDirective",
          "type": "options",
          "options": [
            {
              "name": "Copy",
              "value": "copy"
            },
            {
              "name": "Replace",
              "value": "replace"
            }
          ],
          "default": "",
          "description": "Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request"
        },
        {
          "displayName": "Requester Pays",
          "name": "requesterPays",
          "type": "boolean",
          "default": false,
          "description": "Whether the requester will pay for requests and data transfer. While Requester Pays is enabled, anonymous access to this bucket is disabled."
        },
        {
          "displayName": "Server Side Encryption",
          "name": "serverSideEncryption",
          "type": "options",
          "options": [
            {
              "name": "AES256",
              "value": "AES256"
            },
            {
              "name": "AWS:KMS",
              "value": "aws:kms"
            }
          ],
          "default": "",
          "description": "The server-side encryption algorithm used when storing this object in Amazon S3"
        },
        {
          "displayName": "Server Side Encryption Context",
          "name": "serverSideEncryptionContext",
          "type": "string",
          "default": "",
          "description": "Specifies the AWS KMS Encryption Context to use for object encryption"
        },
        {
          "displayName": "Server Side Encryption AWS KMS Key ID",
          "name": "encryptionAwsKmsKeyId",
          "type": "string",
          "default": "",
          "description": "If x-amz-server-side-encryption is present and has the value of aws:kms"
        },
        {
          "displayName": "Server Side Encryption Customer Algorithm",
          "name": "serversideEncryptionCustomerAlgorithm",
          "type": "string",
          "default": "",
          "description": "Specifies the algorithm to use to when encrypting the object (for example, AES256)"
        },
        {
          "displayName": "Server Side Encryption Customer Key",
          "name": "serversideEncryptionCustomerKey",
          "type": "string",
          "default": "",
          "description": "Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data"
        },
        {
          "displayName": "Server Side Encryption Customer Key MD5",
          "name": "serversideEncryptionCustomerKeyMD5",
          "type": "string",
          "default": "",
          "description": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321"
        },
        {
          "displayName": "Storage Class",
          "name": "storageClass",
          "type": "options",
          "options": [
            {
              "name": "Deep Archive",
              "value": "deepArchive"
            },
            {
              "name": "Glacier",
              "value": "glacier"
            },
            {
              "name": "Intelligent Tiering",
              "value": "intelligentTiering"
            },
            {
              "name": "One Zone IA",
              "value": "onezoneIA"
            },
            {
              "name": "Standard",
              "value": "standard"
            },
            {
              "name": "Standard IA",
              "value": "standardIA"
            }
          ],
          "default": "standard",
          "description": "Amazon S3 storage classes"
        },
        {
          "displayName": "Tagging Directive",
          "name": "taggingDirective",
          "type": "options",
          "options": [
            {
              "name": "Copy",
              "value": "copy"
            },
            {
              "name": "Replace",
              "value": "replace"
            }
          ],
          "default": "",
          "description": "Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "File Name",
      "name": "fileName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ],
          "binaryData": [
            false
          ]
        }
      }
    },
    {
      "displayName": "File Name",
      "name": "fileName",
      "type": "string",
      "default": "",
      "description": "If not set the binary data filename will be used",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ],
          "binaryData": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Binary File",
      "name": "binaryData",
      "type": "boolean",
      "default": true,
      "description": "Whether the data to upload should be taken from binary field",
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "File Content",
      "name": "fileContent",
      "type": "string",
      "default": "",
      "description": "The text content of the file to upload",
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ],
          "binaryData": [
            false
          ]
        }
      }
    },
    {
      "displayName": "Input Binary Field",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ],
          "binaryData": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "ACL",
          "name": "acl",
          "type": "options",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "AWS Exec Read",
              "value": "awsExecRead"
            },
            {
              "name": "Bucket Owner Full Control",
              "value": "bucketOwnerFullControl"
            },
            {
              "name": "Bucket Owner Read",
              "value": "bucketOwnerRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            },
            {
              "name": "Public Read Write",
              "value": "publicReadWrite"
            }
          ],
          "default": "private",
          "description": "The canned ACL to apply to the object"
        },
        {
          "displayName": "Grant Full Control",
          "name": "grantFullControl",
          "type": "boolean",
          "default": false,
          "description": "Whether to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object"
        },
        {
          "displayName": "Grant Read",
          "name": "grantRead",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to read the object data and its metadata"
        },
        {
          "displayName": "Grant Read ACP",
          "name": "grantReadAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to read the object ACL"
        },
        {
          "displayName": "Grant Write ACP",
          "name": "grantWriteAcp",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow grantee to write the ACL for the applicable object"
        },
        {
          "displayName": "Lock Legal Hold",
          "name": "lockLegalHold",
          "type": "boolean",
          "default": false,
          "description": "Whether a legal hold will be applied to this object"
        },
        {
          "displayName": "Lock Mode",
          "name": "lockMode",
          "type": "options",
          "options": [
            {
              "name": "Governance",
              "value": "governance"
            },
            {
              "name": "Compliance",
              "value": "compliance"
            }
          ],
          "default": "",
          "description": "The Object Lock mode that you want to apply to this object"
        },
        {
          "displayName": "Lock Retain Until Date",
          "name": "lockRetainUntilDate",
          "type": "dateTime",
          "default": "",
          "description": "The date and time when you want this object's Object Lock to expire"
        },
        {
          "displayName": "Parent Folder Key",
          "name": "parentFolderKey",
          "type": "string",
          "default": "",
          "description": "Parent folder you want to create the file in"
        },
        {
          "displayName": "Requester Pays",
          "name": "requesterPays",
          "type": "boolean",
          "default": false,
          "description": "Whether the requester will pay for requests and data transfer. While Requester Pays is enabled, anonymous access to this bucket is disabled."
        },
        {
          "displayName": "Server Side Encryption",
          "name": "serverSideEncryption",
          "type": "options",
          "options": [
            {
              "name": "AES256",
              "value": "AES256"
            },
            {
              "name": "AWS:KMS",
              "value": "aws:kms"
            }
          ],
          "default": "",
          "description": "The server-side encryption algorithm used when storing this object in Amazon S3"
        },
        {
          "displayName": "Server Side Encryption Context",
          "name": "serverSideEncryptionContext",
          "type": "string",
          "default": "",
          "description": "Specifies the AWS KMS Encryption Context to use for object encryption"
        },
        {
          "displayName": "Server Side Encryption AWS KMS Key ID",
          "name": "encryptionAwsKmsKeyId",
          "type": "string",
          "default": "",
          "description": "If x-amz-server-side-encryption is present and has the value of aws:kms"
        },
        {
          "displayName": "Server Side Encryption Customer Algorithm",
          "name": "serversideEncryptionCustomerAlgorithm",
          "type": "string",
          "default": "",
          "description": "Specifies the algorithm to use to when encrypting the object (for example, AES256)"
        },
        {
          "displayName": "Server Side Encryption Customer Key",
          "name": "serversideEncryptionCustomerKey",
          "type": "string",
          "default": "",
          "description": "Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data"
        },
        {
          "displayName": "Server Side Encryption Customer Key MD5",
          "name": "serversideEncryptionCustomerKeyMD5",
          "type": "string",
          "default": "",
          "description": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321"
        },
        {
          "displayName": "Storage Class",
          "name": "storageClass",
          "type": "options",
          "options": [
            {
              "name": "Deep Archive",
              "value": "deepArchive"
            },
            {
              "name": "Glacier",
              "value": "glacier"
            },
            {
              "name": "Intelligent Tiering",
              "value": "intelligentTiering"
            },
            {
              "name": "One Zone IA",
              "value": "onezoneIA"
            },
            {
              "name": "Standard",
              "value": "standard"
            },
            {
              "name": "Standard IA",
              "value": "standardIA"
            }
          ],
          "default": "standard",
          "description": "Amazon S3 storage classes"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "Tags",
      "name": "tagsUi",
      "type": "fixedCollection",
      "default": {},
      "description": "Optional extra headers to add to the message (most headers are allowed)",
      "options": [
        {
          "name": "tagsValues",
          "displayName": "Tag",
          "values": [
            {
              "displayName": "Key",
              "name": "key",
              "type": "string",
              "default": ""
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "download"
          ]
        }
      }
    },
    {
      "displayName": "File Key",
      "name": "fileKey",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "download"
          ]
        }
      }
    },
    {
      "displayName": "Put Output File in Field",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "download"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "File Key",
      "name": "fileKey",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Version ID",
          "name": "versionId",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "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": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "file"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Fetch Owner",
          "name": "fetchOwner",
          "type": "boolean",
          "default": false,
          "description": "The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true"
        },
        {
          "displayName": "Folder Key",
          "name": "folderKey",
          "type": "string",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a bucket"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a bucket"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many buckets"
    },
    {
      "operation": "search",
      "name": "Search",
      "description": "Search within a bucket"
    }
  ]


node_type: nodes-base.salesforceTool
package_name: n8n-nodes-base
display_name: Salesforce Tool
description: Consume Salesforce API (AI Tool variant for use with AI Agents)
category: output
development_style: programmatic
version: 1
outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-01-21 08:10:03
tool_variant_of: nodes-base.salesforce
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Salesforce node documentation
  description: Learn how to use the Salesforce node in n8n. Follow technical documentation to integrate Salesforce node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Salesforce node

  Use the Salesforce node to automate work in Salesforce, and integrate Salesforce with other applications. n8n has built-in support for a wide range of Salesforce features, including creating, updating, deleting, and getting accounts, attachments, cases, and leads, as well as uploading documents. 

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

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

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

  ## Operations

  * Account
      * Add note to an account
      * Create an account
      * Create a new account, or update the current one if it already exists (upsert)
      * Get an account
      * Get all accounts
      * Returns an overview of account's metadata.
      * Delete an account
      * Update an account
  * Attachment
      * Create a attachment
      * Delete a attachment
      * Get a attachment
      * Get all attachments
      * Returns an overview of attachment's metadata.
      * Update a attachment
  * Case
      * Add a comment to a case
      * Create a case
      * Get a case
      * Get all cases
      * Returns an overview of case's metadata
      * Delete a case
      * Update a case
  * Contact
      * Add lead to a campaign
      * Add note to a contact
      * Create a contact
      * Create a new contact, or update the current one if it already exists (upsert)
      * Delete a contact
      * Get a contact
      * Returns an overview of contact's metadata
      * Get all contacts
      * Update a contact
  * Custom Object
      * Create a custom object record
      * Create a new record, or update the current one if it already exists (upsert)
      * Get a custom object record
      * Get all custom object records
      * Delete a custom object record
      * Update a custom object record
  * Document
      * Upload a document
  * Flow
      * Get all flows
      * Invoke a flow
  * Lead
      * Add lead to a campaign
      * Add note to a lead
      * Create a lead
      * Create a new lead, or update the current one if it already exists (upsert)
      * Delete a lead
      * Get a lead
      * Get all leads
      * Returns an overview of Lead's metadata
      * Update a lead
  * Opportunity
      * Add note to an opportunity
      * Create an opportunity
      * Create a new opportunity, or update the current one if it already exists (upsert)
      * Delete an opportunity
      * Get an opportunity
      * Get all opportunities
      * Returns an overview of opportunity's metadata
      * Update an opportunity
  * Search
      * Execute a SOQL query that returns all the results in a single response
  * Task
      * Create a task
      * Delete a task
      * Get a task
      * Get all tasks
      * Returns an overview of task's metadata
      * Update a task
  * User
      * Get a user
      * Get all users

  ## Templates and examples

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

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

  ## Working with Salesforce custom fields

  To add custom fields to your request:

  1. Select **Additional Fields** > **Add Field**.
  2. In the dropdown, select **Custom Fields**.

  You can then find and add your custom fields.

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Salesforce"
    },
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "oAuth2",
      "description": "OAuth Authorization Flow",
      "options": [
        {
          "name": "OAuth2",
          "value": "oAuth2"
        },
        {
          "name": "OAuth2 JWT",
          "value": "jwt"
        }
      ]
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "lead",
      "options": [
        {
          "name": "Account",
          "value": "account",
          "description": "Represents an individual account, which is an organization or person involved with your business (such as customers, competitors, and partners)"
        },
        {
          "name": "Attachment",
          "value": "attachment",
          "description": "Represents a file that a has uploaded and attached to a parent object"
        },
        {
          "name": "Case",
          "value": "case",
          "description": "Represents a case, which is a customer issue or problem"
        },
        {
          "name": "Contact",
          "value": "contact",
          "description": "Represents a contact, which is an individual associated with an account"
        },
        {
          "name": "Custom Object",
          "value": "customObject",
          "description": "Represents a custom object"
        },
        {
          "name": "Document",
          "value": "document",
          "description": "Represents a document"
        },
        {
          "name": "Flow",
          "value": "flow",
          "description": "Represents an autolaunched flow"
        },
        {
          "name": "Lead",
          "value": "lead",
          "description": "Represents a prospect or potential"
        },
        {
          "name": "Opportunity",
          "value": "opportunity",
          "description": "Represents an opportunity, which is a sale or pending deal"
        },
        {
          "name": "Search",
          "value": "search",
          "description": "Search records"
        },
        {
          "name": "Task",
          "value": "task",
          "description": "Represents a business activity such as making a phone call or other to-do items. In the user interface, and records are collectively referred to as activities."
        },
        {
          "name": "User",
          "value": "user",
          "description": "Represents a person, which is one user in system"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add Lead To Campaign",
          "value": "addToCampaign",
          "description": "Add lead to a campaign",
          "action": "Add a lead to a campaign"
        },
        {
          "name": "Add Note",
          "value": "addNote",
          "description": "Add note to a lead",
          "action": "Add a note to a lead"
        },
        {
          "name": "Create",
          "value": "create",
          "description": "Create a lead",
          "action": "Create a lead"
        },
        {
          "name": "Create or Update",
          "value": "upsert",
          "description": "Create a new lead, or update the current one if it already exists (upsert)",
          "action": "Create or update a lead"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a lead",
          "action": "Delete a lead"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a lead",
          "action": "Get a lead"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many leads",
          "action": "Get many leads"
        },
        {
          "name": "Get Summary",
          "value": "getSummary",
          "description": "Returns an overview of Lead's metadata",
          "action": "Get a lead summary"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a lead",
          "action": "Update a lead"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Match Against",
      "name": "externalId",
      "type": "options",
      "default": "",
      "description": "The field to check to see if the lead already exists. 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": [
            "lead"
          ],
          "operation": [
            "upsert"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getExternalIdFields",
        "loadOptionsDependsOn": [
          "resource"
        ]
      }
    },
    {
      "displayName": "Value to Match",
      "name": "externalIdValue",
      "type": "string",
      "default": "",
      "description": "If this value exists in the 'match against' field, update the lead. Otherwise create a new one.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Company",
      "name": "company",
      "type": "string",
      "default": "",
      "description": "Company of the lead. If person account record types have been enabled, and if the value of Company is null, the lead converts to a person account.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Last Name",
      "name": "lastname",
      "type": "string",
      "default": "",
      "description": "Required. Last name of the lead. Limited to 80 characters.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Annual Revenue",
          "name": "annualRevenue",
          "type": "number",
          "typeOptions": {
            "numberPrecision": 2
          },
          "default": "",
          "description": "Annual revenue for the company of the lead"
        },
        {
          "displayName": "City",
          "name": "city",
          "type": "string",
          "default": "",
          "description": "City for the address of the lead"
        },
        {
          "displayName": "Country",
          "name": "country",
          "type": "string",
          "default": "",
          "description": "Country of the lead"
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "Description of the lead"
        },
        {
          "displayName": "Email",
          "name": "email",
          "type": "string",
          "placeholder": "name@email.com",
          "default": "",
          "description": "Email address for the lead"
        },
        {
          "displayName": "Fax",
          "name": "fax",
          "type": "number",
          "default": "",
          "description": "Fax number of the lead"
        },
        {
          "displayName": "First Name",
          "name": "firstname",
          "type": "string",
          "default": "",
          "description": "First name of the lead. Limited to 40 characters."
        },
        {
          "displayName": "Has Opted Out of Email",
          "name": "hasOptedOutOfEmail",
          "type": "boolean",
          "default": false,
          "description": "Whether the lead doesn’t want to receive email from Salesforce (true) or does (false). Label is Email Opt Out."
        },
        {
          "displayName": "Has Opted Out of Fax",
          "name": "hasOptedOutOfFax",
          "type": "boolean",
          "default": false,
          "description": "Whether the lead doesn’t want to receive fax from Salesforce (true) or does (false). Label is Email Opt Out."
        },
        {
          "displayName": "Industry",
          "name": "industry",
          "type": "string",
          "default": "",
          "description": "Website for the lead"
        },
        {
          "displayName": "Is Unread By Owner",
          "name": "IsUnreadByOwner",
          "type": "boolean",
          "default": false,
          "description": "Whether true, lead has been assigned, but not yet viewed. See Unread Leads for more information. Label is Unread By Owner."
        },
        {
          "displayName": "Jigsaw",
          "name": "jigsaw",
          "type": "string",
          "default": "",
          "description": "References the ID of a contact in Data.com. If a lead has a value in this field, it means that a contact was imported as a lead from Data.com."
        },
        {
          "displayName": "Lead Source Name or ID",
          "name": "leadSource",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLeadSources"
          },
          "default": "",
          "description": "Source from which the lead was obtained. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Mobile Phone",
          "name": "mobilePhone",
          "type": "string",
          "default": "",
          "description": "Contact’s mobile phone number"
        },
        {
          "displayName": "Number Of Employees",
          "name": "numberOfEmployees",
          "type": "number",
          "default": "",
          "description": "Number of employees at the lead’s company. Label is Employees."
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLeadOwners"
          },
          "default": "",
          "description": "The owner of the lead. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Phone",
          "name": "phone",
          "type": "string",
          "default": "",
          "description": "Phone number for the lead"
        },
        {
          "displayName": "Postal Code",
          "name": "postalCode",
          "type": "string",
          "default": "",
          "description": "Postal code for the address of the lead. Label is Zip/Postal Code."
        },
        {
          "displayName": "Record Type Name or ID",
          "name": "recordTypeId",
          "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": "getRecordTypes"
          },
          "default": ""
        },
        {
          "displayName": "Rating",
          "name": "rating",
          "type": "string",
          "default": "",
          "description": "Rating of the lead"
        },
        {
          "displayName": "Salutation",
          "name": "salutation",
          "type": "string",
          "default": "",
          "description": "Salutation for the lead"
        },
        {
          "displayName": "State",
          "name": "state",
          "type": "string",
          "default": "",
          "description": "State for the address of the lead"
        },
        {
          "displayName": "Status Name or ID",
          "name": "status",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLeadStatuses"
          },
          "default": "",
          "description": "Status code for this converted lead. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Street",
          "name": "street",
          "type": "string",
          "default": "",
          "description": "Street number and name for the address of the lead"
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "description": "Title for the lead, for example CFO or CEO"
        },
        {
          "displayName": "Website",
          "name": "website",
          "type": "string",
          "default": "",
          "description": "Website for the lead"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Lead ID",
      "name": "leadId",
      "type": "string",
      "default": "",
      "description": "ID of Lead that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Annual Revenue",
          "name": "annualRevenue",
          "type": "number",
          "typeOptions": {
            "numberPrecision": 2
          },
          "default": "",
          "description": "Annual revenue for the company of the lead"
        },
        {
          "displayName": "City",
          "name": "city",
          "type": "string",
          "default": "",
          "description": "City for the address of the lead"
        },
        {
          "displayName": "Company",
          "name": "company",
          "type": "string",
          "default": "",
          "description": "Company of the lead. If person account record types have been enabled, and if the value of Company is null, the lead converts to a person account."
        },
        {
          "displayName": "Country",
          "name": "country",
          "type": "string",
          "default": "",
          "description": "Country of the lead"
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "Description of the lead"
        },
        {
          "displayName": "Email",
          "name": "email",
          "type": "string",
          "placeholder": "name@email.com",
          "default": "",
          "description": "Email address for the lead"
        },
        {
          "displayName": "Fax",
          "name": "fax",
          "type": "number",
          "default": "",
          "description": "Fax Number of the lead"
        },
        {
          "displayName": "First Name",
          "name": "firstname",
          "type": "string",
          "default": "",
          "description": "First name of the lead. Limited to 40 characters."
        },
        {
          "displayName": "Has Opted Out of Email",
          "name": "hasOptedOutOfEmail",
          "type": "boolean",
          "default": false,
          "description": "Whether the lead doesn’t want to receive email from Salesforce (true) or does (false). Label is Email Opt Out."
        },
        {
          "displayName": "Has Opted Out of Fax",
          "name": "HasOptedOutOfFax",
          "type": "boolean",
          "default": false,
          "description": "Whether the lead doesn’t want to receive fax from Salesforce (true) or does (false). Label is Fax Opt Out."
        },
        {
          "displayName": "Industry",
          "name": "industry",
          "type": "string",
          "default": "",
          "description": "Website for the lead"
        },
        {
          "displayName": "Is Unread By Owner",
          "name": "IsUnreadByOwner",
          "type": "boolean",
          "default": false,
          "description": "Whether true, lead has been assigned, but not yet viewed. See Unread Leads for more information. Label is Unread By Owner."
        },
        {
          "displayName": "Jigsaw",
          "name": "jigsaw",
          "type": "string",
          "default": "",
          "description": "References the ID of a contact in Data.com. If a lead has a value in this field, it means that a contact was imported as a lead from Data.com."
        },
        {
          "displayName": "Last Name",
          "name": "lastname",
          "type": "string",
          "default": "",
          "description": "Required. Last name of the lead. Limited to 80 characters."
        },
        {
          "displayName": "Lead Source Name or ID",
          "name": "leadSource",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLeadSources"
          },
          "default": "",
          "description": "Source from which the lead was obtained. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Mobile Phone",
          "name": "mobilePhone",
          "type": "string",
          "default": "",
          "description": "Contact’s mobile phone number"
        },
        {
          "displayName": "Number Of Employees",
          "name": "numberOfEmployees",
          "type": "number",
          "default": "",
          "description": "Number of employees at the lead’s company. Label is Employees."
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLeadOwners"
          },
          "default": "",
          "description": "The owner of the lead. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Postal Code",
          "name": "postalCode",
          "type": "string",
          "default": "",
          "description": "Postal code for the address of the lead. Label is Zip/Postal Code."
        },
        {
          "displayName": "Phone",
          "name": "phone",
          "type": "string",
          "default": "",
          "description": "Phone number for the lead"
        },
        {
          "displayName": "Record Type Name or ID",
          "name": "recordTypeId",
          "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": "getRecordTypes"
          },
          "default": ""
        },
        {
          "displayName": "Rating",
          "name": "rating",
          "type": "string",
          "default": "",
          "description": "Rating of the lead"
        },
        {
          "displayName": "Salutation",
          "name": "salutation",
          "type": "string",
          "default": "",
          "description": "Salutation for the lead"
        },
        {
          "displayName": "State",
          "name": "state",
          "type": "string",
          "default": "",
          "description": "State for the address of the lead"
        },
        {
          "displayName": "Status Name or ID",
          "name": "status",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLeadStatuses"
          },
          "default": "",
          "description": "Status code for this converted lead. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Street",
          "name": "street",
          "type": "string",
          "default": "",
          "description": "Street number and name for the address of the lead"
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "description": "Title for the lead, for example CFO or CEO"
        },
        {
          "displayName": "Website",
          "name": "website",
          "type": "string",
          "default": "",
          "description": "Website for the lead"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Lead ID",
      "name": "leadId",
      "type": "string",
      "default": "",
      "description": "ID of Lead that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Lead ID",
      "name": "leadId",
      "type": "string",
      "default": "",
      "description": "ID of Lead that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "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": [
            "lead"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Conditions",
          "name": "conditionsUi",
          "placeholder": "Add Condition",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "The condition to set",
          "default": {},
          "options": [
            {
              "name": "conditionValues",
              "displayName": "Condition",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "field",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getLeadFields"
                  },
                  "default": "",
                  "description": "For date, number, or boolean, please use expressions. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                },
                {
                  "displayName": "Operation",
                  "name": "operation",
                  "type": "options",
                  "options": [
                    {
                      "name": "<",
                      "value": "<"
                    },
                    {
                      "name": "<=",
                      "value": "<="
                    },
                    {
                      "name": "=",
                      "value": "equal"
                    },
                    {
                      "name": ">",
                      "value": ">"
                    },
                    {
                      "name": ">=",
                      "value": ">="
                    }
                  ],
                  "default": "equal"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "string",
          "default": "",
          "description": "Fields to include separated by ,"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Lead ID",
      "name": "leadId",
      "type": "string",
      "default": "",
      "description": "ID of contact that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "addToCampaign"
          ]
        }
      }
    },
    {
      "displayName": "Campaign Name or ID",
      "name": "campaignId",
      "type": "options",
      "default": "",
      "description": "ID of the campaign that needs to be fetched. 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": [
            "lead"
          ],
          "operation": [
            "addToCampaign"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCampaigns"
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Status",
          "name": "status",
          "type": "string",
          "default": "",
          "description": "Controls the HasResponded flag on this object"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "addToCampaign"
          ]
        }
      }
    },
    {
      "displayName": "Lead ID",
      "name": "leadId",
      "type": "string",
      "default": "",
      "description": "ID of lead that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "Title of the note",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Body",
          "name": "body",
          "type": "string",
          "default": "",
          "description": "Body of the note. Limited to 32 KB."
        },
        {
          "displayName": "Is Private",
          "name": "isPrivate",
          "type": "boolean",
          "default": false,
          "description": "Whether true, only the note owner or a user with the “Modify All Data” permission can view the note or query it via the API"
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "ID of the user who owns the note. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ],
          "operation": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add Contact To Campaign",
          "value": "addToCampaign",
          "description": "Add contact to a campaign",
          "action": "Add a contact to a campaign"
        },
        {
          "name": "Add Note",
          "value": "addNote",
          "description": "Add note to a contact",
          "action": "Add a note to a contact"
        },
        {
          "name": "Create",
          "value": "create",
          "description": "Create a contact",
          "action": "Create a contact"
        },
        {
          "name": "Create or Update",
          "value": "upsert",
          "description": "Create a new contact, or update the current one if it already exists (upsert)",
          "action": "Create or update a contact"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a contact",
          "action": "Delete a contact"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a contact",
          "action": "Get a contact"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many contacts",
          "action": "Get many contacts"
        },
        {
          "name": "Get Summary",
          "value": "getSummary",
          "description": "Returns an overview of contact's metadata",
          "action": "Get a contact summary"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a contact",
          "action": "Update a contact"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Match Against",
      "name": "externalId",
      "type": "options",
      "default": "",
      "description": "The field to check to see if the contact already exists. 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": [
            "contact"
          ],
          "operation": [
            "upsert"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getExternalIdFields",
        "loadOptionsDependsOn": [
          "resource"
        ]
      }
    },
    {
      "displayName": "Value to Match",
      "name": "externalIdValue",
      "type": "string",
      "default": "",
      "description": "If this value exists in the 'match against' field, update the contact. Otherwise create a new one.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Last Name",
      "name": "lastname",
      "type": "string",
      "default": "",
      "description": "Required. Last name of the contact. Limited to 80 characters.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Account Name or ID",
          "name": "acconuntId",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getAccounts"
          },
          "default": "",
          "description": "ID of the account that is the parent of this contact. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Assistant Name",
          "name": "assistantName",
          "type": "string",
          "default": "",
          "description": "The name of the assistant"
        },
        {
          "displayName": "Assistant Phone",
          "name": "Assistant Phone",
          "type": "string",
          "default": "",
          "description": "The telephone number of the assistant"
        },
        {
          "displayName": "Birth Date",
          "name": "birthdate",
          "type": "dateTime",
          "default": "",
          "description": "The birth date of the contact"
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Department",
          "name": "department",
          "type": "string",
          "default": "",
          "description": "The department of the contact"
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "A description of the contact. Label is Contact Description. Limit: 32 KB."
        },
        {
          "displayName": "Email",
          "name": "email",
          "type": "string",
          "placeholder": "name@email.com",
          "default": "",
          "description": "Email address for the contact"
        },
        {
          "displayName": "Email Bounced Date",
          "name": "otherPostalCode",
          "type": "dateTime",
          "default": "",
          "description": "If bounce management is activated and an email sent to the contact bounces, the date and time the bounce occurred"
        },
        {
          "displayName": "Email Bounced Reason",
          "name": "emailBouncedReason",
          "type": "string",
          "default": "",
          "description": "If bounce management is activated and an email sent to the contact bounces, the reason the bounce occurred"
        },
        {
          "displayName": "Fax",
          "name": "fax",
          "type": "string",
          "default": "",
          "description": "Fax number for the contact. Label is Business Fax."
        },
        {
          "displayName": "First Name",
          "name": "firstName",
          "type": "string",
          "default": "",
          "description": "First name of the contact. Maximum size is 40 characters."
        },
        {
          "displayName": "Home Phone",
          "name": "homePhone",
          "type": "string",
          "default": "",
          "description": "Home telephone number for the contact"
        },
        {
          "displayName": "Jigsaw",
          "name": "jigsaw",
          "type": "string",
          "default": "",
          "description": "References the ID of a contact in Data.com. If a contact has a value in this field, it means that a contact was imported as a contact from Data.com."
        },
        {
          "displayName": "Lead Source Name or ID",
          "name": "leadSource",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLeadSources"
          },
          "default": "",
          "description": "Source from which the lead was obtained. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Mailing City",
          "name": "mailingCity",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Mailing Country",
          "name": "mailingCountry",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Mobile Phone",
          "name": "mobilePhone",
          "type": "string",
          "default": "",
          "description": "Contact’s mobile phone number"
        },
        {
          "displayName": "Mailing Postal Code",
          "name": "mailingPostalCode",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Mailing State",
          "name": "mailingState",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Mailing Street",
          "name": "mailingStreet",
          "type": "string",
          "default": "",
          "description": "Street address for mailing address"
        },
        {
          "displayName": "Other City",
          "name": "otherCity",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Other Country",
          "name": "otherCountry",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Other Phone",
          "name": "otherPhone",
          "type": "string",
          "default": "",
          "description": "Telephone for alternate address"
        },
        {
          "displayName": "Other Postal Code",
          "name": "otherPostalCode",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Other State",
          "name": "otherState",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Other Street",
          "name": "otherStreet",
          "type": "string",
          "default": "",
          "description": "Street for alternate address"
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "The owner of the contact. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Phone",
          "name": "phone",
          "type": "string",
          "default": "",
          "description": "Phone number for the contact"
        },
        {
          "displayName": "Record Type Name or ID",
          "name": "recordTypeId",
          "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": "getRecordTypes"
          },
          "default": ""
        },
        {
          "displayName": "Salutation",
          "name": "salutation",
          "type": "string",
          "default": "",
          "description": "Honorific abbreviation, word, or phrase to be used in front of name in greetings, such as Dr. or Mrs."
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "description": "Title of the contact such as CEO or Vice President"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "description": "ID of contact that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Account Name or ID",
          "name": "acconuntId",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getAccounts"
          },
          "default": "",
          "description": "ID of the account that is the parent of this contact. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Assistant Name",
          "name": "assistantName",
          "type": "string",
          "default": "",
          "description": "The name of the assistant"
        },
        {
          "displayName": "Assistant Phone",
          "name": "Assistant Phone",
          "type": "string",
          "default": "",
          "description": "The telephone number of the assistant"
        },
        {
          "displayName": "Birth Date",
          "name": "birthdate",
          "type": "dateTime",
          "default": "",
          "description": "The birth date of the contact"
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Department",
          "name": "department",
          "type": "string",
          "default": "",
          "description": "The department of the contact"
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "A description of the contact. Label is Contact Description. Limit: 32 KB."
        },
        {
          "displayName": "Email",
          "name": "email",
          "type": "string",
          "placeholder": "name@email.com",
          "default": "",
          "description": "Email address for the contact"
        },
        {
          "displayName": "Email Bounced Date",
          "name": "emailBouncedDate",
          "type": "dateTime",
          "default": "",
          "description": "If bounce management is activated and an email sent to the contact bounces, the date and time the bounce occurred"
        },
        {
          "displayName": "Email Bounced Reason",
          "name": "emailBouncedReason",
          "type": "string",
          "default": "",
          "description": "If bounce management is activated and an email sent to the contact bounces, the reason the bounce occurred"
        },
        {
          "displayName": "Fax",
          "name": "fax",
          "type": "string",
          "default": "",
          "description": "Fax number for the contact. Label is Business Fax."
        },
        {
          "displayName": "First Name",
          "name": "firstName",
          "type": "string",
          "default": "",
          "description": "First name of the contact. Maximum size is 40 characters."
        },
        {
          "displayName": "Home Phone",
          "name": "homePhone",
          "type": "string",
          "default": "",
          "description": "Home telephone number for the contact"
        },
        {
          "displayName": "Jigsaw",
          "name": "jigsaw",
          "type": "string",
          "default": "",
          "description": "References the ID of a contact in Data.com. If a contact has a value in this field, it means that a contact was imported as a contact from Data.com."
        },
        {
          "displayName": "Last Name",
          "name": "lastName",
          "type": "string",
          "default": "",
          "description": "Last name of the contact. Limited to 80 characters."
        },
        {
          "displayName": "Lead Source Name or ID",
          "name": "leadSource",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLeadSources"
          },
          "default": "",
          "description": "Source from which the lead was obtained. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Mailing City",
          "name": "mailingCity",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Mailing Country",
          "name": "mailingCountry",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Mailing State",
          "name": "mailingState",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Mailing Street",
          "name": "mailingStreet",
          "type": "string",
          "default": "",
          "description": "Street address for mailing address"
        },
        {
          "displayName": "Mailing Postal Code",
          "name": "mailingPostalCode",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Mobile Phone",
          "name": "mobilePhone",
          "type": "string",
          "default": "",
          "description": "Contact’s mobile phone number"
        },
        {
          "displayName": "Other City",
          "name": "otherCity",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Other Country",
          "name": "otherCountry",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Other Phone",
          "name": "otherPhone",
          "type": "string",
          "default": "",
          "description": "Telephone for alternate address"
        },
        {
          "displayName": "Other Postal Code",
          "name": "otherPostalCode",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Other State",
          "name": "otherState",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Other Street",
          "name": "otherStreet",
          "type": "string",
          "default": "",
          "description": "Street for alternate address"
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "The owner of the contact. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Phone",
          "name": "phone",
          "type": "string",
          "default": "",
          "description": "Phone number for the contact"
        },
        {
          "displayName": "Record Type Name or ID",
          "name": "recordTypeId",
          "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": "getRecordTypes"
          },
          "default": ""
        },
        {
          "displayName": "Salutation",
          "name": "salutation",
          "type": "string",
          "default": "",
          "description": "Honorific abbreviation, word, or phrase to be used in front of name in greetings, such as Dr. or Mrs."
        },
        {
          "displayName": "Title",
          "name": "title",
          "type": "string",
          "default": "",
          "description": "Title of the contact such as CEO or Vice President"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "description": "ID of contact that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "description": "ID of contact that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "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": [
            "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,
        "maxValue": 100
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Conditions",
          "name": "conditionsUi",
          "placeholder": "Add Condition",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "The condition to set",
          "default": {},
          "options": [
            {
              "name": "conditionValues",
              "displayName": "Condition",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "field",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getContactFields"
                  },
                  "default": "",
                  "description": "For date, number, or boolean, please use expressions. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                },
                {
                  "displayName": "Operation",
                  "name": "operation",
                  "type": "options",
                  "options": [
                    {
                      "name": "<",
                      "value": "<"
                    },
                    {
                      "name": "<=",
                      "value": "<="
                    },
                    {
                      "name": "=",
                      "value": "equal"
                    },
                    {
                      "name": ">",
                      "value": ">"
                    },
                    {
                      "name": ">=",
                      "value": ">="
                    }
                  ],
                  "default": "equal"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "string",
          "default": "",
          "description": "Fields to include separated by ,"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "description": "ID of contact that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "addToCampaign"
          ]
        }
      }
    },
    {
      "displayName": "Campaign Name or ID",
      "name": "campaignId",
      "type": "options",
      "default": "",
      "description": "ID of the campaign that needs to be fetched. 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": [
            "contact"
          ],
          "operation": [
            "addToCampaign"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCampaigns"
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Status",
          "name": "status",
          "type": "string",
          "default": "",
          "description": "Controls the HasResponded flag on this object"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "addToCampaign"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "description": "ID of contact that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "Title of the note",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Body",
          "name": "body",
          "type": "string",
          "default": "",
          "description": "Body of the note. Limited to 32 KB."
        },
        {
          "displayName": "Is Private",
          "name": "isPrivate",
          "type": "boolean",
          "default": false,
          "description": "Whether only the note owner or a user with the “Modify All Data” permission can view the note or query it via the API"
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "ID of the user who owns the note. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ],
          "operation": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a custom object record",
          "action": "Create a custom object"
        },
        {
          "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 custom object"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a custom object record",
          "action": "Delete a custom object"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a custom object record",
          "action": "Get a custom object"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many custom object records",
          "action": "Get many custom objects"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a custom object record",
          "action": "Update a custom object"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "customObject"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Custom Object Name or ID",
      "name": "customObject",
      "type": "options",
      "default": "",
      "description": "Name of the custom object. 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": [
            "customObject"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCustomObjects"
      }
    },
    {
      "displayName": "Match Against",
      "name": "externalId",
      "type": "options",
      "default": "",
      "description": "The field to check to see if the object already exists. 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": [
            "customObject"
          ],
          "operation": [
            "upsert"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getExternalIdFields",
        "loadOptionsDependsOn": [
          "customObject"
        ]
      }
    },
    {
      "displayName": "Value to Match",
      "name": "externalIdValue",
      "type": "string",
      "default": "",
      "description": "If this value exists in the 'match against' field, update the object. Otherwise create a new one.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "customObject"
          ],
          "operation": [
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "customFieldsUi",
      "type": "fixedCollection",
      "default": {},
      "description": "Filter by custom fields",
      "options": [
        {
          "name": "customFieldsValues",
          "displayName": "Custom Field",
          "values": [
            {
              "displayName": "Field Name or ID",
              "name": "fieldId",
              "type": "options",
              "typeOptions": {
                "loadOptionsMethod": "getCustomObjectFields",
                "loadOptionsDependsOn": [
                  "customObject"
                ]
              },
              "default": "",
              "description": "The ID of the field. 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": "The value to set on custom field"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "customObject"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Custom Object Name or ID",
      "name": "customObject",
      "type": "options",
      "default": "",
      "description": "Name of the custom object. 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": [
            "customObject"
          ],
          "operation": [
            "update"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCustomObjects"
      }
    },
    {
      "displayName": "Record ID",
      "name": "recordId",
      "type": "string",
      "default": "",
      "description": "Record ID to be updated",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "customObject"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "customFieldsUi",
      "type": "fixedCollection",
      "default": {},
      "description": "Filter by custom fields",
      "options": [
        {
          "name": "customFieldsValues",
          "displayName": "Custom Field",
          "values": [
            {
              "displayName": "Field Name or ID",
              "name": "fieldId",
              "type": "options",
              "typeOptions": {
                "loadOptionsMethod": "getCustomObjectFields",
                "loadOptionsDependsOn": [
                  "customObject"
                ]
              },
              "default": "",
              "description": "The ID of the field. 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": "The value to set on custom field"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "customObject"
          ],
          "operation": [
            "update"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Custom Object Name or ID",
      "name": "customObject",
      "type": "options",
      "default": "",
      "description": "Name of the custom object. 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": [
            "customObject"
          ],
          "operation": [
            "get"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCustomObjects"
      }
    },
    {
      "displayName": "Record ID",
      "name": "recordId",
      "type": "string",
      "default": "",
      "description": "Record ID to be retrieved",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "customObject"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Custom Object Name or ID",
      "name": "customObject",
      "type": "options",
      "default": "",
      "description": "Name of the custom object. 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": [
            "customObject"
          ],
          "operation": [
            "delete"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCustomObjects"
      }
    },
    {
      "displayName": "Record ID",
      "name": "recordId",
      "type": "string",
      "default": "",
      "description": "Record ID to be deleted",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "customObject"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Custom Object Name or ID",
      "name": "customObject",
      "type": "options",
      "default": "",
      "description": "Name of the custom object. 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": [
            "customObject"
          ],
          "operation": [
            "getAll"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCustomObjects"
      }
    },
    {
      "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": [
            "customObject"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "customObject"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Conditions",
          "name": "conditionsUi",
          "placeholder": "Add Condition",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "The condition to set",
          "default": {},
          "options": [
            {
              "name": "conditionValues",
              "displayName": "Condition",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "field",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomObjectFields",
                    "loadOptionsDependsOn": [
                      "customObject"
                    ]
                  },
                  "default": "",
                  "description": "For date, number, or boolean, please use expressions. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                },
                {
                  "displayName": "Operation",
                  "name": "operation",
                  "type": "options",
                  "options": [
                    {
                      "name": "<",
                      "value": "<"
                    },
                    {
                      "name": "<=",
                      "value": "<="
                    },
                    {
                      "name": "=",
                      "value": "equal"
                    },
                    {
                      "name": ">",
                      "value": ">"
                    },
                    {
                      "name": ">=",
                      "value": ">="
                    }
                  ],
                  "default": "equal"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Field Names or IDs",
          "name": "fields",
          "type": "multiOptions",
          "typeOptions": {
            "loadOptionsMethod": "getCustomObjectFields",
            "loadOptionsDependsOn": [
              "customObject"
            ]
          },
          "default": [],
          "description": "Fields to include separated by commas. Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "customObject"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Record Type Name or ID",
          "name": "recordTypeId",
          "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": "getRecordTypes",
            "loadOptionsDependsOn": [
              "customObject"
            ]
          },
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create",
            "upsert"
          ],
          "resource": [
            "customObject"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Record Type Name or ID",
          "name": "recordTypeId",
          "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": "getRecordTypes",
            "loadOptionsDependsOn": [
              "customObject"
            ]
          },
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "customObject"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "description": "Upload a document",
          "action": "Upload a document"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "Name of the file",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "Input Binary Field",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "File Extension",
          "name": "fileExtension",
          "type": "string",
          "default": "",
          "placeholder": "pdf",
          "description": "File extension to use. If none is set, the value from the binary data will be used."
        },
        {
          "displayName": "Link To Object ID",
          "name": "linkToObjectId",
          "type": "string",
          "default": "",
          "description": "ID of the object you want to link this document to"
        },
        {
          "displayName": "Owner Name or ID",
          "name": "ownerId",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "ID of the owner of this document. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add Note",
          "value": "addNote",
          "description": "Add note to an opportunity",
          "action": "Add a note to an opportunity"
        },
        {
          "name": "Create",
          "value": "create",
          "description": "Create an opportunity",
          "action": "Create an opportunity"
        },
        {
          "name": "Create or Update",
          "value": "upsert",
          "description": "Create a new opportunity, or update the current one if it already exists (upsert)",
          "action": "Create or update an opportunity"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete an opportunity",
          "action": "Delete an opportunity"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get an opportunity",
          "action": "Get an opportunity"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many opportunities",
          "action": "Get many opportunities"
        },
        {
          "name": "Get Summary",
          "value": "getSummary",
          "description": "Returns an overview of opportunity's metadata",
          "action": "Get an opportunity summary"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update an opportunity",
          "action": "Update an opportunity"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Match Against",
      "name": "externalId",
      "type": "options",
      "default": "",
      "description": "The field to check to see if the opportunity already exists. 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": [
            "upsert"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getExternalIdFields",
        "loadOptionsDependsOn": [
          "resource"
        ]
      }
    },
    {
      "displayName": "Value to Match",
      "name": "externalIdValue",
      "type": "string",
      "default": "",
      "description": "If this value exists in the 'match against' field, update the opportunity. Otherwise create a new one.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "Required. Last name of the opportunity. Limited to 80 characters.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Close Date",
      "name": "closeDate",
      "type": "dateTime",
      "default": "",
      "description": "Required. Date when the opportunity is expected to close.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Stage Name or ID",
      "name": "stageName",
      "type": "options",
      "default": "",
      "description": "Required. Date when the opportunity is expected to close. 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",
            "upsert"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getStages"
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Account Name or ID",
          "name": "accountId",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getAccounts"
          },
          "description": "ID of the account associated with this opportunity. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Amount",
          "name": "amount",
          "type": "number",
          "typeOptions": {
            "numberPrecision": 2
          },
          "default": "",
          "description": "Estimated total sale amount"
        },
        {
          "displayName": "Campaign Name or ID",
          "name": "campaignId",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCampaigns"
          },
          "default": "",
          "description": "ID of the campaign that needs to be fetched. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "A description of the opportunity. Label is Contact Description. Limit: 32 KB."
        },
        {
          "displayName": "Forecast Category Name",
          "name": "forecastCategoryName",
          "type": "string",
          "default": "",
          "description": "It is implied, but not directly controlled, by the StageName field"
        },
        {
          "displayName": "Lead Source Name or ID",
          "name": "leadSource",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLeadSources"
          },
          "default": "",
          "description": "Source from which the lead was obtained. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Next Step",
          "name": "nextStep",
          "type": "string",
          "default": "",
          "description": "Description of next task in closing opportunity. Limit: 255 characters."
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "The owner of the opportunity. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Phone",
          "name": "phone",
          "type": "string",
          "default": "",
          "description": "Phone number for the opportunity"
        },
        {
          "displayName": "Pricebook2 ID",
          "name": "pricebook2Id",
          "type": "string",
          "default": "",
          "description": "ID of a related Pricebook2 object"
        },
        {
          "displayName": "Probability",
          "name": "probability",
          "type": "number",
          "typeOptions": {
            "numberPrecision": 1
          },
          "default": "",
          "description": "Percentage of estimated confidence in closing the opportunity"
        },
        {
          "displayName": "Type",
          "name": "type",
          "type": "options",
          "default": "",
          "options": [
            {
              "name": "Business",
              "value": "Business"
            },
            {
              "name": "New Business",
              "value": "New Business"
            }
          ],
          "description": "Type of opportunity. For example, Existing Business or New Business. Label is Opportunity Type."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Opportunity ID",
      "name": "opportunityId",
      "type": "string",
      "default": "",
      "description": "ID of opportunity that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Account Name or ID",
          "name": "accountId",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getAccounts"
          },
          "description": "ID of the account associated with this opportunity. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Amount",
          "name": "amount",
          "type": "number",
          "typeOptions": {
            "numberPrecision": 2
          },
          "default": "",
          "description": "Estimated total sale amount"
        },
        {
          "displayName": "Campaign Name or ID",
          "name": "campaignId",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCampaigns"
          },
          "default": "",
          "description": "ID of the campaign that needs to be fetched. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Close Date",
          "name": "closeDate",
          "type": "dateTime",
          "default": "",
          "description": "Required. Date when the opportunity is expected to close."
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "A description of the opportunity. Label is Contact Description. Limit: 32 KB."
        },
        {
          "displayName": "Forecast Category Name",
          "name": "forecastCategoryName",
          "type": "string",
          "default": "",
          "description": "It is implied, but not directly controlled, by the StageName field"
        },
        {
          "displayName": "Lead Source Name or ID",
          "name": "leadSource",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getLeadSources"
          },
          "default": "",
          "description": "Source from which the lead was obtained. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "Required. Last name of the opportunity. Limited to 80 characters."
        },
        {
          "displayName": "Next Step",
          "name": "nextStep",
          "type": "string",
          "default": "",
          "description": "Description of next task in closing opportunity. Limit: 255 characters."
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "The owner of the opportunity. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Phone",
          "name": "phone",
          "type": "string",
          "default": "",
          "description": "Phone number for the opportunity"
        },
        {
          "displayName": "Pricebook2 ID",
          "name": "pricebook2Id",
          "type": "string",
          "default": "",
          "description": "ID of a related Pricebook2 object"
        },
        {
          "displayName": "Probability",
          "name": "probability",
          "type": "number",
          "typeOptions": {
            "numberPrecision": 1
          },
          "default": "",
          "description": "Percentage of estimated confidence in closing the opportunity"
        },
        {
          "displayName": "Stage Name or ID",
          "name": "stageName",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getStages"
          },
          "default": "",
          "description": "Required. Date when the opportunity is expected to close. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Type",
          "name": "type",
          "type": "options",
          "default": "",
          "options": [
            {
              "name": "Business",
              "value": "Business"
            },
            {
              "name": "New Business",
              "value": "New Business"
            }
          ],
          "description": "Type of opportunity. For example, Existing Business or New Business. Label is Opportunity Type."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Opportunity ID",
      "name": "opportunityId",
      "type": "string",
      "default": "",
      "description": "ID of opportunity that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Opportunity ID",
      "name": "opportunityId",
      "type": "string",
      "default": "",
      "description": "ID of opportunity that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "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": [
            "opportunity"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Conditions",
          "name": "conditionsUi",
          "placeholder": "Add Condition",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "The condition to set",
          "default": {},
          "options": [
            {
              "name": "conditionValues",
              "displayName": "Condition",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "field",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getOpportunityFields"
                  },
                  "default": "",
                  "description": "For date, number, or boolean, please use expressions. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                },
                {
                  "displayName": "Operation",
                  "name": "operation",
                  "type": "options",
                  "options": [
                    {
                      "name": "<",
                      "value": "<"
                    },
                    {
                      "name": "<=",
                      "value": "<="
                    },
                    {
                      "name": "=",
                      "value": "equal"
                    },
                    {
                      "name": ">",
                      "value": ">"
                    },
                    {
                      "name": ">=",
                      "value": ">="
                    }
                  ],
                  "default": "equal"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "string",
          "default": "",
          "description": "Fields to include separated by ,"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Opportunity ID",
      "name": "opportunityId",
      "type": "string",
      "default": "",
      "description": "ID of opportunity that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "Title of the note",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ],
          "operation": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Body",
          "name": "body",
          "type": "string",
          "default": "",
          "description": "Body of the note. Limited to 32 KB."
        },
        {
          "displayName": "Is Private",
          "name": "isPrivate",
          "type": "boolean",
          "default": false,
          "description": "Whether true, only the note owner or a user with the “Modify All Data” permission can view the note or query it via the API"
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "ID of the user who owns the note. 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": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add Note",
          "value": "addNote",
          "description": "Add note to an account",
          "action": "Add a note to an account"
        },
        {
          "name": "Create",
          "value": "create",
          "description": "Create an account",
          "action": "Create an account"
        },
        {
          "name": "Create or Update",
          "value": "upsert",
          "description": "Create a new account, or update the current one if it already exists (upsert)",
          "action": "Create or update an account"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete an account",
          "action": "Delete an account"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get an account",
          "action": "Get an account"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many accounts",
          "action": "Get many accounts"
        },
        {
          "name": "Get Summary",
          "value": "getSummary",
          "description": "Returns an overview of account's metadata",
          "action": "Get an account summary"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update an account",
          "action": "Update an account"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Match Against",
      "name": "externalId",
      "type": "options",
      "default": "",
      "description": "The field to check to see if the account already exists. 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": [
            "account"
          ],
          "operation": [
            "upsert"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getExternalIdFields",
        "loadOptionsDependsOn": [
          "resource"
        ]
      }
    },
    {
      "displayName": "Value to Match",
      "name": "externalIdValue",
      "type": "string",
      "default": "",
      "description": "If this value exists in the 'match against' field, update the account. Otherwise create a new one.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "operation": [
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "Name of the account. Maximum size is 255 characters.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Account Number",
          "name": "accountNumber",
          "type": "string",
          "default": "",
          "description": "Account number assigned to this account (not the unique ID). Maximum size is 40 characters."
        },
        {
          "displayName": "Annual Revenue",
          "name": "annualRevenue",
          "type": "number",
          "typeOptions": {
            "numberPrecision": 2
          },
          "default": "",
          "description": "Estimated annual revenue of the account"
        },
        {
          "displayName": "Account Source Name or ID",
          "name": "accountSource",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getAccountSources"
          },
          "default": "",
          "description": "The source of the account record. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Billing City",
          "name": "billingCity",
          "type": "string",
          "default": "",
          "description": "Details for the billing address of this account. Maximum size is 40 characters."
        },
        {
          "displayName": "Billing Country",
          "name": "billingCountry",
          "type": "string",
          "default": "",
          "description": "Details for the billing address of this account. Maximum size is 80 characters."
        },
        {
          "displayName": "Billing Postal Code",
          "name": "billingPostalCode",
          "type": "string",
          "default": "",
          "description": "Details for the billing address of this account. Maximum size is 20 characters."
        },
        {
          "displayName": "Billing State",
          "name": "billingState",
          "type": "string",
          "default": "",
          "description": "Details for the billing address of this account. Maximum size is 80 characters."
        },
        {
          "displayName": "Billing Street",
          "name": "billingStreet",
          "type": "string",
          "default": "",
          "description": "Street address for the billing address of this account"
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "Text description of the account. Limited to 32,000 KB."
        },
        {
          "displayName": "Fax",
          "name": "fax",
          "type": "string",
          "default": "",
          "description": "Fax number for the account"
        },
        {
          "displayName": "Jigsaw",
          "name": "jigsaw",
          "type": "string",
          "default": "",
          "description": "References the ID of a company in Data.com"
        },
        {
          "displayName": "Industry",
          "name": "industry",
          "type": "string",
          "default": "",
          "description": "The website of this account. Maximum of 255 characters."
        },
        {
          "displayName": "Number Of Employees",
          "name": "numberOfEmployees",
          "type": "number",
          "default": ""
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "The owner of the account. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Parent ID",
          "name": "parentId",
          "type": "string",
          "default": "",
          "description": "ID of the parent object, if any"
        },
        {
          "displayName": "Phone",
          "name": "phone",
          "type": "string",
          "default": "",
          "description": "Phone number for the account"
        },
        {
          "displayName": "Record Type Name or ID",
          "name": "recordTypeId",
          "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": "getRecordTypes"
          },
          "default": ""
        },
        {
          "displayName": "SicDesc",
          "name": "sicDesc",
          "type": "string",
          "default": "",
          "description": "A brief description of an organization’s line of business, based on its SIC code"
        },
        {
          "displayName": "Type Name or ID",
          "name": "type",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getAccountTypes"
          },
          "description": "Type of account. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Shipping City",
          "name": "shippingCity",
          "type": "string",
          "default": "",
          "description": "Details of the shipping address for this account. City maximum size is 40 characters."
        },
        {
          "displayName": "Shipping Country",
          "name": "shippingCountry",
          "type": "string",
          "default": "",
          "description": "Details of the shipping address for this account. Country maximum size is 80 characters."
        },
        {
          "displayName": "Shipping Postal Code",
          "name": "shippingPostalCode",
          "type": "string",
          "default": "",
          "description": "Details of the shipping address for this account. Postal code maximum size is 20 characters."
        },
        {
          "displayName": "Shipping State",
          "name": "shippingState",
          "type": "string",
          "default": "",
          "description": "Details of the shipping address for this account. State maximum size is 80 characters."
        },
        {
          "displayName": "Shipping Street",
          "name": "shippingStreet",
          "type": "string",
          "default": "",
          "description": "The street address of the shipping address for this account. Maximum of 255 characters."
        },
        {
          "displayName": "Website",
          "name": "website",
          "type": "string",
          "default": "",
          "description": "The website of this account. Maximum of 255 characters."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "operation": [
            "create",
            "upsert"
          ]
        }
      }
    },
    {
      "displayName": "Account ID",
      "name": "accountId",
      "type": "string",
      "default": "",
      "description": "ID of account that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Account Number",
          "name": "accountNumber",
          "type": "string",
          "default": "",
          "description": "Account number assigned to this account (not the unique ID). Maximum size is 40 characters."
        },
        {
          "displayName": "Account Source Name or ID",
          "name": "accountSource",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getAccountSources"
          },
          "default": "",
          "description": "The source of the account record. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Annual Revenue",
          "name": "annualRevenue",
          "type": "number",
          "typeOptions": {
            "numberPrecision": 2
          },
          "default": "",
          "description": "Estimated annual revenue of the account"
        },
        {
          "displayName": "Billing City",
          "name": "billingCity",
          "type": "string",
          "default": "",
          "description": "Details for the billing address of this account. Maximum size is 40 characters."
        },
        {
          "displayName": "Billing Country",
          "name": "billingCountry",
          "type": "string",
          "default": "",
          "description": "Details for the billing address of this account. Maximum size is 80 characters."
        },
        {
          "displayName": "Billing Postal Code",
          "name": "billingPostalCode",
          "type": "string",
          "default": "",
          "description": "Details for the billing address of this account. Maximum size is 20 characters."
        },
        {
          "displayName": "Billing State",
          "name": "billingState",
          "type": "string",
          "default": "",
          "description": "Details for the billing address of this account. Maximum size is 80 characters."
        },
        {
          "displayName": "Billing Street",
          "name": "billingStreet",
          "type": "string",
          "default": "",
          "description": "Street address for the billing address of this account"
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "Text description of the account. Limited to 32,000 KB."
        },
        {
          "displayName": "Fax",
          "name": "fax",
          "type": "string",
          "default": "",
          "description": "Fax number for the account"
        },
        {
          "displayName": "Industry",
          "name": "industry",
          "type": "string",
          "default": "",
          "description": "The website of this account. Maximum of 255 characters."
        },
        {
          "displayName": "Jigsaw",
          "name": "jigsaw",
          "type": "string",
          "default": "",
          "description": "References the ID of a company in Data.com"
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "Name of the account. Maximum size is 255 characters."
        },
        {
          "displayName": "Number Of Employees",
          "name": "numberOfEmployees",
          "type": "number",
          "default": ""
        },
        {
          "displayName": "Owner Name or ID",
          "name": "ownerId",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "The owner of the account. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Parent ID",
          "name": "parentId",
          "type": "string",
          "default": "",
          "description": "ID of the parent object, if any"
        },
        {
          "displayName": "Phone",
          "name": "phone",
          "type": "string",
          "default": "",
          "description": "Phone number for the account"
        },
        {
          "displayName": "Record Type Name or ID",
          "name": "recordTypeId",
          "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": "getRecordTypes"
          },
          "default": ""
        },
        {
          "displayName": "SicDesc",
          "name": "sicDesc",
          "type": "string",
          "default": "",
          "description": "A brief description of an organization’s line of business, based on its SIC code"
        },
        {
          "displayName": "Shipping City",
          "name": "shippingCity",
          "type": "string",
          "default": "",
          "description": "Details of the shipping address for this account. City maximum size is 40 characters."
        },
        {
          "displayName": "Shipping Country",
          "name": "shippingCountry",
          "type": "string",
          "default": "",
          "description": "Details of the shipping address for this account. Country maximum size is 80 characters."
        },
        {
          "displayName": "Shipping Postal Code",
          "name": "shippingPostalCode",
          "type": "string",
          "default": "",
          "description": "Details of the shipping address for this account. Postal code maximum size is 20 characters."
        },
        {
          "displayName": "Shipping State",
          "name": "shippingState",
          "type": "string",
          "default": "",
          "description": "Details of the shipping address for this account. State maximum size is 80 characters."
        },
        {
          "displayName": "Shipping Street",
          "name": "shippingStreet",
          "type": "string",
          "default": "",
          "description": "The street address of the shipping address for this account. Maximum of 255 characters."
        },
        {
          "displayName": "Type Name or ID",
          "name": "type",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getAccountTypes"
          },
          "description": "Type of account. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Website",
          "name": "website",
          "type": "string",
          "default": "",
          "description": "The website of this account. Maximum of 255 characters."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Account ID",
      "name": "accountId",
      "type": "string",
      "default": "",
      "description": "ID of account that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Account ID",
      "name": "accountId",
      "type": "string",
      "default": "",
      "description": "ID of account that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "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": [
            "account"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "string",
          "default": "",
          "description": "Fields to include separated by ,"
        },
        {
          "displayName": "Conditions",
          "name": "conditionsUi",
          "placeholder": "Add Condition",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "The condition to set",
          "default": {},
          "options": [
            {
              "name": "conditionValues",
              "displayName": "Condition",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "field",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getAccountFields"
                  },
                  "default": "",
                  "description": "For date, number, or boolean, please use expressions. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                },
                {
                  "displayName": "Operation",
                  "name": "operation",
                  "type": "options",
                  "noDataExpression": true,
                  "options": [
                    {
                      "name": "<",
                      "value": "<"
                    },
                    {
                      "name": "<=",
                      "value": "<="
                    },
                    {
                      "name": "=",
                      "value": "equal"
                    },
                    {
                      "name": ">",
                      "value": ">"
                    },
                    {
                      "name": ">=",
                      "value": ">="
                    }
                  ],
                  "default": "equal"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Account ID",
      "name": "accountId",
      "type": "string",
      "default": "",
      "description": "ID of account that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "operation": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "description": "Title of the note",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "operation": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Body",
          "name": "body",
          "type": "string",
          "default": "",
          "description": "Body of the note. Limited to 32 KB."
        },
        {
          "displayName": "Is Private",
          "name": "isPrivate",
          "type": "boolean",
          "default": false,
          "description": "Whether true, only the note owner or a user with the “Modify All Data” permission can view the note or query it via the API"
        },
        {
          "displayName": "Owner Name or ID",
          "name": "ownerId",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "ID of the user who owns the note. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ],
          "operation": [
            "addNote"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "query",
      "options": [
        {
          "name": "Query",
          "value": "query",
          "description": "Execute a SOQL query that returns all the results in a single response",
          "action": "Perform a query"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Query",
      "name": "query",
      "type": "string",
      "default": "",
      "description": "A SOQL query. An example query parameter string might look like: “SELECT+Name+FROM+MyObject”. If the SOQL query string is invalid, a MALFORMED_QUERY response is returned.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ],
          "operation": [
            "query"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add Comment",
          "value": "addComment",
          "description": "Add a comment to a case",
          "action": "Add a comment to a case"
        },
        {
          "name": "Create",
          "value": "create",
          "description": "Create a case",
          "action": "Create a case"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a case",
          "action": "Delete a case"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a case",
          "action": "Get a case"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many cases",
          "action": "Get many cases"
        },
        {
          "name": "Get Summary",
          "value": "getSummary",
          "description": "Returns an overview of case's metadata",
          "action": "Get a case summary"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a case",
          "action": "Update a case"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Type Name or ID",
      "name": "type",
      "type": "options",
      "default": "",
      "description": "The type of case. 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": [
            "case"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getCaseTypes"
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Account ID",
          "name": "accountId",
          "type": "string",
          "default": "",
          "description": "ID of the account associated with this case"
        },
        {
          "displayName": "Contact ID",
          "name": "contactId",
          "type": "string",
          "default": "",
          "description": "ID of the associated Contact"
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "A text description of the case. Limit: 32 KB."
        },
        {
          "displayName": "Is Escalated",
          "name": "isEscalated",
          "type": "boolean",
          "default": false,
          "description": "Whether indicates whether the case has been escalated (true) or not"
        },
        {
          "displayName": "Origin Name or ID",
          "name": "origin",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCaseOrigins"
          },
          "default": "",
          "description": "The source of the case, such as Email, Phone, or Web. Label is Case Origin. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCaseOwners"
          },
          "default": "",
          "description": "The owner of the case. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Parent ID",
          "name": "ParentId",
          "type": "string",
          "default": "",
          "description": "The ID of the parent case in the hierarchy. The label is Parent Case."
        },
        {
          "displayName": "Priority Name or ID",
          "name": "priority",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCasePriorities"
          },
          "default": "",
          "description": "The importance or urgency of the case, such as High, Medium, or Low. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Reason Name or ID",
          "name": "reason",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCaseReasons"
          },
          "default": "",
          "description": "The reason why the case was created, such as Instructions not clear, or User didn’t attend training. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Record Type Name or ID",
          "name": "recordTypeId",
          "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": "getRecordTypes"
          },
          "default": ""
        },
        {
          "displayName": "Status Name or ID",
          "name": "status",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCaseStatuses"
          },
          "default": "",
          "description": "The status of the case, such as “New,” “Closed,” or “Escalated.” This field directly controls the IsClosed flag. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Subject",
          "name": "subject",
          "type": "string",
          "default": "",
          "description": "The subject of the case. Limit: 255 characters."
        },
        {
          "displayName": "Supplied Company",
          "name": "suppliedCompany",
          "type": "string",
          "default": "",
          "description": "The company name that was entered when the case was created. This field can't be updated after the case has been created.."
        },
        {
          "displayName": "Supplied Email",
          "name": "suppliedEmail",
          "type": "string",
          "default": "",
          "description": "The email address that was entered when the case was created. This field can't be updated after the case has been created."
        },
        {
          "displayName": "Supplied Name",
          "name": "suppliedName",
          "type": "string",
          "default": "",
          "description": "The name that was entered when the case was created. This field can't be updated after the case has been created."
        },
        {
          "displayName": "Supplied Phone",
          "name": "suppliedPhone",
          "type": "string",
          "default": "",
          "description": "The phone number that was entered when the case was created. This field can't be updated after the case has been created."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Case ID",
      "name": "caseId",
      "type": "string",
      "default": "",
      "description": "ID of case that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Account ID",
          "name": "accountId",
          "type": "string",
          "default": "",
          "description": "ID of the account associated with this case"
        },
        {
          "displayName": "Contact ID",
          "name": "contactId",
          "type": "string",
          "default": "",
          "description": "ID of the associated Contact"
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "A text description of the case. Limit: 32 KB."
        },
        {
          "displayName": "Is Escalated",
          "name": "isEscalated",
          "type": "boolean",
          "default": false,
          "description": "Whether the case has been escalated (true) or not"
        },
        {
          "displayName": "Origin Name or ID",
          "name": "origin",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCaseOrigins"
          },
          "default": "",
          "description": "The source of the case, such as Email, Phone, or Web. Label is Case Origin. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCaseOwners"
          },
          "default": "",
          "description": "The owner of the case. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Parent ID",
          "name": "ParentId",
          "type": "string",
          "default": "",
          "description": "The ID of the parent case in the hierarchy. The label is Parent Case."
        },
        {
          "displayName": "Priority Name or ID",
          "name": "priority",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCasePriorities"
          },
          "default": "",
          "description": "The importance or urgency of the case, such as High, Medium, or Low. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Reason Name or ID",
          "name": "reason",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCaseReasons"
          },
          "default": "",
          "description": "The reason why the case was created, such as Instructions not clear, or User didn’t attend training. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Record Type Name or ID",
          "name": "recordTypeId",
          "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": "getRecordTypes"
          },
          "default": ""
        },
        {
          "displayName": "Status Name or ID",
          "name": "status",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCaseStatuses"
          },
          "default": "",
          "description": "The status of the case, such as “New,” “Closed,” or “Escalated.” This field directly controls the IsClosed flag. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Subject",
          "name": "subject",
          "type": "string",
          "default": "",
          "description": "The subject of the case. Limit: 255 characters."
        },
        {
          "displayName": "Supplied Company",
          "name": "suppliedCompany",
          "type": "string",
          "default": "",
          "description": "The company name that was entered when the case was created. This field can't be updated after the case has been created.."
        },
        {
          "displayName": "Supplied Email",
          "name": "suppliedEmail",
          "type": "string",
          "default": "",
          "description": "The email address that was entered when the case was created. This field can't be updated after the case has been created."
        },
        {
          "displayName": "Supplied Name",
          "name": "suppliedName",
          "type": "string",
          "default": "",
          "description": "The name that was entered when the case was created. This field can't be updated after the case has been created."
        },
        {
          "displayName": "Supplied Phone",
          "name": "suppliedPhone",
          "type": "string",
          "default": "",
          "description": "The phone number that was entered when the case was created. This field can't be updated after the case has been created."
        },
        {
          "displayName": "Type Name or ID",
          "name": "type",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getCaseTypes"
          },
          "default": "",
          "description": "The type of case. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Case ID",
      "name": "caseId",
      "type": "string",
      "default": "",
      "description": "ID of case that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Case ID",
      "name": "caseId",
      "type": "string",
      "default": "",
      "description": "ID of case that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ],
          "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": [
            "case"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Conditions",
          "name": "conditionsUi",
          "placeholder": "Add Condition",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "The condition to set",
          "default": {},
          "options": [
            {
              "name": "conditionValues",
              "displayName": "Condition",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "field",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCaseFields"
                  },
                  "default": "",
                  "description": "For date, number, or boolean, please use expressions. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                },
                {
                  "displayName": "Operation",
                  "name": "operation",
                  "type": "options",
                  "options": [
                    {
                      "name": "<",
                      "value": "<"
                    },
                    {
                      "name": "<=",
                      "value": "<="
                    },
                    {
                      "name": "=",
                      "value": "equal"
                    },
                    {
                      "name": ">",
                      "value": ">"
                    },
                    {
                      "name": ">=",
                      "value": ">="
                    }
                  ],
                  "default": "equal"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "string",
          "default": "",
          "description": "Fields to include separated by ,"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Case ID",
      "name": "caseId",
      "type": "string",
      "default": "",
      "description": "ID of case that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ],
          "operation": [
            "addComment"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Comment Body",
          "name": "commentBody",
          "type": "string",
          "default": "",
          "description": "Text of the CaseComment. The maximum size of the comment body is 4,000 bytes. Label is Body."
        },
        {
          "displayName": "Is Published",
          "name": "isPublished",
          "type": "boolean",
          "default": false,
          "description": "Whether the CaseComment is visible to customers in the Self-Service portal (true) or not (false)"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ],
          "operation": [
            "addComment"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "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 a task",
          "action": "Get a task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many tasks",
          "action": "Get many tasks"
        },
        {
          "name": "Get Summary",
          "value": "getSummary",
          "description": "Returns an overview of task's metadata",
          "action": "Get a task summary"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a task",
          "action": "Update a task"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Status Name or ID",
      "name": "status",
      "type": "options",
      "default": "",
      "description": "The current status of the task, such as In Progress or Completed. 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": "getTaskStatuses"
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Activity Date",
          "name": "activityDate",
          "type": "dateTime",
          "default": "",
          "description": "Represents the due date of the task. This field has a timestamp that is always set to midnight in the Coordinated Universal Time (UTC) time zone."
        },
        {
          "displayName": "Call Disposition",
          "name": "callDisposition",
          "type": "string",
          "default": "",
          "description": "Represents the result of a given call, for example, “we'll call back,” or “call unsuccessful.” Limit is 255 characters. Not subject to field-level security, available for any user in an organization with Salesforce CRM Call Center."
        },
        {
          "displayName": "Call Duration In Seconds",
          "name": "callDurationInSeconds",
          "type": "number",
          "default": "",
          "description": "Duration of the call in seconds. Not subject to field-level security, available for any user in an organization with Salesforce CRM Call Center."
        },
        {
          "displayName": "Call Object",
          "name": "callObject",
          "type": "string",
          "default": "",
          "description": "Name of a call center. Limit is 255 characters. Not subject to field-level security, available for any user in an organization with Salesforce CRM Call Center."
        },
        {
          "displayName": "Call Type Name or ID",
          "name": "callType",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getTaskCallTypes"
          },
          "description": "The type of call being answered: Inbound, Internal, or Outbound. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "Contains a text description of the task"
        },
        {
          "displayName": "Is ReminderSet",
          "name": "isReminderSet",
          "type": "boolean",
          "default": false,
          "description": "Whether a popup reminder has been set for the task (true) or not (false)"
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "ID of the User who owns the record. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Priority Name or ID",
          "name": "priority",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getTaskPriorities"
          },
          "description": "Indicates the importance or urgency of a task, such as high or low. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Recurrence Type Name or ID",
          "name": "recurrenceType",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getTaskRecurrenceTypes"
          },
          "description": "Recurrence Type of the task. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Recurrence Instance Name or ID",
          "name": "recurrenceInstance",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getTaskRecurrenceInstances"
          },
          "default": "",
          "description": "The frequency of the recurring task. For example, “2nd” or “3rd.”. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Recurrence Interval",
          "name": "recurrenceInterval",
          "type": "number",
          "default": "",
          "description": "The interval between recurring tasks"
        },
        {
          "displayName": "Recurrence Day Of Month",
          "name": "recurrenceDayOfMonth",
          "type": "number",
          "default": "",
          "description": "The day of the month in which the task repeats"
        },
        {
          "displayName": "Recurrence Day Of Week Mask",
          "name": "recurrenceDayOfWeekMask",
          "type": "number",
          "default": "",
          "description": "The day or days of the week on which the task repeats. This field contains a bitmask. The values are as follows: Sunday = 1 Monday = 2 Tuesday = 4 Wednesday = 8 Thursday = 16 Friday = 32 Saturday = 64 Multiple days are represented as the sum of their numerical values. For example, Tuesday and Thursday = 4 + 16 = 20."
        },
        {
          "displayName": "Recurrence End Date Only",
          "name": "recurrenceEndDateOnly",
          "type": "dateTime",
          "default": "",
          "description": "The last date on which the task repeats. This field has a timestamp that is always set to midnight in the Coordinated Universal Time (UTC) time zone."
        },
        {
          "displayName": "Recurrence Month Of Year",
          "name": "recurrenceMonthOfYear",
          "type": "options",
          "options": [
            {
              "name": "January",
              "value": "January"
            },
            {
              "name": "February",
              "value": "February"
            },
            {
              "name": "March",
              "value": "March"
            },
            {
              "name": "April",
              "value": "April"
            },
            {
              "name": "May",
              "value": "May"
            },
            {
              "name": "June",
              "value": "June"
            },
            {
              "name": "July",
              "value": "July"
            },
            {
              "name": "August",
              "value": "August"
            },
            {
              "name": "September",
              "value": "September"
            },
            {
              "name": "October",
              "value": "October"
            },
            {
              "name": "November",
              "value": "November"
            },
            {
              "name": "December",
              "value": "December"
            }
          ],
          "default": "",
          "description": "The month of the year in which the task repeats"
        },
        {
          "displayName": "Recurrence Regenerated Type",
          "name": "recurrenceRegeneratedType",
          "type": "options",
          "default": "",
          "options": [
            {
              "name": "After Due Date",
              "value": "RecurrenceRegenerateAfterDueDate"
            },
            {
              "name": "After Date Completed",
              "value": "RecurrenceRegenerateAfterToday"
            },
            {
              "name": "(Task Closed)",
              "value": "RecurrenceRegenerated"
            }
          ],
          "description": "Represents what triggers a repeating task to repeat. Add this field to a page layout together with the RecurrenceInterval field, which determines the number of days between the triggering date (due date or close date) and the due date of the next repeating task in the series. Label is Repeat This Task."
        },
        {
          "displayName": "Recurrence Start Date Only",
          "name": "recurrenceEndDateOnly",
          "type": "dateTime",
          "default": "",
          "description": "The date when the recurring task begins. Must be a date and time before RecurrenceEndDateOnly."
        },
        {
          "displayName": "Recurrence TimeZone SidKey",
          "name": "recurrenceTimeZoneSidKey",
          "type": "string",
          "default": "",
          "description": "The time zone associated with the recurring task. For example, “UTC-8:00” for Pacific Standard Time."
        },
        {
          "displayName": "Reminder Date Time",
          "name": "reminderDateTime",
          "type": "dateTime",
          "default": "",
          "description": "Represents the time when the reminder is scheduled to fire, if IsReminderSet is set to true. If IsReminderSet is set to false, then the user may have deselected the reminder checkbox in the Salesforce user interface, or the reminder has already fired at the time indicated by the value."
        },
        {
          "displayName": "Subject Name or ID",
          "name": "subject",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getTaskSubjects"
          },
          "description": "The subject line of the task, such as “Call” or “Send Quote.” Limit: 255 characters. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Type Name or ID",
          "name": "type",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getTaskTypes"
          },
          "description": "Represents Type of the task, such as Call or Meeting. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "What ID",
          "name": "whatId",
          "type": "string",
          "default": "",
          "description": "The WhatId represents nonhuman objects such as accounts, opportunities, campaigns, cases, or custom objects. WhatIds are polymorphic. Polymorphic means a WhatId is equivalent to the ID of a related object."
        },
        {
          "displayName": "Who ID",
          "name": "whoId",
          "type": "string",
          "default": "",
          "description": "The WhoId represents a human such as a lead or a contact. WhoIds are polymorphic. Polymorphic means a WhoId is equivalent to a contact’s ID or a lead’s ID."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Task ID",
      "name": "taskId",
      "type": "string",
      "default": "",
      "description": "ID of task that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Activity Date",
          "name": "activityDate",
          "type": "dateTime",
          "default": "",
          "description": "Represents the due date of the task. This field has a timestamp that is always set to midnight in the Coordinated Universal Time (UTC) time zone."
        },
        {
          "displayName": "Call Disposition",
          "name": "callDisposition",
          "type": "string",
          "default": "",
          "description": "Represents the result of a given call, for example, “we'll call back,” or “call unsuccessful.” Limit is 255 characters. Not subject to field-level security, available for any user in an organization with Salesforce CRM Call Center."
        },
        {
          "displayName": "Call Duration In Seconds",
          "name": "callDurationInSeconds",
          "type": "number",
          "default": "",
          "description": "Duration of the call in seconds. Not subject to field-level security, available for any user in an organization with Salesforce CRM Call Center."
        },
        {
          "displayName": "Call Object",
          "name": "callObject",
          "type": "string",
          "default": "",
          "description": "Name of a call center. Limit is 255 characters. Not subject to field-level security, available for any user in an organization with Salesforce CRM Call Center."
        },
        {
          "displayName": "Call Type Name or ID",
          "name": "callType",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getTaskCallTypes"
          },
          "description": "The type of call being answered: Inbound, Internal, or Outbound. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "placeholder": "Add Custom Field",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "Filter by custom fields",
          "default": {},
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "fieldId",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getCustomFields"
                  },
                  "default": "",
                  "description": "The ID of the field to add custom field to. 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": "The value to set on custom field"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "Contains a text description of the task"
        },
        {
          "displayName": "Is ReminderSet",
          "name": "isReminderSet",
          "type": "boolean",
          "default": false,
          "description": "Whether a popup reminder has been set for the task (true) or not (false)"
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "ID of the User who owns the record. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Priority Name or ID",
          "name": "priority",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getTaskPriorities"
          },
          "description": "Indicates the importance or urgency of a task, such as high or low. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Status Name or ID",
          "name": "status",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getTaskStatuses"
          },
          "description": "The current status of the task, such as In Progress or Completed. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Subject Name or ID",
          "name": "subject",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getTaskSubjects"
          },
          "description": "The subject line of the task, such as “Call” or “Send Quote.” Limit: 255 characters. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Recurrence Day Of Month",
          "name": "recurrenceDayOfMonth",
          "type": "number",
          "default": "",
          "description": "The day of the month in which the task repeats"
        },
        {
          "displayName": "Recurrence Day Of Week Mask",
          "name": "recurrenceDayOfWeekMask",
          "type": "number",
          "default": "",
          "description": "The day or days of the week on which the task repeats. This field contains a bitmask. The values are as follows: Sunday = 1 Monday = 2 Tuesday = 4 Wednesday = 8 Thursday = 16 Friday = 32 Saturday = 64. Multiple days are represented as the sum of their numerical values. For example, Tuesday and Thursday = 4 + 16 = 20."
        },
        {
          "displayName": "Recurrence End Date Only",
          "name": "recurrenceEndDateOnly",
          "type": "dateTime",
          "default": "",
          "description": "The last date on which the task repeats. This field has a timestamp that is always set to midnight in the Coordinated Universal Time (UTC) time zone."
        },
        {
          "displayName": "Recurrence Instance Name or ID",
          "name": "recurrenceInstance",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getTaskRecurrenceInstances"
          },
          "default": "",
          "description": "The frequency of the recurring task. For example, “2nd” or “3rd.”. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Recurrence Interval",
          "name": "recurrenceInterval",
          "type": "number",
          "default": "",
          "description": "The interval between recurring tasks"
        },
        {
          "displayName": "Recurrence Month Of Year",
          "name": "recurrenceMonthOfYear",
          "type": "options",
          "options": [
            {
              "name": "January",
              "value": "January"
            },
            {
              "name": "February",
              "value": "February"
            },
            {
              "name": "March",
              "value": "March"
            },
            {
              "name": "April",
              "value": "April"
            },
            {
              "name": "May",
              "value": "May"
            },
            {
              "name": "June",
              "value": "June"
            },
            {
              "name": "July",
              "value": "July"
            },
            {
              "name": "August",
              "value": "August"
            },
            {
              "name": "September",
              "value": "September"
            },
            {
              "name": "October",
              "value": "October"
            },
            {
              "name": "November",
              "value": "November"
            },
            {
              "name": "December",
              "value": "December"
            }
          ],
          "default": "",
          "description": "The month of the year in which the task repeats"
        },
        {
          "displayName": "Recurrence Start Date Only",
          "name": "recurrenceEndDateOnly",
          "type": "dateTime",
          "default": "",
          "description": "The date when the recurring task begins. Must be a date and time before RecurrenceEndDateOnly."
        },
        {
          "displayName": "Recurrence Regenerated Type",
          "name": "recurrenceRegeneratedType",
          "type": "options",
          "default": "",
          "options": [
            {
              "name": "After Due Date",
              "value": "RecurrenceRegenerateAfterDueDate"
            },
            {
              "name": "After Date Completed",
              "value": "RecurrenceRegenerateAfterToday"
            },
            {
              "name": "(Task Closed)",
              "value": "RecurrenceRegenerated"
            }
          ],
          "description": "Represents what triggers a repeating task to repeat. Add this field to a page layout together with the RecurrenceInterval field, which determines the number of days between the triggering date (due date or close date) and the due date of the next repeating task in the series. Label is Repeat This Task."
        },
        {
          "displayName": "Recurrence Type Name or ID",
          "name": "recurrenceType",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getTaskRecurrenceTypes"
          },
          "description": "Website for the task. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Recurrence TimeZone SidKey",
          "name": "recurrenceTimeZoneSidKey",
          "type": "string",
          "default": "",
          "description": "The time zone associated with the recurring task. For example, “UTC-8:00” for Pacific Standard Time."
        },
        {
          "displayName": "Reminder Date Time",
          "name": "reminderDateTime",
          "type": "dateTime",
          "default": "",
          "description": "Represents the time when the reminder is scheduled to fire, if IsReminderSet is set to true. If IsReminderSet is set to false, then the user may have deselected the reminder checkbox in the Salesforce user interface, or the reminder has already fired at the time indicated by the value."
        },
        {
          "displayName": "Type Name or ID",
          "name": "type",
          "type": "options",
          "default": "",
          "typeOptions": {
            "loadOptionsMethod": "getTaskTypes"
          },
          "description": "Represents Type of the task, such as Call or Meeting. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "What ID",
          "name": "whatId",
          "type": "string",
          "default": "",
          "description": "The WhatId represents nonhuman objects such as accounts, opportunities, campaigns, cases, or custom objects. WhatIds are polymorphic. Polymorphic means a WhatId is equivalent to the ID of a related object."
        },
        {
          "displayName": "Who ID",
          "name": "whoId",
          "type": "string",
          "default": "",
          "description": "The WhoId represents a human such as a lead or a contact. WhoIds are polymorphic. Polymorphic means a WhoId is equivalent to a contact’s ID or a lead’s ID."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Task ID",
      "name": "taskId",
      "type": "string",
      "default": "",
      "description": "ID of task that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Task ID",
      "name": "taskId",
      "type": "string",
      "default": "",
      "description": "ID of task that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "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": [
            "task"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Conditions",
          "name": "conditionsUi",
          "placeholder": "Add Condition",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "The condition to set",
          "default": {},
          "options": [
            {
              "name": "conditionValues",
              "displayName": "Condition",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "field",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getTaskFields"
                  },
                  "default": "",
                  "description": "For date, number, or boolean, please use expressions. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                },
                {
                  "displayName": "Operation",
                  "name": "operation",
                  "type": "options",
                  "options": [
                    {
                      "name": "<",
                      "value": "<"
                    },
                    {
                      "name": "<=",
                      "value": "<="
                    },
                    {
                      "name": "=",
                      "value": "equal"
                    },
                    {
                      "name": ">",
                      "value": ">"
                    },
                    {
                      "name": ">=",
                      "value": ">="
                    }
                  ],
                  "default": "equal"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "string",
          "default": "",
          "description": "Fields to include separated by ,"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a attachment",
          "action": "Create an attachment"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a attachment",
          "action": "Delete an attachment"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a attachment",
          "action": "Get an attachment"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many attachments",
          "action": "Get many attachments"
        },
        {
          "name": "Get Summary",
          "value": "getSummary",
          "description": "Returns an overview of attachment's metadata",
          "action": "Get an attachment summary"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a attachment",
          "action": "Update an attachment"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Parent ID",
      "name": "parentId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "Required. Name of the attached file. Maximum size is 255 characters. Label is File Name.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Input Binary Field",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "Text description of the Document. Limit: 255 characters."
        },
        {
          "displayName": "Is Private",
          "name": "isPrivate",
          "type": "boolean",
          "default": false,
          "description": "Whether this record is viewable only by the owner and administrators (true) or viewable by all otherwise-allowed users (false)"
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "ID of the User who owns the attachment. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Attachment ID",
      "name": "attachmentId",
      "type": "string",
      "default": "",
      "description": "ID of attachment that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Input Binary Field",
          "name": "binaryPropertyName",
          "type": "string",
          "default": "data",
          "placeholder": "",
          "hint": "The name of the input binary field containing the file to be uploaded"
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "Text description of the Document. Limit: 255 characters."
        },
        {
          "displayName": "Is Private",
          "name": "isPrivate",
          "type": "boolean",
          "default": false,
          "description": "Whether this record is viewable only by the owner and administrators (true) or viewable by all otherwise-allowed users (false)"
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "Required. Name of the attached file. Maximum size is 255 characters. Label is File Name."
        },
        {
          "displayName": "Owner Name or ID",
          "name": "owner",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getUsers"
          },
          "default": "",
          "description": "ID of the User who owns the attachment. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Attachment ID",
      "name": "attachmentId",
      "type": "string",
      "default": "",
      "description": "ID of attachment that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Attachment ID",
      "name": "attachmentId",
      "type": "string",
      "default": "",
      "description": "ID of attachment that needs to be fetched",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ],
          "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": [
            "attachment"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 100
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Conditions",
          "name": "conditionsUi",
          "placeholder": "Add Condition",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "The condition to set",
          "default": {},
          "options": [
            {
              "name": "conditionValues",
              "displayName": "Condition",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "field",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getAtachmentFields"
                  },
                  "default": "",
                  "description": "For date, number, or boolean, please use expressions. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                },
                {
                  "displayName": "Operation",
                  "name": "operation",
                  "type": "options",
                  "options": [
                    {
                      "name": "<",
                      "value": "<"
                    },
                    {
                      "name": "<=",
                      "value": "<="
                    },
                    {
                      "name": "=",
                      "value": "equal"
                    },
                    {
                      "name": ">",
                      "value": ">"
                    },
                    {
                      "name": ">=",
                      "value": ">="
                    }
                  ],
                  "default": "equal"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "string",
          "default": "",
          "description": "Fields to include separated by ,"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "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"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "ID of user that needs to be fetched",
      "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": [
            "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": 100
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Conditions",
          "name": "conditionsUi",
          "placeholder": "Add Condition",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "description": "The condition to set",
          "default": {},
          "options": [
            {
              "name": "conditionValues",
              "displayName": "Condition",
              "values": [
                {
                  "displayName": "Field Name or ID",
                  "name": "field",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getUserFields"
                  },
                  "default": "",
                  "description": "For date, number, or boolean, please use expressions. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                },
                {
                  "displayName": "Operation",
                  "name": "operation",
                  "type": "options",
                  "options": [
                    {
                      "name": "<",
                      "value": "<"
                    },
                    {
                      "name": "<=",
                      "value": "<="
                    },
                    {
                      "name": "=",
                      "value": "equal"
                    },
                    {
                      "name": ">",
                      "value": ">"
                    },
                    {
                      "name": ">=",
                      "value": ">="
                    }
                  ],
                  "default": "equal"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "string",
          "default": "",
          "description": "Fields to include separated by ,"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "invoke",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many flows",
          "action": "Get many flows"
        },
        {
          "name": "Invoke",
          "value": "invoke",
          "description": "Invoke a flow",
          "action": "Invoke a flow"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "flow"
          ]
        }
      },
      "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": [
            "flow"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "flow"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "API Name",
      "name": "apiName",
      "type": "string",
      "default": "",
      "description": "Required. API name of the flow.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "flow"
          ],
          "operation": [
            "invoke"
          ]
        }
      }
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "description": "Whether the input variables should be set via the value-key pair UI or JSON/RAW",
      "displayOptions": {
        "show": {
          "resource": [
            "flow"
          ],
          "operation": [
            "invoke"
          ]
        }
      }
    },
    {
      "displayName": "Variables",
      "name": "variablesJson",
      "type": "json",
      "default": "",
      "description": "Input variables as JSON object",
      "displayOptions": {
        "show": {
          "resource": [
            "flow"
          ],
          "operation": [
            "invoke"
          ],
          "jsonParameters": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Variables",
      "name": "variablesUi",
      "type": "fixedCollection",
      "default": {},
      "description": "The input variable to send",
      "options": [
        {
          "displayName": "Variable",
          "name": "variablesValues",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": "",
              "description": "Name of the input variable"
            },
            {
              "displayName": "Value",
              "name": "value",
              "type": "string",
              "default": "",
              "description": "Value of the input variable"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "flow"
          ],
          "operation": [
            "invoke"
          ],
          "jsonParameters": [
            false
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    }
  ]

operations:
  [
    {
      "operation": "addToCampaign",
      "name": "Add Lead To Campaign",
      "description": "Add lead to a campaign"
    },
    {
      "operation": "addNote",
      "name": "Add Note",
      "description": "Add note to a lead"
    },
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a lead"
    },
    {
      "operation": "upsert",
      "name": "Create or Update",
      "description": "Create a new lead, or update the current one if it already exists (upsert)"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a lead"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a lead"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many leads"
    },
    {
      "operation": "getSummary",
      "name": "Get Summary",
      "description": "Returns an overview of Lead's metadata"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a lead"
    }
  ]

credentials_required:
  [
    {
      "name": "salesforceOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    },
    {
      "name": "salesforceJwtApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "jwt"
          ]
        }
      }
    }
  ]


