# nodes

node_type: n8n-nodes-anytype.anytype
package_name: n8n-nodes-anytype
display_name: Anytype
description: Interact with the Anytype API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: splch
author_github_url: https://github.com/splch/
npm_package_name: n8n-nodes-anytype
npm_version: 0.1.4
community_fetched_at: 2026-03-25T21:19:40.500Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "object",
      "options": [
        {
          "name": "List",
          "value": "list"
        },
        {
          "name": "Member",
          "value": "member"
        },
        {
          "name": "Object",
          "value": "object"
        },
        {
          "name": "Property",
          "value": "property"
        },
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Space",
          "value": "space"
        },
        {
          "name": "Tag",
          "value": "tag"
        },
        {
          "name": "Template",
          "value": "template"
        },
        {
          "name": "Type",
          "value": "type"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "globalSearch",
      "options": [
        {
          "name": "Search Globally",
          "value": "globalSearch",
          "action": "Search objects across all spaces",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/search",
              "body": "={{$parameter.body}}",
              "method": "POST"
            }
          },
          "description": "Search objects across all spaces"
        },
        {
          "name": "Search in Space",
          "value": "spaceSearch",
          "action": "Search objects within a space",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/search",
              "body": "={{$parameter.body}}",
              "method": "POST"
            }
          },
          "description": "Search objects within a specific space"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many spaces",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/spaces",
              "method": "GET"
            }
          },
          "description": "Get many spaces"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a space",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/spaces",
              "body": "={{$parameter.body}}",
              "method": "POST"
            }
          },
          "description": "Create a space"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a space",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}",
              "method": "GET"
            }
          },
          "description": "Get a space"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a space",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}",
              "body": "={{$parameter.body}}",
              "method": "PATCH"
            }
          },
          "description": "Update a space"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getViews",
      "options": [
        {
          "name": "Add Objects",
          "value": "addObjects",
          "action": "Add objects to a list",
          "routing": {
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/lists/{{$parameter.listId}}/objects",
              "body": "={{$parameter.body}}",
              "method": "POST"
            }
          },
          "description": "Add objects to a list (collection)"
        },
        {
          "name": "Remove Object",
          "value": "removeObject",
          "action": "Remove an object from a list",
          "routing": {
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/lists/{{$parameter.listId}}/objects/{{$parameter.objectId}}",
              "method": "DELETE"
            }
          },
          "description": "Remove an object from a list (collection)"
        },
        {
          "name": "Get Views",
          "value": "getViews",
          "action": "Get list views",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/lists/{{$parameter.listId}}/views",
              "method": "GET"
            }
          },
          "description": "Get views for a list"
        },
        {
          "name": "Get Objects",
          "value": "getObjects",
          "action": "Get objects in a list view",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/lists/{{$parameter.listId}}/views/{{$parameter.viewId}}/objects",
              "method": "GET"
            }
          },
          "description": "Get objects in a list view"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "list"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "List members",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/members",
              "method": "GET"
            }
          },
          "description": "List members in a space"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a member",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/members/{{$parameter.memberId}}",
              "method": "GET"
            }
          },
          "description": "Get a single member"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an object",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/objects",
              "body": "={{$parameter.body}}",
              "method": "POST"
            }
          },
          "description": "Create a new object in a space"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an object",
          "routing": {
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/objects/{{$parameter.objectId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete (archive) an object"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an object",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/objects/{{$parameter.objectId}}",
              "method": "GET"
            }
          },
          "description": "Get a single object"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "List objects",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/objects",
              "method": "GET"
            }
          },
          "description": "List objects in a space"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an object",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/objects/{{$parameter.objectId}}",
              "body": "={{$parameter.body}}",
              "method": "PATCH"
            }
          },
          "description": "Update an existing object"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a property",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/properties",
              "body": "={{$parameter.body}}",
              "method": "POST"
            }
          },
          "description": "Create a new property"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a property",
          "routing": {
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/properties/{{$parameter.propertyId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a property"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a property",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/properties/{{$parameter.propertyId}}",
              "method": "GET"
            }
          },
          "description": "Get a single property"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "List properties",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/properties",
              "method": "GET"
            }
          },
          "description": "List properties in a space"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a property",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/properties/{{$parameter.propertyId}}",
              "body": "={{$parameter.body}}",
              "method": "PATCH"
            }
          },
          "description": "Update an existing property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "property"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a tag",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/tags",
              "body": "={{$parameter.body}}",
              "method": "POST"
            }
          },
          "description": "Create a new tag"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a tag",
          "routing": {
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/tags/{{$parameter.tagId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a tag"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a tag",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/tags/{{$parameter.tagId}}",
              "method": "GET"
            }
          },
          "description": "Get a single tag"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "List tags",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/tags",
              "method": "GET"
            }
          },
          "description": "List tags in a space"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a tag",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/tags/{{$parameter.tagId}}",
              "body": "={{$parameter.body}}",
              "method": "PATCH"
            }
          },
          "description": "Update a tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a type",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/types",
              "body": "={{$parameter.body}}",
              "method": "POST"
            }
          },
          "description": "Create a new type"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a type",
          "routing": {
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/types/{{$parameter.typeId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a type"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a type",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/types/{{$parameter.typeId}}",
              "method": "GET"
            }
          },
          "description": "Get a single type"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "List types",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/types",
              "method": "GET"
            }
          },
          "description": "List types in a space"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a type",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/types/{{$parameter.typeId}}",
              "body": "={{$parameter.body}}",
              "method": "PATCH"
            }
          },
          "description": "Update a type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "type"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "List templates",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/types/{{$parameter.typeId}}/templates",
              "method": "GET"
            }
          },
          "description": "List templates for a type"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a template",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/spaces/{{$parameter.spaceId}}/types/{{$parameter.typeId}}/templates/{{$parameter.templateId}}",
              "method": "GET"
            }
          },
          "description": "Get a single template"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search Globally",
      "value": "globalSearch",
      "action": "Search objects across all spaces",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/search",
          "body": "={{$parameter.body}}",
          "method": "POST"
        }
      },
      "description": "Search objects across all spaces"
    },
    {
      "name": "Search in Space",
      "value": "spaceSearch",
      "action": "Search objects within a space",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/search",
          "body": "={{$parameter.body}}",
          "method": "POST"
        }
      },
      "description": "Search objects within a specific space"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many spaces",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/spaces",
          "method": "GET"
        }
      },
      "description": "Get many spaces"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a space",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/spaces",
          "body": "={{$parameter.body}}",
          "method": "POST"
        }
      },
      "description": "Create a space"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a space",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}",
          "method": "GET"
        }
      },
      "description": "Get a space"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a space",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}",
          "body": "={{$parameter.body}}",
          "method": "PATCH"
        }
      },
      "description": "Update a space"
    },
    {
      "name": "Add Objects",
      "value": "addObjects",
      "action": "Add objects to a list",
      "routing": {
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/lists/{{$parameter.listId}}/objects",
          "body": "={{$parameter.body}}",
          "method": "POST"
        }
      },
      "description": "Add objects to a list (collection)"
    },
    {
      "name": "Remove Object",
      "value": "removeObject",
      "action": "Remove an object from a list",
      "routing": {
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/lists/{{$parameter.listId}}/objects/{{$parameter.objectId}}",
          "method": "DELETE"
        }
      },
      "description": "Remove an object from a list (collection)"
    },
    {
      "name": "Get Views",
      "value": "getViews",
      "action": "Get list views",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/lists/{{$parameter.listId}}/views",
          "method": "GET"
        }
      },
      "description": "Get views for a list"
    },
    {
      "name": "Get Objects",
      "value": "getObjects",
      "action": "Get objects in a list view",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/lists/{{$parameter.listId}}/views/{{$parameter.viewId}}/objects",
          "method": "GET"
        }
      },
      "description": "Get objects in a list view"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "List members",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/members",
          "method": "GET"
        }
      },
      "description": "List members in a space"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a member",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/members/{{$parameter.memberId}}",
          "method": "GET"
        }
      },
      "description": "Get a single member"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an object",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/objects",
          "body": "={{$parameter.body}}",
          "method": "POST"
        }
      },
      "description": "Create a new object in a space"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an object",
      "routing": {
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/objects/{{$parameter.objectId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete (archive) an object"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an object",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/objects/{{$parameter.objectId}}",
          "method": "GET"
        }
      },
      "description": "Get a single object"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "List objects",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/objects",
          "method": "GET"
        }
      },
      "description": "List objects in a space"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an object",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/objects/{{$parameter.objectId}}",
          "body": "={{$parameter.body}}",
          "method": "PATCH"
        }
      },
      "description": "Update an existing object"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a property",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/properties",
          "body": "={{$parameter.body}}",
          "method": "POST"
        }
      },
      "description": "Create a new property"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a property",
      "routing": {
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/properties/{{$parameter.propertyId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a property"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a property",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/properties/{{$parameter.propertyId}}",
          "method": "GET"
        }
      },
      "description": "Get a single property"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "List properties",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/properties",
          "method": "GET"
        }
      },
      "description": "List properties in a space"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a property",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/properties/{{$parameter.propertyId}}",
          "body": "={{$parameter.body}}",
          "method": "PATCH"
        }
      },
      "description": "Update an existing property"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a tag",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/tags",
          "body": "={{$parameter.body}}",
          "method": "POST"
        }
      },
      "description": "Create a new tag"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a tag",
      "routing": {
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/tags/{{$parameter.tagId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a tag"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a tag",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/tags/{{$parameter.tagId}}",
          "method": "GET"
        }
      },
      "description": "Get a single tag"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "List tags",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/tags",
          "method": "GET"
        }
      },
      "description": "List tags in a space"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a tag",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/tags/{{$parameter.tagId}}",
          "body": "={{$parameter.body}}",
          "method": "PATCH"
        }
      },
      "description": "Update a tag"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a type",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/types",
          "body": "={{$parameter.body}}",
          "method": "POST"
        }
      },
      "description": "Create a new type"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a type",
      "routing": {
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/types/{{$parameter.typeId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a type"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a type",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/types/{{$parameter.typeId}}",
          "method": "GET"
        }
      },
      "description": "Get a single type"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "List types",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/types",
          "method": "GET"
        }
      },
      "description": "List types in a space"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a type",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/types/{{$parameter.typeId}}",
          "body": "={{$parameter.body}}",
          "method": "PATCH"
        }
      },
      "description": "Update a type"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "List templates",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/types/{{$parameter.typeId}}/templates",
          "method": "GET"
        }
      },
      "description": "List templates for a type"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a template",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/spaces/{{$parameter.spaceId}}/types/{{$parameter.typeId}}/templates/{{$parameter.templateId}}",
          "method": "GET"
        }
      },
      "description": "Get a single template"
    }
  ]

npm_readme:
  # n8n-nodes-anytype

  An n8n community node for the **Anytype API**.

  https://github.com/user-attachments/assets/59b52a17-696c-450f-8836-d1d068232488

  It supports the official Anytype API resources:

  - Search (Global and Space search)
  - Spaces
  - Lists
  - Members
  - Objects
  - Properties
  - Tags
  - Types
  - Templates

  ## Installation

  Follow the n8n community nodes installation guide.

  ## Credentials

  Create **Anytype API** credentials in n8n:

  - **Base URL**:
    - Default: `http://127.0.0.1:31009/v1`
    - Change if your Anytype API is exposed elsewhere.
  - **API Version**:
    - Default: `2025-11-08`
    - Sent as the `Anytype-Version` header.
  - **API Key**:
    - A token you pass as `Authorization: Bearer <token>`.

  ### How to get an API key (outside this node)

  Generate the API key with Anytype's official auth flow, then paste it into the n8n credential:

  1) Create an auth challenge (`POST /auth/challenges`) with your app name
  2) Check Anytype Desktop for the 4-digit code
  3) Create the API key (`POST /auth/api_keys`) with the challenge ID and code

  See Anytype docs: https://developers.anytype.io/docs/reference/2025-11-08/create-api-key/

  ## Notes on pagination

  Most “Get Many” endpoints return:
  ```json
  { "data": [...], "pagination": { "offset": 0, "limit": 100, "has_more": true, "total": 123 } }
  ````

  This node automatically returns only the `data` array as n8n items when using “Get Many”.

  If you need the full raw response (including `pagination`) or unsupported endpoints, use n8n's
  **HTTP Request** node with your Anytype base URL, `Anytype-Version` header, and Bearer API key.

  ## Operations

  ### Search

  * Search objects across all spaces
  * Search objects within a space

  ### Spaces

  * Get Many
  * Create
  * Get
  * Update

  ### Lists

  * Add objects to list
  * Remove object from list
  * Get list views
  * Get objects in list

  ### Members

  * Get Many
  * Get

  ### Objects

  * Get Many
  * Create
  * Get
  * Update
  * Delete

  ### Properties

  * Get Many
  * Create
  * Get
  * Update
  * Delete

  ### Tags

  * Get Many
  * Create
  * Get
  * Update
  * Delete

  ### Types

  * Get Many
  * Create
  * Get
  * Update
  * Delete

  ### Templates

  * Get Many
  * Get

  ## Resources

  * n8n community nodes ([documentation](https://docs.n8n.io/integrations/community-nodes/))
  * Anytype developer docs ([API reference](https://developers.anytype.io/docs/reference))

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Anytype API to manage data such as spaces, lists, objects, properties, tags, types, and templates.","capabilities":["Search objects globally or within a specific space","Manage spaces (create, get, update, list)","Manage lists (add/remove objects, get views and contents)","Manage members","Manage objects (create, get, update, delete)","Manage properties (create, get, update, delete)","Manage tags (create, get, update, delete)","Manage types (create, get, update, delete)","Manage templates (get many, get)","Automatic handling of pagination for 'Get Many' endpoints"],"authentication":"API Key required (Bearer token via 'Authorization' header)","commonUseCases":["Automating data extraction from Anytype into n8n workflows","Synchronizing Anytype data with external systems","Creating or updating Anytype objects programmatically"],"limitations":["Returns only the 'data' array for paginated 'Get Many' endpoints; full response including pagination metadata requires the HTTP Request node"],"relatedNodes":["HTTP Request"]}


node_type: n8n-nodes-wati.wati
package_name: n8n-nodes-wati
display_name: Wati
description: Send WhatsApp messages, manage contacts, deliver templates, and download media via Wati API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: nick-wati
author_github_url: https://github.com/nick-wati/
npm_package_name: n8n-nodes-wati
npm_version: 0.3.2
community_fetched_at: 2026-03-25T21:19:40.503Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "Template Message",
          "value": "templateMessage"
        },
        {
          "name": "Contact",
          "value": "contact"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendTextMessage",
      "options": [
        {
          "name": "Send Text Message",
          "value": "sendTextMessage",
          "action": "Send a text message",
          "description": "Send a text message to an active WhatsApp conversation (within 24h window)"
        },
        {
          "name": "Send Button Message",
          "value": "sendInteractiveButtons",
          "action": "Send a button message",
          "description": "Send a message with interactive buttons"
        },
        {
          "name": "Send List Message",
          "value": "sendInteractiveList",
          "action": "Send a list message",
          "description": "Send a message with a selectable list"
        },
        {
          "name": "Get Messages",
          "value": "getMessages",
          "action": "Get messages",
          "description": "Get messages for a conversation by conversation ID"
        },
        {
          "name": "Get Media",
          "value": "getMedia",
          "action": "Get a media file",
          "description": "Download a media file (image, video, document, etc.) by message ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendTemplateMessage",
      "options": [
        {
          "name": "Send Template Message",
          "value": "sendTemplateMessage",
          "action": "Send a template message",
          "description": "Send a template message (outside 24h window)"
        },
        {
          "name": "Get Templates",
          "value": "getTemplates",
          "action": "Get templates",
          "description": "Get list of message templates"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "templateMessage"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getContacts",
      "options": [
        {
          "name": "Get Contacts",
          "value": "getContacts",
          "action": "Get contacts",
          "description": "Get list of contacts"
        },
        {
          "name": "Get Contact Detail",
          "value": "getContactDetail",
          "action": "Get contact detail",
          "description": "Get details of a specific contact by phone number"
        },
        {
          "name": "Add Contact",
          "value": "addContact",
          "action": "Add a contact",
          "description": "Add a new contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Text Message",
      "value": "sendTextMessage",
      "action": "Send a text message",
      "description": "Send a text message to an active WhatsApp conversation (within 24h window)"
    },
    {
      "name": "Send Button Message",
      "value": "sendInteractiveButtons",
      "action": "Send a button message",
      "description": "Send a message with interactive buttons"
    },
    {
      "name": "Send List Message",
      "value": "sendInteractiveList",
      "action": "Send a list message",
      "description": "Send a message with a selectable list"
    },
    {
      "name": "Get Messages",
      "value": "getMessages",
      "action": "Get messages",
      "description": "Get messages for a conversation by conversation ID"
    },
    {
      "name": "Get Media",
      "value": "getMedia",
      "action": "Get a media file",
      "description": "Download a media file (image, video, document, etc.) by message ID"
    },
    {
      "name": "Send Template Message",
      "value": "sendTemplateMessage",
      "action": "Send a template message",
      "description": "Send a template message (outside 24h window)"
    },
    {
      "name": "Get Templates",
      "value": "getTemplates",
      "action": "Get templates",
      "description": "Get list of message templates"
    },
    {
      "name": "Get Contacts",
      "value": "getContacts",
      "action": "Get contacts",
      "description": "Get list of contacts"
    },
    {
      "name": "Get Contact Detail",
      "value": "getContactDetail",
      "action": "Get contact detail",
      "description": "Get details of a specific contact by phone number"
    },
    {
      "name": "Add Contact",
      "value": "addContact",
      "action": "Add a contact",
      "description": "Add a new contact"
    }
  ]

npm_readme:
  # n8n-nodes-wati

  This is an [n8n](https://n8n.io/) community node for [Wati](https://www.wati.io/) (WhatsApp Team Inbox). It lets you automate WhatsApp messaging workflows using the Wati API.

  [Wati](https://www.wati.io/) is a WhatsApp Business API solution that enables businesses to communicate with customers at scale through WhatsApp.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  1. Go to **Settings → Community Nodes** in your n8n instance.
  2. Click **Install a community node**.
  3. Enter `n8n-nodes-wati` and click **Install**.

  ## Credentials

  You need a Wati account to use this node. To set up credentials:

  1. Log in to your [Wati Dashboard](https://app.wati.io/).
  2. Go to **API Docs** to find your **API Endpoint URL** and **Access Token**.
  3. In n8n, create a new **Wati API** credential and enter these values.

  ## Supported Operations

  ### Wati Node

  #### Message
  - **Send Text Message** — Send a text message to an active WhatsApp conversation (within 24h window)
  - **Send Button Message** — Send a message with interactive buttons
  - **Send List Message** — Send a message with a selectable list
  - **Get Messages** — Retrieve messages for a conversation by conversation ID
  - **Get Media** — Download a media file (image, video, document, audio, etc.) by message ID

  #### Template Message
  - **Send Template Message** — Send a template message (works outside the 24h window)
  - **Get Templates** — Get a list of available message templates

  #### Contact
  - **Get Contacts** — Get a list of contacts
  - **Get Contact Detail** — Get details of a specific contact by phone number
  - **Add Contact** — Add a new contact

  ### Wati Trigger

  - **Webhook Trigger** — Receive incoming messages and status updates via webhook

  ## Resources

  - [Sign up for Wati](https://auth.wati.io/register/?utm_source=n8n&utm_medium=referral&utm_campaign=n8n)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"Automates WhatsApp messaging workflows by sending messages, managing contacts, delivering templates, and downloading media via the Wati API.","capabilities":["Send text messages to active conversations","Send button messages with interactive options","Send list messages with selectable items","Retrieve messages for a conversation by ID","Download media files (images, videos, documents, audio)","Send template messages outside the 24h window","Retrieve available message templates","Retrieve contact list","Get specific contact details by phone number","Add new contacts"],"authentication":"API key required (Access Token and API Endpoint URL from Wati Dashboard)","commonUseCases":["Automated customer support responses via WhatsApp","Sending promotional messages with interactive buttons or lists","Managing customer contact information in n8n workflows","Receiving and processing incoming WhatsApp messages"],"limitations":["Text messages can only be sent to active conversations within a 24-hour window","Template messages are required for sending outside the 24-hour window","Community node (not official n8n node)"],"relatedNodes":["Webhook Trigger","HTTP Request","Function","Wait"]}


node_type: n8n-nodes-browserflow.browserflow
package_name: n8n-nodes-browserflow
display_name: Browserflow for LinkedIn
description: Automate LinkedIn actions with Browserflow for LinkedIn
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: browserflow
author_github_url: https://github.com/Browserflow-io/browserflow-n8n.git
npm_package_name: n8n-nodes-browserflow
npm_version: 1.0.6
community_fetched_at: 2026-03-25T21:19:40.504Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "linkedin",
      "options": [
        {
          "name": "",
          "value": "linkedin"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "checkConnection",
      "options": [
        {
          "name": "Check if a Person Is a Connection",
          "value": "checkConnection",
          "action": "Check if a person is a connection"
        },
        {
          "name": "Export LinkedIn Chat History",
          "value": "getChatHistory",
          "action": "Export linked in chat history"
        },
        {
          "name": "Get Data From A Linkedin Profile",
          "value": "getProfileData",
          "action": "Get data from a linkedin profile"
        },
        {
          "name": "Get Job Result",
          "value": "getJobResult",
          "action": "Get the result of a job"
        },
        {
          "name": "Invite Connections to Follow a LinkedIn Page",
          "value": "inviteToFollowPage",
          "action": "Invite connections to follow a linkedin page"
        },
        {
          "name": "List LinkedIn Connections",
          "value": "listConnections",
          "action": "List your linkedin connections"
        },
        {
          "name": "Scrape LinkedIn Posts",
          "value": "scrapePosts",
          "action": "Scrape linkedin posts"
        },
        {
          "name": "Scrape Profiles From A LinkedIn Post",
          "value": "scrapeProfilesFromPostComments",
          "action": "Scrape profiles from a linkedin post"
        },
        {
          "name": "Scrape Profiles From A LinkedIn Search",
          "value": "scrapeProfilesFromSearch",
          "action": "Scrape profiles from a linkedin search"
        },
        {
          "name": "Send A LinkedIn Connection Invite",
          "value": "sendConnectionInvite",
          "action": "Send a linked in connection invite"
        },
        {
          "name": "Send A LinkedIn Message",
          "value": "sendMessage",
          "action": "Send a linkedin message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "linkedin"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Check if a Person Is a Connection",
      "value": "checkConnection",
      "action": "Check if a person is a connection"
    },
    {
      "name": "Export LinkedIn Chat History",
      "value": "getChatHistory",
      "action": "Export linked in chat history"
    },
    {
      "name": "Get Data From A Linkedin Profile",
      "value": "getProfileData",
      "action": "Get data from a linkedin profile"
    },
    {
      "name": "Get Job Result",
      "value": "getJobResult",
      "action": "Get the result of a job"
    },
    {
      "name": "Invite Connections to Follow a LinkedIn Page",
      "value": "inviteToFollowPage",
      "action": "Invite connections to follow a linkedin page"
    },
    {
      "name": "List LinkedIn Connections",
      "value": "listConnections",
      "action": "List your linkedin connections"
    },
    {
      "name": "Scrape LinkedIn Posts",
      "value": "scrapePosts",
      "action": "Scrape linkedin posts"
    },
    {
      "name": "Scrape Profiles From A LinkedIn Post",
      "value": "scrapeProfilesFromPostComments",
      "action": "Scrape profiles from a linkedin post"
    },
    {
      "name": "Scrape Profiles From A LinkedIn Search",
      "value": "scrapeProfilesFromSearch",
      "action": "Scrape profiles from a linkedin search"
    },
    {
      "name": "Send A LinkedIn Connection Invite",
      "value": "sendConnectionInvite",
      "action": "Send a linked in connection invite"
    },
    {
      "name": "Send A LinkedIn Message",
      "value": "sendMessage",
      "action": "Send a linkedin message"
    }
  ]

npm_readme:
  ![Browserflow Logo](https://s3-eu-west-1.amazonaws.com/tpd/logos/675a07be8d2cf551a4f539e0/0x0.png)

  # Browserflow for LinkedIn

  The **Browserflow Node** allows you to automate LinkedIn interactions using the Browserflow API. This node provides a variety of operations to interact with LinkedIn profiles, scrape data, send connection invites, and more.

  You can get a free API key by registering [here](https://browserflow.io/n8n).

  ---

  [![Watch the video](https://img.youtube.com/vi/rwgCf9XJ1hM/0.jpg)](https://www.youtube.com/watch?v=rwgCf9XJ1hM)


  ## Features

  - **Check Connection**: Check the connection status of a LinkedIn profile.
  - **Get Profile Data**: Retrieve data from a LinkedIn profile.
  - **Send Connection Invite**: Send a connection invite to a LinkedIn profile (with an optional message).
  - **Get Chat History**: Retrieve chat history from a LinkedIn conversation.
  - **Scrape Profiles from Search**: Scrape LinkedIn profiles based on search criteria (e.g., category, search term, location).
  - **Scrape Profiles from Post Comments**: Scrape profiles from LinkedIn post comments and reactions.
  - **Send Message**: Send a direct message to a LinkedIn profile (with a mandatory message).

  ---

  ## Node Operations

  ### 1. Check Connection
  - **LinkedIn URL**: The LinkedIn profile URL to check the connection status.
  - **Endpoint**: `/linkedin-check-connection-status`

  ### 2. Get Profile Data
  - **LinkedIn URL**: The LinkedIn profile URL to retrieve data.
  - **Endpoint**: `/linkedin-profile-data`

  ### 3. Send Connection Invite
  - **LinkedIn URL**: The LinkedIn profile URL to send a connection invite.
  - **Add Message**: Toggle to include a custom message.
  - **Message**: Optional message to include in the invite.
  - **Endpoint**: `/linkedin-connection-invite`

  ### 4. Get Chat History
  - **LinkedIn URL**: The LinkedIn profile URL to retrieve chat history.
  - **Endpoint**: `/linkedin-get-chat-history`

  ### 5. Scrape Profiles from Search
  - **Category**: The category to scrape (persons or companies).
  - **Search Term**: The search term to use for scraping.
  - **Number of Pages**: The number of pages to scrape.
  - **City**: The city to filter the search results.
  - **Country**: The country to filter the search results.
  - **Endpoint**: `/linkedin-scrape-profiles-from-search`

  ### 6. Scrape Profiles from Post Comments
  - **Post URL**: The URL of the LinkedIn post to scrape profiles from.
  - **Add Comments**: Toggle to include comments in the scrape results.
  - **Comments Offset**: The number of comments to skip.
  - **Comments Limit**: The maximum number of comments to scrape.
  - **Add Reactions**: Toggle to include reactions in the scrape results.
  - **Reactions Offset**: The number of reactions to skip.
  - **Reactions Limit**: The maximum number of reactions to scrape.
  - **Endpoint**: `/linkedin-scrape-profiles-from-post-comments`

  ### 7. Send Message
  - **LinkedIn URL**: The LinkedIn profile URL to send a message.
  - **Message**: The message to send (mandatory).
  - **Endpoint**: `/linkedin-send-message`

  ---

  ## Example Workflows

  ### Example 1: Send a Connection Invite
  1. Add the **Browserflow Node** to your workflow.
  2. Set the operation to **Send Connection Invite**.
  3. Provide the LinkedIn profile URL.
  4. Optionally, enable **Add Message** and provide a custom message.
  5. Execute the workflow to send the connection invite.

  ### Example 2: Scrape Profiles from Search
  1. Add the **Browserflow Node** to your workflow.
  2. Set the operation to **Scrape Profiles from Search**.
  3. Provide the search criteria (e.g., category, search term, location).
  4. Execute the workflow to scrape profiles based on the search criteria.

  ### Example 3: Send a Direct Message
  1. Add the **Browserflow Node** to your workflow.
  2. Set the operation to **Send Message**.
  3. Provide the LinkedIn profile URL and the message.
  4. Execute the workflow to send the message.

  ---

ai_documentation_summary:
  {"purpose":"Automates LinkedIn interactions including profile data retrieval, connection management, messaging, and profile scraping via the Browserflow API.","capabilities":["Check connection status of a LinkedIn profile","Retrieve profile data from a LinkedIn URL","Send connection invites with optional custom messages","Retrieve chat history from LinkedIn conversations","Scrape profiles based on search criteria (category, location, search term)","Scrape profiles from LinkedIn post comments and reactions","Send direct messages to LinkedIn profiles"],"authentication":"API key required (obtained via registration at browserflow.io/n8n)","commonUseCases":["Automated lead generation through profile scraping","Automated networking via connection invites","Retrieving employee or contact data from LinkedIn","Monitoring LinkedIn conversations and chat histories"],"limitations":["Requires registration and API key generation from Browserflow","Some operations like sending messages may be subject to LinkedIn's rate limits or terms of service"],"relatedNodes":["n8n-nodes-browserflow.browserflow"]}


node_type: n8n-nodes-shortio.Shortio
package_name: n8n-nodes-shortio
display_name: Short.io
description: Short.io Node for shortening and managing links
category: Community
development_style: declarative
version: 1.0.2
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: liammcgarrigle
author_github_url: https://github.com/liamdmcgarrigle/
npm_package_name: n8n-nodes-shortio
npm_version: 1.0.2
community_fetched_at: 2026-03-25T21:19:40.506Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # Table of Contents

  - [Table of Contents](#table-of-contents)
  - [Overview of Community Short.io n8n Node](#overview-of-community-shortio-n8n-node)
  - [Bugs/Contributing/Feature Request](#bugscontributingfeature-request)
  - [Documentation](#documentation)
    - [Installation](#installation)
    - [Credentials](#credentials)
    - [Links](#links)
      - [List Links](#list-links)
      - [Get Link Info](#get-link-info)
      - [Create Link](#create-link)
      - [Update Existing Link](#update-existing-link)
      - [Delete Link](#delete-link)
      - [Generate QR For Link](#generate-qr-for-link)
    - [Statistics](#statistics)
      - [Get Link Statistics](#get-link-statistics)
      - [Get Domain Statistics](#get-domain-statistics)

  # Overview of Community Short.io n8n Node

  I have no affiliation with short.io beyond being a user. I work for n8n but this is not an official node.

  # Bugs/Contributing/Feature Request

  If you have a bug to report or a feature request, please [submit a GitHub issue](https://github.com/liamdmcgarrigle/n8n-nodes-shortio/issues/new) with as much detail as you're able to give.

  # Documentation

  ## Installation

  This is now available on cloud as a verified community node. Simply search for shortio in the node panel.

  Or follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Credentials

  To use this node you will need to set up short.io credentials with a key from short.io. You also will need an account and may need a paid account.

  1. Go to https://app.short.io/settings/integrations/api-key and click on "Create API Key"
     ![Screenshot1](/readme_files/step-1.jpeg)

  2. Add a description, pick the domain to use, and press "Create"
     ![Screenshot2](/readme_files/step-2.jpeg)

  3. Copy your new token. It will only be shown once

  4. Go to the credential page in n8n, in add credentials add "Short.io API", then paste in your token. Then add the domain you chose in the previous step and press save
     ![Screenshot3](/readme_files/step-3.png)

  ## Links

  ### List Links

  Get a list of your short links. These will only be links from the domain in your credential.

  You will need to choose how many results are returned. Anything over 150 is automatically paginationed.

  You can filter the results by adding:

  - **Before date**: returns links before the listed date
  - **After date**: returns links after the listed date
  - **Date Sort Order**: changes the order the links are in based on the date

  ### Get Link Info

  Get link details from the domain in your credential and the path.

  ### Create Link

  Create a link. There are many options available in the additional fields:

  - **Path**: Custom path for the short link
  - **Folder**: Assign the link to a folder (select from list or enter folder ID)
  - **Allow Duplicates**: Allow multiple links with the same original URL
  - **Title**: Title shown in the short.io admin panel
  - **Expiration settings**: Set expiry date and redirect URL for expired links
  - **Device-specific URLs**: Separate URLs for iPhone and Android users
  - **Cloaking**: Hide the original URL in the browser address bar
  - **Redirect Type**: Choose HTTP redirect code (301, 302, etc.)
  - **Password**: Password-protect the link (requires Personal plan)
  - **UTM Parameters**: Add tracking parameters (source, medium, campaign, term, content)
  - **Tags**: Add tags to organize your links

  ### Update Existing Link

  You can update an existing short link by using the path or the link `idString`.
  You can change anything about the link including the full long URL and folder assignment.

  ### Delete Link

  You can delete an existing short link by using the path or the link `idString`.

  ### Generate QR For Link

  Generate a QR code image for any short link. You can identify the link by path or `idString`.

  Options available:

  - **Color**: QR code foreground color
  - **Background Color**: QR code background color
  - **Size**: QR code size (1-99)
  - **Type**: Image format (PNG or SVG)

  The operation returns binary data that can be used with other n8n nodes (e.g., save to file, send via email, upload to cloud storage).

  ## Statistics

  Get detailed analytics for your links and domain.

  ### Get Link Statistics

  Get detailed statistics for a specific link. Identify the link by path or `idString`.

  **Period options:**

  - Today
  - Yesterday
  - Last 7 Days
  - Last 30 Days
  - Last Month
  - All Time
  - Custom (specify start and end dates)

  **Additional options:**

  - **Clicks Chart Interval**: Data granularity for the clicks chart (hour, day, week, month)
  - **Skip Top Records**: Skip top records like referer, browser, and country breakdowns

  Returns detailed statistics including total clicks, human clicks, click trends, and breakdowns by referer, browser, country, and more.

  ### Get Domain Statistics

  Get detailed statistics for your entire domain (as configured in your credentials).

  **Period options:**

  - Today
  - Yesterday
  - Last 7 Days
  - Last 30 Days
  - Last Month
  - All Time
  - Custom (specify start and end dates)

  **Additional options:**

  - **Clicks Chart Interval**: Data granularity for the clicks chart (hour, day, week, month)

  Returns domain-wide statistics including total clicks, link counts, clicks per link averages, and breakdowns by referer, browser, country, and more.

ai_documentation_summary:
  {"purpose":"The Short.io n8n node allows users to shorten URLs, manage link metadata, generate QR codes, and retrieve detailed analytics for links and domains.","capabilities":["List short links with date filtering and pagination","Get detailed information for a specific short link","Create new short links with custom paths, folders, and tracking parameters","Update existing short links (URL, folder, metadata)","Delete short links by path or ID","Generate QR codes for links with customizable colors, size, and format","Retrieve link statistics (clicks, trends, geographic data)","Retrieve domain-wide statistics","Support for UTM parameters, cloaking, password protection, and device-specific URLs"],"authentication":"API Key required (Short.io API Key)","commonUseCases":["Automating URL shortening in marketing campaigns","Tracking link performance and analytics in workflows","Generating QR codes for print materials or digital displays","Managing and organizing short links with folders and tags","Creating password-protected links for sensitive content"],"limitations":["Requires a Short.io account (paid plans may be needed for certain features like password protection)","List Links operation has a limit of 150 results per request (automatic pagination for larger datasets)","Not an official n8n node (community-maintained)","QR code generation returns binary data, requiring additional nodes for file saving or processing"],"relatedNodes":["n8n-nodes-core.binary","n8n-nodes-core.httpRequest","n8n-nodes-core.code","n8n-nodes-core.email","n8n-nodes-core.filesystem"]}


node_type: n8n-nodes-justcall.justCall
package_name: n8n-nodes-justcall
display_name: JustCall
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: devjustcall
author_github_url: https://github.com/saaslabsco/
npm_package_name: n8n-nodes-justcall
npm_version: 1.0.4
community_fetched_at: 2026-03-25T21:19:40.508Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Interact with JustCall API (Calls, SMS, Contacts, Phone Numbers, AI Voice Agents, Sales Dialer, JustCall AI)

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "call",
      "options": [
        {
          "name": "AI Voice Agent",
          "value": "aiVoiceAgent"
        },
        {
          "name": "Call",
          "value": "call"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "JustCall AI",
          "value": "justCallAi"
        },
        {
          "name": "Phone Number",
          "value": "phoneNumber"
        },
        {
          "name": "Sales Dialer",
          "value": "salesDialer"
        },
        {
          "name": "SMS",
          "value": "sms"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Download Call Recording",
          "value": "downloadRecording",
          "action": "Download call recording",
          "description": "Download the recording of a completed call"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a call",
          "description": "Get a specific call"
        },
        {
          "name": "Get Call Journey",
          "value": "getJourney",
          "action": "Get call journey",
          "description": "Get journey details of a completed call (available only after call has ended)"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many calls",
          "description": "Get many calls"
        },
        {
          "name": "Get Voice Agent Data",
          "value": "getVoiceAgentData",
          "action": "Get voice agent data",
          "description": "Get voice agent insights and metadata for a completed call"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a call",
          "description": "Update a call (notes, disposition, rating)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send an SMS",
          "description": "Send an SMS or MMS"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an SMS",
          "description": "Get a specific SMS"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many SMS",
          "description": "Get many SMS messages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sms"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a contact",
          "description": "Create a new contact"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a contact",
          "description": "Get a specific contact"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many contacts",
          "description": "Get many contacts"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a contact",
          "description": "Update an existing contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get all phone numbers",
          "description": "Get all phone numbers"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a phone number",
          "description": "Get a specific phone number"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "phoneNumber"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAgents",
      "options": [
        {
          "name": "List Agents",
          "value": "listAgents",
          "action": "List all AI voice agents",
          "description": "List all AI voice agents"
        },
        {
          "name": "Initiate Call",
          "value": "initiateCall",
          "action": "Initiate a call with AI voice agent",
          "description": "Initiate a call with an AI voice agent"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiVoiceAgent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listCalls",
      "options": [
        {
          "name": "Add Contact to Campaign",
          "value": "addContactToCampaign",
          "action": "Add contact to a campaign",
          "description": "Add a contact to a Sales Dialer campaign"
        },
        {
          "name": "Get a Call",
          "value": "getCall",
          "action": "Get a call",
          "description": "Get a specific Sales Dialer call"
        },
        {
          "name": "Get a Campaign",
          "value": "getCampaign",
          "action": "Get a campaign",
          "description": "Get a specific Sales Dialer campaign"
        },
        {
          "name": "Get a Contact",
          "value": "getContact",
          "action": "Get a contact",
          "description": "Get a specific Sales Dialer contact"
        },
        {
          "name": "List All Calls",
          "value": "listCalls",
          "action": "List all calls",
          "description": "List all Sales Dialer calls"
        },
        {
          "name": "List All Campaigns",
          "value": "listCampaigns",
          "action": "List all campaigns",
          "description": "List all Sales Dialer campaigns"
        },
        {
          "name": "List All Contacts",
          "value": "listContacts",
          "action": "List all contacts",
          "description": "List all Sales Dialer contacts"
        },
        {
          "name": "List Campaign Contacts",
          "value": "listCampaignContacts",
          "action": "List campaign contacts",
          "description": "List contacts in a Sales Dialer campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "salesDialer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listCallsAiData",
      "options": [
        {
          "name": "Get Call AI Data",
          "value": "getCallAiData",
          "action": "Get call AI data",
          "description": "Get AI-generated analysis for a specific call"
        },
        {
          "name": "Get Meeting AI Data",
          "value": "getMeetingAiData",
          "action": "Get meeting AI data",
          "description": "Get AI-generated analysis for a specific meeting instance"
        },
        {
          "name": "List Calls AI Data",
          "value": "listCallsAiData",
          "action": "List calls AI data",
          "description": "List AI-generated analysis for JustCall and Sales Dialer calls"
        },
        {
          "name": "List Meetings AI Data",
          "value": "listMeetingsAiData",
          "action": "List meetings AI data",
          "description": "List AI-generated analysis for meeting instances"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "justCallAi"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Download Call Recording",
      "value": "downloadRecording",
      "action": "Download call recording",
      "description": "Download the recording of a completed call"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a call",
      "description": "Get a specific call"
    },
    {
      "name": "Get Call Journey",
      "value": "getJourney",
      "action": "Get call journey",
      "description": "Get journey details of a completed call (available only after call has ended)"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many calls",
      "description": "Get many calls"
    },
    {
      "name": "Get Voice Agent Data",
      "value": "getVoiceAgentData",
      "action": "Get voice agent data",
      "description": "Get voice agent insights and metadata for a completed call"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a call",
      "description": "Update a call (notes, disposition, rating)"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send an SMS",
      "description": "Send an SMS or MMS"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an SMS",
      "description": "Get a specific SMS"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many SMS",
      "description": "Get many SMS messages"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a contact",
      "description": "Create a new contact"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a contact",
      "description": "Get a specific contact"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many contacts",
      "description": "Get many contacts"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a contact",
      "description": "Update an existing contact"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get all phone numbers",
      "description": "Get all phone numbers"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a phone number",
      "description": "Get a specific phone number"
    },
    {
      "name": "List Agents",
      "value": "listAgents",
      "action": "List all AI voice agents",
      "description": "List all AI voice agents"
    },
    {
      "name": "Initiate Call",
      "value": "initiateCall",
      "action": "Initiate a call with AI voice agent",
      "description": "Initiate a call with an AI voice agent"
    },
    {
      "name": "Add Contact to Campaign",
      "value": "addContactToCampaign",
      "action": "Add contact to a campaign",
      "description": "Add a contact to a Sales Dialer campaign"
    },
    {
      "name": "Get a Call",
      "value": "getCall",
      "action": "Get a call",
      "description": "Get a specific Sales Dialer call"
    },
    {
      "name": "Get a Campaign",
      "value": "getCampaign",
      "action": "Get a campaign",
      "description": "Get a specific Sales Dialer campaign"
    },
    {
      "name": "Get a Contact",
      "value": "getContact",
      "action": "Get a contact",
      "description": "Get a specific Sales Dialer contact"
    },
    {
      "name": "List All Calls",
      "value": "listCalls",
      "action": "List all calls",
      "description": "List all Sales Dialer calls"
    },
    {
      "name": "List All Campaigns",
      "value": "listCampaigns",
      "action": "List all campaigns",
      "description": "List all Sales Dialer campaigns"
    },
    {
      "name": "List All Contacts",
      "value": "listContacts",
      "action": "List all contacts",
      "description": "List all Sales Dialer contacts"
    },
    {
      "name": "List Campaign Contacts",
      "value": "listCampaignContacts",
      "action": "List campaign contacts",
      "description": "List contacts in a Sales Dialer campaign"
    },
    {
      "name": "Get Call AI Data",
      "value": "getCallAiData",
      "action": "Get call AI data",
      "description": "Get AI-generated analysis for a specific call"
    },
    {
      "name": "Get Meeting AI Data",
      "value": "getMeetingAiData",
      "action": "Get meeting AI data",
      "description": "Get AI-generated analysis for a specific meeting instance"
    },
    {
      "name": "List Calls AI Data",
      "value": "listCallsAiData",
      "action": "List calls AI data",
      "description": "List AI-generated analysis for JustCall and Sales Dialer calls"
    },
    {
      "name": "List Meetings AI Data",
      "value": "listMeetingsAiData",
      "action": "List meetings AI data",
      "description": "List AI-generated analysis for meeting instances"
    }
  ]

npm_readme:
  # n8n-nodes-justcall

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-justcall)](https://www.npmjs.com/package/n8n-nodes-justcall)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  An n8n community node package that provides seamless integration with the JustCall API, enabling you to automate calls, SMS, contact management, AI voice agents, Sales Dialer campaigns, and JustCall AI insights within your n8n workflows.

  ## Features

  This package includes two main nodes:

  ### 1. JustCall Node

  A comprehensive node for interacting with the JustCall API, supporting the following resources:

  #### 📞 **Call**
  - **Get** - Retrieve a specific call by ID
  - **Get Many** - List and filter calls with pagination support
  - **Update** - Update call notes, disposition, and rating
  - **Download Call Recording** - Download the recording of a completed call
  - **Get Call Journey** - Get journey details of a completed call (available after call has ended)
  - **Get Voice Agent Data** - Get voice agent insights and metadata for a completed call

  #### 💬 **SMS**
  - **Send** - Send SMS or MMS messages
  - **Get** - Retrieve a specific SMS by ID
  - **Get Many** - List and filter SMS messages

  #### 👤 **Contact**
  - **Create** - Create a new contact
  - **Get** - Retrieve a specific contact
  - **Get Many** - List and filter contacts
  - **Update** - Update an existing contact

  #### 📱 **Phone Number**
  - **Get** - Retrieve a specific phone number
  - **Get Many** - List all phone numbers

  #### 🤖 **AI Voice Agent**
  - **List Agents** - List all available AI voice agents
  - **Initiate Call** - Initiate a call with an AI voice agent

  #### 📋 **Sales Dialer**
  - **List All Calls** - List all Sales Dialer calls with filters (campaign, agent, date range, etc.)
  - **Get a Call** - Get a specific Sales Dialer call by ID
  - **List All Campaigns** - List all Sales Dialer campaigns
  - **Get a Campaign** - Get a specific Sales Dialer campaign by ID
  - **List Campaign Contacts** - List contacts in a Sales Dialer campaign
  - **Add Contact to Campaign** - Add a contact to a Sales Dialer campaign (by phone number or contact ID)
  - **List All Contacts** - List all Sales Dialer contacts
  - **Get a Contact** - Get a specific Sales Dialer contact by ID

  #### 🧠 **JustCall AI**
  - **List Calls AI Data** - List AI-generated analysis for JustCall and Sales Dialer calls (summary, transcription, insights, action items)
  - **Get Call AI Data** - Get AI-generated analysis for a specific call
  - **List Meetings AI Data** - List AI-generated analysis for meeting instances
  - **Get Meeting AI Data** - Get AI-generated analysis for a specific meeting instance

  ### 2. JustCall Trigger Node

  A webhook trigger node that automatically starts workflows when JustCall events occur:

  - **Call Answered** - Triggered when a call is answered
  - **Call Completed** - Triggered when a call is completed
  - **Call Initiated** - Triggered when a call is initiated
  - **Call Missed** - Triggered when a call is missed
  - **Call Updated** - Triggered when a call is updated
  - **Incoming Call** - Triggered when an incoming call is received
  - **SMS Received** - Triggered when an SMS is received
  - **SMS Sent** - Triggered when an SMS is sent
  - **Voicemail Received** - Triggered when a voicemail is received

  ## Installation

  ### For n8n Cloud Users

  This node is available in the n8n community nodes catalog. You can install it directly from the n8n interface:

  1. Go to **Settings** → **Community Nodes**
  2. Search for `n8n-nodes-justcall`
  3. Click **Install**

  ### For Self-Hosted n8n

  If you're running a self-hosted instance of n8n, install this package in your n8n installation directory:

  ```bash
  npm install n8n-nodes-justcall
  ```

  Or if you're using n8n via Docker, add this to your `docker-compose.yml`:

  ```yaml
  services:
    n8n:
      environment:
        - N8N_USER_FOLDER=/home/node/.n8n
      volumes:
        - n8n_data:/home/node/.n8n
  ```

  Then install the package in the container:

  ```bash
  docker exec -it <container-name> npm install n8n-nodes-justcall
  ```

  ## Configuration

  ### API Credentials

  Before using the JustCall nodes, you need to configure your JustCall API credentials:

  1. In n8n, go to **Credentials** → **Add Credential**
  2. Search for **JustCall API**
  3. Enter your JustCall API key
     - You can find your API key in your JustCall dashboard under **Profile** → **APIs and Webhooks**

  ## Usage Examples

  ### Example 1: Send SMS on Contact Creation

  Create a workflow that automatically sends a welcome SMS when a new contact is created:

  1. Add a **JustCall** node
  2. Select **Contact** → **Create**
  3. Configure the contact details
  4. Add another **JustCall** node
  5. Select **SMS** → **Send**
  6. Use the contact's phone number from the previous node

  ### Example 2: Trigger Workflow on Call Completion

  Set up a workflow that processes call data when a call is completed:

  1. Add a **JustCall Trigger** node
  2. Select **Call Completed** event
  3. Add subsequent nodes to process the call data (e.g., save to database, send notification)

  ### Example 3: AI Voice Agent Outbound Call

  Initiate an outbound call using an AI voice agent:

  1. Add a **JustCall** node
  2. Select **AI Voice Agent** → **Initiate Call**
  3. Select the agent and provide the phone number
  4. Configure call parameters

  ### Example 4: Sales Dialer – Add Contact to Campaign

  Add a contact to a Sales Dialer campaign for power dialing:

  1. Add a **JustCall** node
  2. Select **Sales Dialer** → **Add Contact to Campaign**
  3. Enter the campaign ID and either phone number or contact ID
  4. Optionally add contact details (name, email, custom fields)

  ### Example 5: JustCall AI – Get Call Insights

  Retrieve AI-generated summary and insights for a call:

  1. Add a **JustCall** node
  2. Select **JustCall AI** → **Get Call AI Data**
  3. Enter the call ID (JustCall or Sales Dialer)
  4. Optionally enable summary, transcription, smart chapters, or action items

  ## Development

  ### Prerequisites

  - Node.js (v18 or higher)
  - npm or pnpm
  - TypeScript

  ### Setup

  1. Clone the repository:
  ```bash
  git clone https://github.com/saaslabsco/n8n-nodes-justcall.git
  cd n8n-nodes-justcall
  ```

  2. Install dependencies:
  ```bash
  npm install
  ```

  3. Build the project:
  ```bash
  npm run build
  ```

  ### Available Scripts

  - `npm run build` - Compile TypeScript to JavaScript
  - `npm run dev` - Watch mode for development
  - `npm run lint` - Run ESLint
  - `npm run lintfix` - Fix ESLint errors automatically
  - `npm run format` - Format code with Prettier
  - `npm run changeset` - Create a new changeset for versioning
  - `npm run version` - Bump versions based on changesets
  - `npm run release` - Publish the package

  ### Project Structure

  ```
  n8n-nodes-justcall/
  ├── nodes/
  │   └── JustCall/
  │       ├── descriptions/     # Node property descriptions
  │       ├── handlers/          # Operation handlers
  │       ├── utils/             # Utility functions
  │       ├── JustCall.node.ts   # Main JustCall node
  │       └── JustCallTrigger.node.ts  # Trigger node
  ├── credentials/               # Credential definitions
  └── dist/                     # Compiled output
  ```

  ## Contributing

  Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (`git checkout -b feature/amazing-feature`)
  3. Make your changes
  4. Run tests and linting (`npm run lint`)
  5. Commit your changes (`git commit -m 'Add some amazing feature'`)
  6. Create a changeset (`npm run changeset`)
  7. Push to the branch (`git push origin feature/amazing-feature`)
  8. Open a Pull Request

  ### Versioning

  This project uses [Changesets](https://github.com/changesets/changesets) for version management. When making changes:

  1. Run `npm run changeset` to document your changes
  2. Commit the changeset file along with your code changes
  3. When ready to release, maintainers will run `npm run version` to update versions and changelog

  ## Changelog

  See [CHANGELOG.md](./CHANGELOG.md) for a list of changes and version history.

  ## License

  This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.

  ## Support

  For issues, questions, or contributions, please visit:
  - **GitHub Issues**: [https://github.com/saaslabsco/n8n-nodes-justcall/issues](https://github.com/saaslabsco/n8n-nodes-justcall/issues)
  - **JustCall API Documentation**: [https://developer.justcall.io/reference/initiate_outbound_call_v21](https://developer.justcall.io/reference/initiate_outbound_call_v21)

  ## Author

  **JustCall Dev**
  - Email: dev@justcall.io
  - GitHub: [@saaslabsco](https://github.com/saaslabsco)

  ---

  Made with ❤️ by the JustCall team

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of JustCall API operations including calls, SMS, contacts, phone numbers, AI voice agents, sales dialer campaigns, and AI insights.","capabilities":["Retrieve and list calls with pagination","Update call notes, disposition, and ratings","Download call recordings","Retrieve call journey and voice agent data","Send and retrieve SMS/MMS messages","Create, retrieve, update, and list contacts","Retrieve and list phone numbers","List and initiate calls with AI voice agents","Manage Sales Dialer campaigns and contacts","Retrieve AI-generated call and meeting insights"],"authentication":"API key required","commonUseCases":["Automate welcome SMS upon contact creation","Process call data when calls complete","Initiate outbound calls using AI voice agents","Add contacts to sales dialer campaigns","Retrieve AI summaries and insights from calls"],"limitations":["Some features like Get Call Journey require the call to be completed","AI data retrieval may depend on JustCall AI service availability"],"relatedNodes":["JustCall Trigger","n8n-nodes-justcall"]}


node_type: n8n-nodes-vikunja.vikunja
package_name: n8n-nodes-vikunja
display_name: Vikunja
description: Get data from Vikunja's API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: kolaente
author_github_url: https://github.com/go-vikunja/n8n-vikunja-nodes.git
npm_package_name: n8n-nodes-vikunja
npm_version: 0.4.1
community_fetched_at: 2026-03-25T21:19:40.509Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Label",
          "value": "label"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Team",
          "value": "team"
        },
        {
          "name": "Webhook",
          "value": "webhook"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add a Comment",
          "value": "addComment",
          "action": "Add a comment",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/comments",
              "method": "PUT"
            }
          },
          "description": "Add a comment to a task"
        },
        {
          "name": "Add a Label",
          "value": "addLabel",
          "action": "Add a label",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/labels",
              "method": "PUT"
            }
          },
          "description": "Add a label to a task"
        },
        {
          "name": "Add a Reaction",
          "value": "addReaction",
          "action": "Add a reaction",
          "routing": {
            "request": {
              "url": "=/{{$parameter.reactionKind}}/{{$parameter.reactionEntityID}}/reactions",
              "method": "PUT"
            }
          },
          "description": "Add a reaction to a task or comment"
        },
        {
          "name": "Add a Relation",
          "value": "addRelation",
          "action": "Add a relation",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/relations",
              "method": "PUT"
            }
          },
          "description": "Add a relation to a task"
        },
        {
          "name": "Assign a User to a Task",
          "value": "assignUser",
          "action": "Assign a user",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/assignees",
              "method": "PUT"
            }
          }
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.taskProject}}/tasks",
              "method": "PUT"
            }
          },
          "description": "Create a task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a task"
        },
        {
          "name": "Delete a Comment",
          "value": "deleteComment",
          "action": "Delete a comment",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/comments/{{$parameter.commentId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete an existing comment on a task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}",
              "method": "GET"
            }
          },
          "description": "Get a task"
        },
        {
          "name": "Get All Comments",
          "value": "getAllComments",
          "action": "Get all comments",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/comments",
              "method": "GET"
            }
          },
          "description": "Fetch all comments on a task"
        },
        {
          "name": "Get All Labels",
          "value": "getAllLabelsOnTask",
          "action": "Get all labels",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/labels",
              "method": "GET"
            }
          },
          "description": "Fetch all labels on a task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tasks",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.taskProject}}/tasks",
              "method": "GET"
            }
          },
          "description": "Get many tasks"
        },
        {
          "name": "Remove a Label From a Task",
          "value": "removeLabel",
          "action": "Remove a label",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/labels/{{$parameter.taskLabel}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Remove a Reaction",
          "value": "removeReaction",
          "action": "Remove a reaction",
          "routing": {
            "request": {
              "url": "=/{{$parameter.reactionKind}}/{{$parameter.reactionEntityID}}/reactions/delete",
              "method": "POST"
            }
          },
          "description": "Remove a reaction from a task or comment"
        },
        {
          "name": "Remove a Relation",
          "value": "removeRelation",
          "action": "Remove a relation",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/relations/{{$parameter.relationKind}}/{{$parameter.otherTaskId}}",
              "method": "DELETE"
            }
          },
          "description": "Remove an existing relation on a task"
        },
        {
          "name": "Remove an Assigned User From a Task",
          "value": "unassignUser",
          "action": "Unassign a user",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/assignees/{{$parameter.userId}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}",
              "method": "POST"
            }
          },
          "description": "Update a task"
        },
        {
          "name": "Update a Comment",
          "value": "updateComment",
          "action": "Update a comment",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/comments/{{$parameter.commentId}}",
              "method": "POST"
            }
          },
          "description": "Update an existing comment on a task"
        },
        {
          "name": "Update Task Position",
          "value": "updateTaskPosition",
          "action": "Update the task position",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/position",
              "method": "POST"
            }
          },
          "description": "Update the position of a task on a view"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add a Team",
          "value": "addTeam",
          "action": "Add a team",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/teams",
              "method": "PUT"
            }
          },
          "description": "Add a team to a project"
        },
        {
          "name": "Add a User",
          "value": "addUser",
          "action": "Add a user",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/users",
              "method": "PUT"
            }
          },
          "description": "Add a user to a project"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a project",
          "routing": {
            "request": {
              "url": "=/projects",
              "method": "PUT"
            }
          },
          "description": "Create a project"
        },
        {
          "name": "Create a Kanban Bucket",
          "value": "createBucket",
          "action": "Create a bucket",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets",
              "method": "PUT"
            }
          },
          "description": "Create a kanban bucket for a view"
        },
        {
          "name": "Create a Link Share",
          "value": "createLinkShare",
          "action": "Create a link share",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/shares",
              "method": "PUT"
            }
          },
          "description": "Create Link Share for a project"
        },
        {
          "name": "Create a Project View",
          "value": "createProjectView",
          "action": "Create a project view",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views",
              "method": "PUT"
            }
          },
          "description": "Create a view in a project"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a project"
        },
        {
          "name": "Delete a Kanban Bucket",
          "value": "deleteBucket",
          "action": "Delete a bucket",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets/{{$parameter.bucketId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a kanban bucket from a view"
        },
        {
          "name": "Delete a Link Share",
          "value": "deleteLinkShare",
          "action": "Delete a link share",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/shares/{{$parameter.linkShareId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a link share from a project"
        },
        {
          "name": "Delete a Project View",
          "value": "deleteProjectView",
          "action": "Delete a project view",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a project view from a project"
        },
        {
          "name": "Duplicate",
          "value": "duplicate",
          "action": "Duplicate a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/duplicate",
              "method": "PUT"
            }
          },
          "description": "Duplicate a project"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}",
              "method": "GET"
            }
          },
          "description": "Get a project"
        },
        {
          "name": "Get All Link Shares",
          "value": "getAllLinkShares",
          "action": "Get all link shares",
          "routing": {
            "request": {
              "url": "=/project/{{$parameter.project}}/shares",
              "method": "GET"
            }
          },
          "description": "Fetch all linkShares on a project"
        },
        {
          "name": "Get All Project Views",
          "value": "getAllProjectViews",
          "action": "Get all views",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views",
              "method": "GET"
            }
          },
          "description": "Fetch all views which are associated to this project"
        },
        {
          "name": "Get All Teams",
          "value": "getAllTeams",
          "action": "Get all teams",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/teams",
              "method": "GET"
            }
          },
          "description": "Fetch all teams who have access to a project"
        },
        {
          "name": "Get All Users",
          "value": "getAllUsers",
          "action": "Get all users",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/users",
              "method": "GET"
            }
          },
          "description": "Fetch all users who have access to a project"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many projects",
          "routing": {
            "request": {
              "url": "=/projects",
              "method": "GET"
            }
          },
          "description": "Get many projects"
        },
        {
          "name": "Remove a Team From a Project",
          "value": "removeTeam",
          "action": "Remove a team",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/teams/{{$parameter.teamId}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Remove a User From a Project",
          "value": "removeUser",
          "action": "Remove a user",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/users/{{$parameter.userId}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}",
              "method": "POST"
            }
          },
          "description": "Update a project"
        },
        {
          "name": "Update a Kanban Bucket",
          "value": "updateBucket",
          "action": "Update a bucket",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets/{{$parameter.bucketId}}",
              "method": "POST"
            }
          },
          "description": "Update a kanban bucket in a view"
        },
        {
          "name": "Update a Project View",
          "value": "updateProjectView",
          "action": "Update a project view",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Update a Team's Permissions on a Project",
          "value": "updateTeam",
          "action": "Update a team s permissions on a project a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/teams/{{$parameter.teamId}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Update a User's Permissions on a Project",
          "value": "updateUser",
          "action": "Update a user s permissions on a project a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/users/{{$parameter.userId}}",
              "method": "POST"
            }
          }
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a label",
          "routing": {
            "request": {
              "url": "=/labels",
              "method": "PUT"
            }
          },
          "description": "Create a label"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a label",
          "routing": {
            "request": {
              "url": "=/labels/{{$parameter.label}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a label"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a label",
          "routing": {
            "request": {
              "url": "=/labels/{{$parameter.label}}",
              "method": "GET"
            }
          },
          "description": "Get a label"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many labels",
          "routing": {
            "request": {
              "url": "=/labels",
              "method": "GET"
            }
          },
          "description": "Get many labels"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a label",
          "routing": {
            "request": {
              "url": "=/labels/{{$parameter.label}}",
              "method": "POST"
            }
          },
          "description": "Update a label"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "label"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a webhook",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.webhookProject}}/webhooks",
              "method": "PUT"
            }
          },
          "description": "Create a webhook"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a webhook",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.webhookProject}}/webhooks/{{$parameter.webhook}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a webhook"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many webhooks",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.webhookProject}}/webhooks",
              "method": "GET"
            }
          },
          "description": "Get many webhooks"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a webhook",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.webhookProject}}/webhooks/{{$parameter.webhook}}",
              "method": "POST"
            }
          },
          "description": "Update a webhook"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhook"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add a User",
          "value": "addUser",
          "action": "Add a user",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}/members",
              "method": "PUT"
            }
          },
          "description": "Add a user to a team"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a team",
          "routing": {
            "request": {
              "url": "=/teams",
              "method": "PUT"
            }
          },
          "description": "Create a team"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a team",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a team"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a team",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}",
              "method": "GET"
            }
          },
          "description": "Get a team"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many teams",
          "routing": {
            "request": {
              "url": "=/teams",
              "method": "GET"
            }
          },
          "description": "Get many teams"
        },
        {
          "name": "Remove a User From a Team",
          "value": "removeUser",
          "action": "Remove a user",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}/members/{{$parameter.userId}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Toggle a User's Admin Status in a Team",
          "value": "updateUser",
          "action": "Toggle admin status",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}/members/{{$parameter.userId}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a team",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}",
              "method": "POST"
            }
          },
          "description": "Update a team"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add a Comment",
      "value": "addComment",
      "action": "Add a comment",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/comments",
          "method": "PUT"
        }
      },
      "description": "Add a comment to a task"
    },
    {
      "name": "Add a Label",
      "value": "addLabel",
      "action": "Add a label",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/labels",
          "method": "PUT"
        }
      },
      "description": "Add a label to a task"
    },
    {
      "name": "Add a Reaction",
      "value": "addReaction",
      "action": "Add a reaction",
      "routing": {
        "request": {
          "url": "=/{{$parameter.reactionKind}}/{{$parameter.reactionEntityID}}/reactions",
          "method": "PUT"
        }
      },
      "description": "Add a reaction to a task or comment"
    },
    {
      "name": "Add a Relation",
      "value": "addRelation",
      "action": "Add a relation",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/relations",
          "method": "PUT"
        }
      },
      "description": "Add a relation to a task"
    },
    {
      "name": "Assign a User to a Task",
      "value": "assignUser",
      "action": "Assign a user",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/assignees",
          "method": "PUT"
        }
      }
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.taskProject}}/tasks",
          "method": "PUT"
        }
      },
      "description": "Create a task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a task"
    },
    {
      "name": "Delete a Comment",
      "value": "deleteComment",
      "action": "Delete a comment",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/comments/{{$parameter.commentId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete an existing comment on a task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}",
          "method": "GET"
        }
      },
      "description": "Get a task"
    },
    {
      "name": "Get All Comments",
      "value": "getAllComments",
      "action": "Get all comments",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/comments",
          "method": "GET"
        }
      },
      "description": "Fetch all comments on a task"
    },
    {
      "name": "Get All Labels",
      "value": "getAllLabelsOnTask",
      "action": "Get all labels",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/labels",
          "method": "GET"
        }
      },
      "description": "Fetch all labels on a task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tasks",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.taskProject}}/tasks",
          "method": "GET"
        }
      },
      "description": "Get many tasks"
    },
    {
      "name": "Remove a Label From a Task",
      "value": "removeLabel",
      "action": "Remove a label",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/labels/{{$parameter.taskLabel}}",
          "method": "DELETE"
        }
      }
    },
    {
      "name": "Remove a Reaction",
      "value": "removeReaction",
      "action": "Remove a reaction",
      "routing": {
        "request": {
          "url": "=/{{$parameter.reactionKind}}/{{$parameter.reactionEntityID}}/reactions/delete",
          "method": "POST"
        }
      },
      "description": "Remove a reaction from a task or comment"
    },
    {
      "name": "Remove a Relation",
      "value": "removeRelation",
      "action": "Remove a relation",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/relations/{{$parameter.relationKind}}/{{$parameter.otherTaskId}}",
          "method": "DELETE"
        }
      },
      "description": "Remove an existing relation on a task"
    },
    {
      "name": "Remove an Assigned User From a Task",
      "value": "unassignUser",
      "action": "Unassign a user",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/assignees/{{$parameter.userId}}",
          "method": "DELETE"
        }
      }
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}",
          "method": "POST"
        }
      },
      "description": "Update a task"
    },
    {
      "name": "Update a Comment",
      "value": "updateComment",
      "action": "Update a comment",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/comments/{{$parameter.commentId}}",
          "method": "POST"
        }
      },
      "description": "Update an existing comment on a task"
    },
    {
      "name": "Update Task Position",
      "value": "updateTaskPosition",
      "action": "Update the task position",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/position",
          "method": "POST"
        }
      },
      "description": "Update the position of a task on a view"
    },
    {
      "name": "Add a Team",
      "value": "addTeam",
      "action": "Add a team",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/teams",
          "method": "PUT"
        }
      },
      "description": "Add a team to a project"
    },
    {
      "name": "Add a User",
      "value": "addUser",
      "action": "Add a user",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/users",
          "method": "PUT"
        }
      },
      "description": "Add a user to a project"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a project",
      "routing": {
        "request": {
          "url": "=/projects",
          "method": "PUT"
        }
      },
      "description": "Create a project"
    },
    {
      "name": "Create a Kanban Bucket",
      "value": "createBucket",
      "action": "Create a bucket",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets",
          "method": "PUT"
        }
      },
      "description": "Create a kanban bucket for a view"
    },
    {
      "name": "Create a Link Share",
      "value": "createLinkShare",
      "action": "Create a link share",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/shares",
          "method": "PUT"
        }
      },
      "description": "Create Link Share for a project"
    },
    {
      "name": "Create a Project View",
      "value": "createProjectView",
      "action": "Create a project view",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views",
          "method": "PUT"
        }
      },
      "description": "Create a view in a project"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a project"
    },
    {
      "name": "Delete a Kanban Bucket",
      "value": "deleteBucket",
      "action": "Delete a bucket",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets/{{$parameter.bucketId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a kanban bucket from a view"
    },
    {
      "name": "Delete a Link Share",
      "value": "deleteLinkShare",
      "action": "Delete a link share",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/shares/{{$parameter.linkShareId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a link share from a project"
    },
    {
      "name": "Delete a Project View",
      "value": "deleteProjectView",
      "action": "Delete a project view",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a project view from a project"
    },
    {
      "name": "Duplicate",
      "value": "duplicate",
      "action": "Duplicate a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/duplicate",
          "method": "PUT"
        }
      },
      "description": "Duplicate a project"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}",
          "method": "GET"
        }
      },
      "description": "Get a project"
    },
    {
      "name": "Get All Link Shares",
      "value": "getAllLinkShares",
      "action": "Get all link shares",
      "routing": {
        "request": {
          "url": "=/project/{{$parameter.project}}/shares",
          "method": "GET"
        }
      },
      "description": "Fetch all linkShares on a project"
    },
    {
      "name": "Get All Project Views",
      "value": "getAllProjectViews",
      "action": "Get all views",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views",
          "method": "GET"
        }
      },
      "description": "Fetch all views which are associated to this project"
    },
    {
      "name": "Get All Teams",
      "value": "getAllTeams",
      "action": "Get all teams",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/teams",
          "method": "GET"
        }
      },
      "description": "Fetch all teams who have access to a project"
    },
    {
      "name": "Get All Users",
      "value": "getAllUsers",
      "action": "Get all users",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/users",
          "method": "GET"
        }
      },
      "description": "Fetch all users who have access to a project"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many projects",
      "routing": {
        "request": {
          "url": "=/projects",
          "method": "GET"
        }
      },
      "description": "Get many projects"
    },
    {
      "name": "Remove a Team From a Project",
      "value": "removeTeam",
      "action": "Remove a team",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/teams/{{$parameter.teamId}}",
          "method": "DELETE"
        }
      }
    },
    {
      "name": "Remove a User From a Project",
      "value": "removeUser",
      "action": "Remove a user",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/users/{{$parameter.userId}}",
          "method": "DELETE"
        }
      }
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}",
          "method": "POST"
        }
      },
      "description": "Update a project"
    },
    {
      "name": "Update a Kanban Bucket",
      "value": "updateBucket",
      "action": "Update a bucket",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets/{{$parameter.bucketId}}",
          "method": "POST"
        }
      },
      "description": "Update a kanban bucket in a view"
    },
    {
      "name": "Update a Project View",
      "value": "updateProjectView",
      "action": "Update a project view",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}",
          "method": "POST"
        }
      }
    },
    {
      "name": "Update a Team's Permissions on a Project",
      "value": "updateTeam",
      "action": "Update a team s permissions on a project a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/teams/{{$parameter.teamId}}",
          "method": "POST"
        }
      }
    },
    {
      "name": "Update a User's Permissions on a Project",
      "value": "updateUser",
      "action": "Update a user s permissions on a project a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/users/{{$parameter.userId}}",
          "method": "POST"
        }
      }
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a label",
      "routing": {
        "request": {
          "url": "=/labels",
          "method": "PUT"
        }
      },
      "description": "Create a label"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a label",
      "routing": {
        "request": {
          "url": "=/labels/{{$parameter.label}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a label"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a label",
      "routing": {
        "request": {
          "url": "=/labels/{{$parameter.label}}",
          "method": "GET"
        }
      },
      "description": "Get a label"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many labels",
      "routing": {
        "request": {
          "url": "=/labels",
          "method": "GET"
        }
      },
      "description": "Get many labels"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a label",
      "routing": {
        "request": {
          "url": "=/labels/{{$parameter.label}}",
          "method": "POST"
        }
      },
      "description": "Update a label"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a webhook",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.webhookProject}}/webhooks",
          "method": "PUT"
        }
      },
      "description": "Create a webhook"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a webhook",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.webhookProject}}/webhooks/{{$parameter.webhook}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a webhook"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many webhooks",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.webhookProject}}/webhooks",
          "method": "GET"
        }
      },
      "description": "Get many webhooks"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a webhook",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.webhookProject}}/webhooks/{{$parameter.webhook}}",
          "method": "POST"
        }
      },
      "description": "Update a webhook"
    },
    {
      "name": "Add a User",
      "value": "addUser",
      "action": "Add a user",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}/members",
          "method": "PUT"
        }
      },
      "description": "Add a user to a team"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a team",
      "routing": {
        "request": {
          "url": "=/teams",
          "method": "PUT"
        }
      },
      "description": "Create a team"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a team",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a team"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a team",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}",
          "method": "GET"
        }
      },
      "description": "Get a team"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many teams",
      "routing": {
        "request": {
          "url": "=/teams",
          "method": "GET"
        }
      },
      "description": "Get many teams"
    },
    {
      "name": "Remove a User From a Team",
      "value": "removeUser",
      "action": "Remove a user",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}/members/{{$parameter.userId}}",
          "method": "DELETE"
        }
      }
    },
    {
      "name": "Toggle a User's Admin Status in a Team",
      "value": "updateUser",
      "action": "Toggle admin status",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}/members/{{$parameter.userId}}",
          "method": "POST"
        }
      }
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a team",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}",
          "method": "POST"
        }
      },
      "description": "Update a team"
    }
  ]

npm_readme:
  # n8n-nodes-vikunja

  This is an n8n community node. It lets you use Vikunja in your n8n workflows.

  Vikunja is an open-source, self-hostable to-do and productivity application.
  Check out [our website](https://vikunja.io/) for more information.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  * [Installation](#installation)  
  * [Operations](#operations)  
  * [Credentials](#credentials)
  * [Compatibility](#compatibility)  
  * [Development](#development)
  * [Resources](#resources)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  This node supports all operations supported by Vikunja API tokens.
  You can see a full list of possible actions when creating a token in Vikunja.

  It also allows you to trigger n8n workflows by Vikunja webhooks.

  ## Credentials

  The only supported authentication method for this node are API tokens.
  On your Vikunja instance, head over to *Settings > API Tokens* and create a new token.

  In n8n, create credentials as you usually would.
  Enter the API token created previously and the API url.

  ## Compatibility

  Tested with n8n Version 1.91.3.

  ## Development

  You need npm and NodeJS installed.

  * Install dependencies with `npm i`
  * Build the node with `npm run build`
  * Check for lint errors with `npm run lint` and fix them with `npm run lintfix`
  * To release a new version in the npm registry, run `npm publish`
  * To test the node, build the node with `npm run build`, then while in the project directory run `export N8N_CUSTOM_EXTENSIONS=$PWD` and start n8n with the `n8n` command. You should now be able to find the node when searching for it.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Vikunja n8n Docs](https://vikunja.io/docs/n8n)
  * [Vikunja General Docs](https://vikunja.io/docs/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Vikunja, an open-source self-hostable to-do and productivity application, by allowing data retrieval and workflow triggers via its API.","capabilities":["Retrieve data from Vikunja API","Trigger n8n workflows via Vikunja webhooks","Support all operations available in Vikunja API tokens"],"authentication":"API token required (configured via Credentials with API token and API URL)","commonUseCases":["Automating task management in n8n workflows","Syncing to-do items between Vikunja and other services","Triggering n8n workflows based on Vikunja events"],"limitations":["Limited to API token authentication method only","Community node (may lack official support or updates)"],"relatedNodes":["Vikunja API node","Webhook node","General API node"]}


node_type: n8n-nodes-understandtechchat.understandTechChat
package_name: n8n-nodes-understandtechchat
display_name: Understand Tech Chat
description: Chat with a model in UnderstandTech
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: understandtech
author_github_url: https://github.com/LavaxMaster/n8n-nodes-starter.git
npm_package_name: n8n-nodes-understandtechchat
npm_version: 0.1.5
community_fetched_at: 2026-03-25T21:19:40.511Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Chat",
          "value": "chat"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendMessage",
      "options": [
        {
          "name": "Send Message",
          "value": "sendMessage",
          "action": "Send message a chat",
          "description": "Send a message to the chat model"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Message",
      "value": "sendMessage",
      "action": "Send message a chat",
      "description": "Send a message to the chat model"
    }
  ]

npm_readme:
  <p align="center">
    <img src="https://raw.githubusercontent.com/LavaxMaster/n8n-nodes-starter/master/nodes/UnderstandTechChat/understandtech_logo.svg" width="400"/>
  </p>

  # n8n-nodes-understandtechchat

  Custom n8n integration nodes for **UnderstandTechChat**, enabling seamless interaction with your platform via authenticated API requests. Built using the [n8n community node starter template](https://github.com/n8n-io/n8n-nodes-starter).

  ## 🧠 What is UnderstandTechChat?

  UnderstandTechChat is a powerful platform that connects users to their own customly trained model and allows you to chat with your model. This custom n8n node allows you to directly integrate and automate your UnderstandTechChat workflows within n8n.

  ---

  ## 🚀 Features

  - Send messages and interact with the UnderstandTechChat API
  - Use custom credentials and authentication
  - Easily plug into any n8n workflow
  - Includes support for multiple HTTP verbs and custom actions

  ---

  ## 📦 Installation

  To install this node in your local or self-hosted n8n instance:

  ```bash
  npm install n8n-nodes-understandtechchat
  ```

  If you’re using Docker:

  ```Dockerfile
  RUN npm install n8n-nodes-understandtechchat
  ```

  Then restart your n8n instance.

  ---

  ## 📋 Prerequisites

  You’ll need:

  - [Git](https://git-scm.com/downloads)
  - Node.js (v20 or later) and [pnpm](https://pnpm.io/)
  - [n8n installed](https://docs.n8n.io/)
    
  Install globally:
  ```bash
  npm install -g n8n
  ```

  ---

  ## 🛠 Development Setup

  1. Clone this repo:
     ```bash
     git clone https://github.com/LavaxMaster/n8n-nodes-starter.git
     cd n8n-nodes-starter
     ```

  2. Install dependencies:
     ```bash
     npm install
     ```

  3. Build and lint:
     ```bash
     npm run build
     npm run lint
     ```

  4. Customize your logic inside:
     - `nodes/UnderstandTechChat/UnderstandTechChat.node.ts`
     - `credentials/UnderstandTechApiCredentials.credentials.ts`

  ---

  ## 🧪 Testing

  You can run and test the node locally within n8n using:
  ```bash
  n8n
  ```

  Then, open the UI and test the `UnderstandTechChat` node in your workflow.

  Refer to the [official guide](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for running custom nodes locally.

  ---

  ## 🌍 Publishing to npm

  When you're ready to share:

  1. Update `package.json` fields:
     - `name`
     - `version`
     - `description`
     - `repository`

  2. Build and lint:
     ```bash
     npm run build
     npm run lint
     ```

  3. Publish:
     ```bash
     npm publish --access public
     ```

  ---

  ## 📄 License

  [MIT License](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n node enables direct integration with the UnderstandTechChat platform, allowing users to send messages and automate interactions with custom-trained AI models within n8n workflows.","capabilities":["Send messages to UnderstandTechChat API","Interact with custom-trained AI models","Support multiple HTTP verbs","Custom credential management","Authentication via API credentials"],"authentication":"API key required via custom credentials","commonUseCases":["Automating customer support with custom AI models","Integrating custom-trained models into existing n8n workflows","Chatbot automation with personalized model training"],"limitations":["Requires Node.js v20 or later for local development","Requires manual installation via npm or Docker (not pre-packaged in n8n marketplace)","Custom node implementation requires development knowledge"],"relatedNodes":["n8n HTTP Request node","n8n Credentials node","n8n Webhook node"]}


node_type: n8n-nodes-chatwork.chatwork
package_name: n8n-nodes-chatwork
display_name: Chatwork
description: Retrieve data from Chatwork API.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: hoangdv
author_github_url: https://github.com/hoangsetup/
npm_package_name: n8n-nodes-chatwork
npm_version: 3.0.1
community_fetched_at: 2026-03-25T21:19:40.512Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Me",
          "value": "Me",
          "description": "Used to access your account information"
        },
        {
          "name": "My",
          "value": "My",
          "description": "Used to access your data on the account"
        },
        {
          "name": "Contact",
          "value": "Contact",
          "description": "Used to access the list of your contacts"
        },
        {
          "name": "Room",
          "value": "Room",
          "description": "Used to access information such as messages, members, files, and tasks associated to a specific conversation. The conversation can be Group chat, Direct chat, or My chat."
        },
        {
          "name": "Incoming Request",
          "value": "IncomingRequest",
          "description": "Used to access the list of contact requests you have received"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get Contacts",
          "value": "get",
          "action": "Get the contact list",
          "routing": {
            "request": {
              "url": "/contacts",
              "method": "GET"
            }
          },
          "description": "Get the contact list"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get Account Information",
          "value": "get",
          "action": "Get your account information",
          "routing": {
            "request": {
              "url": "/me",
              "method": "GET"
            }
          },
          "description": "Get your account information"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Me"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "status",
      "options": [
        {
          "name": "Get Status",
          "value": "status",
          "action": "Get unread messages unread to messages and unfinished tasks count",
          "routing": {
            "request": {
              "url": "/my/status",
              "method": "GET"
            }
          },
          "description": "Get unread messages, unread To messages, and unfinished tasks count"
        },
        {
          "name": "Get Tasks",
          "value": "tasks",
          "action": "Get the list of all unfinished tasks",
          "routing": {
            "request": {
              "url": "/my/tasks",
              "method": "GET"
            }
          },
          "description": "Get the list of all unfinished tasks"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "My"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get All Rooms",
          "value": "getAll",
          "routing": {
            "request": {
              "url": "/rooms",
              "method": "GET"
            }
          },
          "description": "Retrieve all rooms the user belongs to"
        },
        {
          "name": "Create Room",
          "value": "create",
          "routing": {
            "request": {
              "url": "/rooms",
              "method": "POST"
            }
          },
          "description": "Create a new chat room"
        },
        {
          "name": "Get Room Detail",
          "value": "getDetail",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve detailed information about a specific room"
        },
        {
          "name": "Update Room",
          "value": "updateInfo",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}",
              "method": "PUT"
            }
          },
          "description": "Update room name, description, or icon"
        },
        {
          "name": "Leave or Delete Room",
          "value": "leaveOrDelete",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "Leave the room or delete it (admin only)"
        },
        {
          "name": "Get Members",
          "value": "getMembers",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/members",
              "method": "GET"
            }
          },
          "description": "Get all members of the room"
        },
        {
          "name": "Change Members",
          "value": "changeMembers",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/members",
              "method": "PUT"
            }
          },
          "description": "Change room members and roles"
        },
        {
          "name": "Get Messages",
          "value": "getMessages",
          "routing": {
            "request": {
              "qs": {
                "force": 1
              },
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages",
              "method": "GET"
            }
          },
          "description": "Get messages from the room"
        },
        {
          "name": "Send Message",
          "value": "sendMessage",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages",
              "method": "POST"
            }
          },
          "description": "Send a message to the specified room"
        },
        {
          "name": "Get Message",
          "value": "getMessage",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages/{{$parameter[\"messageId\"]}}",
              "method": "GET"
            }
          },
          "description": "Get a specific message by ID"
        },
        {
          "name": "Update Message",
          "value": "updateMessage",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages/{{$parameter[\"messageId\"]}}",
              "method": "PUT"
            }
          },
          "description": "Update a message in the room"
        },
        {
          "name": "Delete Message",
          "value": "deleteMessage",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages/{{$parameter[\"messageId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a message in the room"
        },
        {
          "name": "Get Tasks",
          "value": "getTasks",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/tasks",
              "method": "GET"
            }
          },
          "description": "Get tasks in the room"
        },
        {
          "name": "Create Task",
          "value": "createTask",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/tasks",
              "method": "POST"
            }
          },
          "description": "Create a task in the room"
        },
        {
          "name": "Get Task Detail",
          "value": "getTaskDetail",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/tasks/{{$parameter[\"taskId\"]}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific task in the room"
        },
        {
          "name": "Update Task Status",
          "value": "updateTaskStatus",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/tasks/{{$parameter[\"taskId\"]}}/status",
              "method": "PUT"
            }
          },
          "description": "Change the completion status of a task"
        },
        {
          "name": "Get Files",
          "value": "getFiles",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/files",
              "method": "GET"
            }
          },
          "description": "Get the list of files in the room"
        },
        {
          "name": "Get File Detail",
          "value": "getFile",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/files/{{$parameter[\"fileId\"]}}",
              "method": "GET"
            }
          },
          "description": "Get details of a file in the room"
        },
        {
          "name": "Upload File",
          "value": "uploadFile",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/files",
              "method": "POST",
              "headers": {
                "accept": "application/json",
                "content-type": "multipart/form-data"
              }
            }
          },
          "description": "Upload a new file to the room"
        },
        {
          "name": "Mark as Read",
          "value": "markAsRead",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages/read",
              "method": "PUT"
            }
          },
          "description": "Mark messages in the room as read"
        },
        {
          "name": "Mark as Unread",
          "value": "markAsUnread",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages/unread",
              "method": "PUT"
            }
          },
          "description": "Mark message in the room as unread"
        },
        {
          "name": "Get Invite Link",
          "value": "getInviteLink",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/link",
              "method": "GET"
            }
          },
          "description": "Get invite link for the room"
        },
        {
          "name": "Create Invite Link",
          "value": "createInviteLink",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/link",
              "method": "POST"
            }
          },
          "description": "Create invite link for the room"
        },
        {
          "name": "Delete Invite Link",
          "value": "deleteInviteLink",
          "routing": {
            "request": {
              "url": "=/rooms/{{$parameter[\"roomId\"]}}/link",
              "method": "DELETE"
            }
          },
          "description": "Delete invite link for the room"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Room"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get all incoming requests",
          "routing": {
            "request": {
              "url": "/incoming_requests",
              "method": "GET"
            }
          },
          "description": "Get the list of contact requests the user has received"
        },
        {
          "name": "Approve",
          "value": "approve",
          "action": "Approve an incoming request",
          "routing": {
            "request": {
              "url": "=/incoming_requests/{{$parameter[\"requestId\"]}}",
              "method": "PUT"
            }
          },
          "description": "Approve a contact request the user has received"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an incoming request",
          "routing": {
            "request": {
              "url": "=/incoming_requests/{{$parameter[\"requestId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "Decline a contact request the user has received"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "IncomingRequest"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Contacts",
      "value": "get",
      "action": "Get the contact list",
      "routing": {
        "request": {
          "url": "/contacts",
          "method": "GET"
        }
      },
      "description": "Get the contact list"
    },
    {
      "name": "Get Account Information",
      "value": "get",
      "action": "Get your account information",
      "routing": {
        "request": {
          "url": "/me",
          "method": "GET"
        }
      },
      "description": "Get your account information"
    },
    {
      "name": "Get Status",
      "value": "status",
      "action": "Get unread messages unread to messages and unfinished tasks count",
      "routing": {
        "request": {
          "url": "/my/status",
          "method": "GET"
        }
      },
      "description": "Get unread messages, unread To messages, and unfinished tasks count"
    },
    {
      "name": "Get Tasks",
      "value": "tasks",
      "action": "Get the list of all unfinished tasks",
      "routing": {
        "request": {
          "url": "/my/tasks",
          "method": "GET"
        }
      },
      "description": "Get the list of all unfinished tasks"
    },
    {
      "name": "Get All Rooms",
      "value": "getAll",
      "routing": {
        "request": {
          "url": "/rooms",
          "method": "GET"
        }
      },
      "description": "Retrieve all rooms the user belongs to"
    },
    {
      "name": "Create Room",
      "value": "create",
      "routing": {
        "request": {
          "url": "/rooms",
          "method": "POST"
        }
      },
      "description": "Create a new chat room"
    },
    {
      "name": "Get Room Detail",
      "value": "getDetail",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve detailed information about a specific room"
    },
    {
      "name": "Update Room",
      "value": "updateInfo",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}",
          "method": "PUT"
        }
      },
      "description": "Update room name, description, or icon"
    },
    {
      "name": "Leave or Delete Room",
      "value": "leaveOrDelete",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "Leave the room or delete it (admin only)"
    },
    {
      "name": "Get Members",
      "value": "getMembers",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/members",
          "method": "GET"
        }
      },
      "description": "Get all members of the room"
    },
    {
      "name": "Change Members",
      "value": "changeMembers",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/members",
          "method": "PUT"
        }
      },
      "description": "Change room members and roles"
    },
    {
      "name": "Get Messages",
      "value": "getMessages",
      "routing": {
        "request": {
          "qs": {
            "force": 1
          },
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages",
          "method": "GET"
        }
      },
      "description": "Get messages from the room"
    },
    {
      "name": "Send Message",
      "value": "sendMessage",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages",
          "method": "POST"
        }
      },
      "description": "Send a message to the specified room"
    },
    {
      "name": "Get Message",
      "value": "getMessage",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages/{{$parameter[\"messageId\"]}}",
          "method": "GET"
        }
      },
      "description": "Get a specific message by ID"
    },
    {
      "name": "Update Message",
      "value": "updateMessage",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages/{{$parameter[\"messageId\"]}}",
          "method": "PUT"
        }
      },
      "description": "Update a message in the room"
    },
    {
      "name": "Delete Message",
      "value": "deleteMessage",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages/{{$parameter[\"messageId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a message in the room"
    },
    {
      "name": "Get Tasks",
      "value": "getTasks",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/tasks",
          "method": "GET"
        }
      },
      "description": "Get tasks in the room"
    },
    {
      "name": "Create Task",
      "value": "createTask",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/tasks",
          "method": "POST"
        }
      },
      "description": "Create a task in the room"
    },
    {
      "name": "Get Task Detail",
      "value": "getTaskDetail",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/tasks/{{$parameter[\"taskId\"]}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific task in the room"
    },
    {
      "name": "Update Task Status",
      "value": "updateTaskStatus",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/tasks/{{$parameter[\"taskId\"]}}/status",
          "method": "PUT"
        }
      },
      "description": "Change the completion status of a task"
    },
    {
      "name": "Get Files",
      "value": "getFiles",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/files",
          "method": "GET"
        }
      },
      "description": "Get the list of files in the room"
    },
    {
      "name": "Get File Detail",
      "value": "getFile",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/files/{{$parameter[\"fileId\"]}}",
          "method": "GET"
        }
      },
      "description": "Get details of a file in the room"
    },
    {
      "name": "Upload File",
      "value": "uploadFile",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/files",
          "method": "POST",
          "headers": {
            "accept": "application/json",
            "content-type": "multipart/form-data"
          }
        }
      },
      "description": "Upload a new file to the room"
    },
    {
      "name": "Mark as Read",
      "value": "markAsRead",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages/read",
          "method": "PUT"
        }
      },
      "description": "Mark messages in the room as read"
    },
    {
      "name": "Mark as Unread",
      "value": "markAsUnread",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/messages/unread",
          "method": "PUT"
        }
      },
      "description": "Mark message in the room as unread"
    },
    {
      "name": "Get Invite Link",
      "value": "getInviteLink",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/link",
          "method": "GET"
        }
      },
      "description": "Get invite link for the room"
    },
    {
      "name": "Create Invite Link",
      "value": "createInviteLink",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/link",
          "method": "POST"
        }
      },
      "description": "Create invite link for the room"
    },
    {
      "name": "Delete Invite Link",
      "value": "deleteInviteLink",
      "routing": {
        "request": {
          "url": "=/rooms/{{$parameter[\"roomId\"]}}/link",
          "method": "DELETE"
        }
      },
      "description": "Delete invite link for the room"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get all incoming requests",
      "routing": {
        "request": {
          "url": "/incoming_requests",
          "method": "GET"
        }
      },
      "description": "Get the list of contact requests the user has received"
    },
    {
      "name": "Approve",
      "value": "approve",
      "action": "Approve an incoming request",
      "routing": {
        "request": {
          "url": "=/incoming_requests/{{$parameter[\"requestId\"]}}",
          "method": "PUT"
        }
      },
      "description": "Approve a contact request the user has received"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an incoming request",
      "routing": {
        "request": {
          "url": "=/incoming_requests/{{$parameter[\"requestId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "Decline a contact request the user has received"
    }
  ]

npm_readme:
  # n8n-nodes-chatwork

  This is an n8n community node. It lets you use **ChatWork** in your n8n workflows.

  **ChatWork** is a business chat platform that provides messaging, task management, file sharing, and team collaboration features via a REST API.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)
  [Operations](#operations)
  [Credentials](#credentials)
  [Compatibility](#compatibility)
  [Usage](#usage)
  [Resources](#resources)
  [Version history](#version-history)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  After installation, restart n8n to load the ChatWork node.

  ## Operations

  This node supports the following ChatWork API operations:

  ### Me
  - Get account information

  ### My
  - Get status (unread counts, tasks)
  - Get tasks assigned to the authenticated user

  ### Contacts
  - Get contact list

  ### Incoming Requests

  - List incoming requests
  - Approve request
  - Decline request

  ### Rooms
  - Get all rooms
  - Get room details
  - Create a room
  - Update room information
  - Leave or delete a room
  - Get room members
  - Change associated members
  - Get messages
  - Send a message
  - Get message details
  - Update a message
  - Delete a message
  - Mark as Read
  - Mark as unread
  - Get tasks
  - Create a task
  - Update task status
  - Get task details
  - Get files
  - Get file details (with optional temporary download URL)
  - Upload file
  - Get invite link
  - Create invite link
  - Delete invite link

  ## Webhook Trigger

  This package provides a **Chatwork Trigger** node that allows n8n workflows to receive events from Chatwork via webhooks.

  ### Supported Events

  The trigger node listens to incoming Chatwork webhook events and routes them to different outputs:

  | Event Type        | Output          |
  |-------------------|-----------------|
  | `mention_to_me`   | Mention To Me   |
  | `message_created` | Message Created |
  | `message_updated` | Message Updated |

  ### Webhook Security

  Chatwork signs webhook requests using an HMAC-SHA256 signature.

  The Chatwork Trigger node supports **optional signature verification** using one or more webhook tokens:

  - Signature header: `x-chatworkwebhooksignature`
  - Hash algorithm: HMAC-SHA256
  - Secret key: Base64-decoded webhook token

  > Signature verification can be disabled for local development and testing.


  Each output can be connected independently in your workflow.

  ### Development Notes

  - The workflow must be **active** for webhooks to be registered
  - Webhooks will return `404 – unknown webhook` if the workflow is inactive
  - Signature verification should be disabled when testing with manual `curl` requests

  ### Known Limitations

  - Webhook events are currently processed **as-is**
  - Duplicate or replayed webhook events are **not yet deduplicated**
  - Replay protection and idempotency will be added in a future release

  ## Credentials

  This node requires a **ChatWork API Token**.

  ### Prerequisites
  - A ChatWork account
  - An API token generated from your ChatWork account settings

  ### Setup
  1. In n8n, go to **Credentials**
  2. Create new credentials of type **ChatWork API**
  3. Paste your ChatWork API token
  4. Save the credentials and select them in the ChatWork node

  Authentication is handled via the `X-ChatWorkToken` request header.

  ## Compatibility

  - **Minimum n8n version**: 1.x
  - **Tested with**: n8n 1.x (community nodes API v1)

  This node uses the new **routing-based request system** introduced in n8n v1. Older n8n versions are not supported.

  ## Usage

  Most operations are straightforward and map directly to ChatWork API endpoints.

  Notes:
  - Boolean options such as *Create download URL* control optional API query parameters.

  If you are new to n8n, see the [Try it out](https://docs.n8n.io/try-it-out/) guide to get started.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [ChatWork API Documentation (PDF)](https://download.chatwork.com/ChatWork_API_Documentation.pdf)

  ## Version history

  ### 2.0.0
  - Migrated to n8n routing-based request structure
  - Improved Room operations
  - Fixed message sending with multipart/form-data
  - General refactoring and cleanup

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with the ChatWork business chat platform, allowing users to retrieve data, manage tasks, communicate, and handle file operations via its REST API.","capabilities":["Retrieve account information","Get user status and assigned tasks","Manage contact lists","Handle incoming requests (approve/decline)","Manage rooms (create, update, delete, leave)","Send, retrieve, and update messages","Manage tasks (create, update status, get details)","Handle file operations (upload, download, get details)","Generate and manage invite links","Receive webhook events (mention_to_me, message_created, message_updated)"],"authentication":"API Token required (ChatWork API Token stored in credentials, sent via X-ChatWorkToken header)","commonUseCases":["Automated task management in ChatWork","Automated messaging and notifications","File sharing workflows","Incoming request approval automation","Webhook-based event processing for mentions or messages"],"limitations":["Webhook events are processed as-is without deduplication","Replay protection and idempotency for webhooks are not yet implemented","Requires n8n version 1.x or higher","Signature verification must be disabled for manual curl testing"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.webhook"]}


node_type: n8n-nodes-zitedb.ziteTrigger
package_name: n8n-nodes-zitedb
display_name: Zite Trigger
description: Triggers when events occur in Zite (records, tables, or fields)
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: xkcdstickfigure
author_github_url: https://github.com/fillout/
npm_package_name: n8n-nodes-zitedb
npm_version: 1.0.1
community_fetched_at: 2026-03-25T21:19:40.513Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n package for Zite Database

  ![Banner](https://raw.githubusercontent.com/fillout/n8n-nodes-zitedb/refs/heads/main/banner.png)

  This is an n8n community node that lets you interact with databases in Zite. [Learn more](https://www.fillout.com/help/database/overview).

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) on the n8n documentation website.

  ## Usage

  Add the trigger in n8n, and when creating a credential, you'll need to get an API key from your [account settings](https://build.fillout.com/home/settings/developer) in Zite. Make sure that the correct base URL is set, as you can have your data hosted in different regions with [Fillout Enterprise](https://www.fillout.com/enterprise).

  ## Developers

  For instructions on testing this node on a local n8n instance for development purposes, see https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows automatically when events occur in Zite databases, including records, tables, or field changes.","capabilities":["Monitor Zite database records for changes","Detect table modifications","Track field-level updates","Automate workflow execution based on database events"],"authentication":"API key required (obtained from Zite account settings)","commonUseCases":["Automate data processing when new records are added to Zite","Trigger notifications or actions when database fields are updated","Integrate Zite database changes with external systems via n8n workflows"],"limitations":["Requires Fillout Enterprise for multi-region base URL configuration","Limited to Zite database events only"],"relatedNodes":["n8n-nodes-zitedb.ziteDatabase","n8n-nodes-zitedb.ziteRecord","n8n-nodes-zitedb.ziteField"]}


node_type: @fundraisingbox/n8n-nodes-fundraisingbox.fundraisingbox
package_name: @fundraisingbox/n8n-nodes-fundraisingbox
display_name: FundraisingBox
description: Interact with the FundraisingBox API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: p.montag
author_github_url: https://github.com/FundraisingBox/n8n-nodes-fundraisingbox.git
npm_package_name: @fundraisingbox/n8n-nodes-fundraisingbox
npm_version: 1.0.1
community_fetched_at: 2026-03-25T21:19:40.514Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "person",
      "options": [
        {
          "name": "Communication",
          "value": "communication"
        },
        {
          "name": "Donation",
          "value": "donation"
        },
        {
          "name": "Donation Type",
          "value": "donationType"
        },
        {
          "name": "Person",
          "value": "person",
          "description": "FundraisingBox uses the term Person for what many tools call a Contact"
        },
        {
          "name": "Person Address",
          "value": "personAddress"
        },
        {
          "name": "Person Email Address",
          "value": "personEmailAddress"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Source",
          "value": "source"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a communication",
          "description": "Add a communication entry for a person"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a communication",
          "description": "Delete a communication permanently"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a communication",
          "description": "Retrieve a communication"
        },
        {
          "name": "Get Many",
          "value": "list",
          "action": "Get many communications",
          "description": "Retrieve a list of communication entries"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a communication",
          "description": "Update an existing communication entry"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "communication"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a donation",
          "description": "Retrieve a donation"
        },
        {
          "name": "Get Many",
          "value": "list",
          "action": "Get many donations",
          "description": "Retrieve a list of donations"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "donation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a donation type",
          "description": "Retrieve a donation type"
        },
        {
          "name": "Get Many",
          "value": "list",
          "action": "Get many donation types",
          "description": "Retrieve a list of donation types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "donationType"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a person",
          "description": "Create a new person"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a person",
          "description": "Retrieve a person"
        },
        {
          "name": "Get Many",
          "value": "list",
          "action": "Get many persons",
          "description": "Retrieve a list of persons"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a person",
          "description": "Update an existing person"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "person"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a person address",
          "description": "Add an address to a person"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a person address",
          "description": "Retrieve a person address"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a person address",
          "description": "Update an existing address"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "personAddress"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a person email address",
          "description": "Add an email address to a person"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a person email address",
          "description": "Retrieve a person email address"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a person email address",
          "description": "Update an existing email address"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "personEmailAddress"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a project",
          "description": "Retrieve a project"
        },
        {
          "name": "Get Many",
          "value": "list",
          "action": "Get many projects",
          "description": "Retrieve a list of projects"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a source",
          "description": "Retrieve a source"
        },
        {
          "name": "Get Many",
          "value": "list",
          "action": "Get many sources",
          "description": "Retrieve a list of sources"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "source"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a communication",
      "description": "Add a communication entry for a person"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a communication",
      "description": "Delete a communication permanently"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a communication",
      "description": "Retrieve a communication"
    },
    {
      "name": "Get Many",
      "value": "list",
      "action": "Get many communications",
      "description": "Retrieve a list of communication entries"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a communication",
      "description": "Update an existing communication entry"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a donation",
      "description": "Retrieve a donation"
    },
    {
      "name": "Get Many",
      "value": "list",
      "action": "Get many donations",
      "description": "Retrieve a list of donations"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a donation type",
      "description": "Retrieve a donation type"
    },
    {
      "name": "Get Many",
      "value": "list",
      "action": "Get many donation types",
      "description": "Retrieve a list of donation types"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a person",
      "description": "Create a new person"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a person",
      "description": "Retrieve a person"
    },
    {
      "name": "Get Many",
      "value": "list",
      "action": "Get many persons",
      "description": "Retrieve a list of persons"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a person",
      "description": "Update an existing person"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a person address",
      "description": "Add an address to a person"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a person address",
      "description": "Retrieve a person address"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a person address",
      "description": "Update an existing address"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a person email address",
      "description": "Add an email address to a person"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a person email address",
      "description": "Retrieve a person email address"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a person email address",
      "description": "Update an existing email address"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a project",
      "description": "Retrieve a project"
    },
    {
      "name": "Get Many",
      "value": "list",
      "action": "Get many projects",
      "description": "Retrieve a list of projects"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a source",
      "description": "Retrieve a source"
    },
    {
      "name": "Get Many",
      "value": "list",
      "action": "Get many sources",
      "description": "Retrieve a list of sources"
    }
  ]

npm_readme:
  # @fundraisingbox/n8n-nodes-fundraisingbox

  This is an n8n community node. It lets you use FundraisingBox in your n8n workflows.

  FundraisingBox is a donation and fundraising management platform that helps non-profit organizations collect and manage donations online.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-license/) workflow automation platform.

  [Installation](#installation)
  [Operations](#operations)
  [Credentials](#credentials)
  [Compatibility](#compatibility)
  [Resources](#resources)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  ### FundraisingBox (action node)

  #### Communication

  - **Create** – Create a new communication entry linked to a person. Requires Person ID and HTML message. Optional fields: type (note/email/phone/talk/letter), subject, direction (in/out), date, sticky.
  - **Delete** – Delete a communication entry permanently.
  - **Get** – Retrieve a single communication entry by ID.
  - **Get Many** – Retrieve a list of communications. Filter by Person ID, type, direction, and date range. Supports pagination.
  - **Update** – Update an existing communication entry by ID.

  #### Donation

  - **Get** – Retrieve a single donation by ID.
  - **Get Many** – Retrieve a list of donations. Filter by amount range, date range, updated range, project, type, source, person, test status, and various IDs. Supports pagination.

  #### Donation Type

  - **Get** – Retrieve a single donation type by ID.
  - **Get Many** – Retrieve a list of donation types. Supports pagination.

  #### Person

  FundraisingBox uses the term "Person" for what many tools call a Contact.

  - **Create** – Create a new person. Requires Last Name. First Name and additional fields (Company ID, External Person ID, Greeting, Info, Position, Salutation, Title) are optional.
  - **Get** – Retrieve a single person by their numeric ID.
  - **Get Many** – Retrieve a list of persons. Filter by salutation, first/last name, company, phone, email, address, tag IDs, person IDs, smart search ID, and created/updated date range. Supports pagination.
  - **Update** – Update an existing person by ID. All fields are optional.

  #### Person Address

  - **Create** – Create a new address for a person. Requires Person ID, street address, post code, city, and country. Optional fields: state, type (work/home/other), is main address.
  - **Get** – Retrieve a single address by ID.
  - **Update** – Update an existing address by ID. Updatable fields: street address, post code, city, state, country, type, is main address.

  #### Person Email Address

  - **Create** – Create a new email address for a person. Requires Person ID and email. Optional fields: type (work/home/other), is main email address.
  - **Get** – Retrieve a single email address by ID.
  - **Update** – Update an existing email address by ID. Updatable fields: email, type, is main email address.

  #### Project

  - **Get** – Retrieve a single project by ID.
  - **Get Many** – Retrieve a list of projects. Supports pagination.

  #### Source

  - **Get** – Retrieve a single source by ID.
  - **Get Many** – Retrieve a list of sources. Supports pagination.

  ### FundraisingBox Donation Trigger (polling trigger node)

  - **New Donation** – Triggers the workflow whenever a new confirmed donation appears. On first activation the node initialises its checkpoint to the latest donation and will only emit donations created after that point.

  ## Credentials

  FundraisingBox uses HTTP Basic Auth with an API key. To authenticate:

  1. Retrieve your API key by following the [FundraisingBox support article on connecting third-party systems via REST API](https://support.fundraisingbox.com/de/support/solutions/articles/79000147562-schnittstellen-zu-drittsystemen-herstellen-rest-api-webhooks-).
  2. In n8n, create a new **FundraisingBox API** credential.
  3. Paste your API key into the **API Key** field.

  The node sends the API key as the HTTP Basic Auth username (the password field is ignored by the API).

  ## Compatibility

  Requires **n8n 1.x**. The node uses `usableAsTool: true`, which requires n8n 1.31 or later.

  No known incompatibilities with current n8n versions.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [FundraisingBox API documentation](https://developer.fundraisingbox.com/reference/introduction-json)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of interactions with the FundraisingBox API, allowing non-profit organizations to manage donations, contacts, and communications programmatically.","capabilities":["Create, read, update, and delete communication entries (notes, emails, phone records, etc.)","Retrieve and filter donation data by amount, date, project, type, source, or person","Manage person/contact records including creation, updates, and filtering","Handle person addresses and email addresses (work/home/other types)","Retrieve donation type and project information","Retrieve source information","Poll for new confirmed donations via a trigger node"],"authentication":"API Key (HTTP Basic Auth - key used as username, password field ignored)","commonUseCases":["Automating donation follow-up emails based on donation status","Syncing donor data between FundraisingBox and other CRM systems","Triggering workflows when new donations are received","Managing contact records and communication history for non-profit campaigns"],"limitations":["Requires n8n 1.31 or later (due to usableAsTool: true requirement)","Password field in credentials is ignored; API key must be used as HTTP Basic Auth username","Limited to HTTP Basic Auth; OAuth2 or other methods not supported"],"relatedNodes":["n8n HTTP Request node","n8n Webhook node","n8n Trigger node (for donation polling)"]}


node_type: n8n-nodes-geminigen.Geminigen
package_name: n8n-nodes-geminigen
display_name: Geminigen
description: Generate AI videos using geminigen.ai API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: tranhaiminh
author_github_url: https://github.com/tranhaiming14/
npm_package_name: n8n-nodes-geminigen
npm_version: 1.0.8
community_fetched_at: 2026-03-25T21:19:40.515Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "videoGeneration",
      "options": [
        {
          "name": "Video Generation",
          "value": "videoGeneration"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateVideo",
      "options": [
        {
          "name": "Generate Video",
          "value": "generateVideo",
          "action": "Generate a video",
          "description": "Generate Video using AI Models"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "videoGeneration"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Video",
      "value": "generateVideo",
      "action": "Generate a video",
      "description": "Generate Video using AI Models"
    }
  ]

npm_readme:
  # n8n-nodes-geminigen

  This is an n8n community node. It lets you use geminigen in your n8n workflows.

  The GeminiGen.AI Video Generation API allows you to create high-quality videos from text prompts using state-of-the-art AI models. You can use this API to generate video content, animations, marketing materials, or any visual video content you can imagine.


  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-license/) workflow automation platform.

  [Installation](#installation)
  [Operations](#operations)
  [Credentials](#credentials)
  [Compatibility](#compatibility)
  [Usage](#usage)
  [Resources](#resources)
  [Version history](#version-history)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ### Community Nodes 

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-geminigen` in **Enter npm package name**
  4. Select **Install**

  ### Manual Installation

  To get started install the package in your n8n root directory:
  ```bash
  npm install n8n-nodes-geminigen
  ```

  For Docker-based deployments add the package to your [data directory](https://docs.n8n.io/hosting/configuration/configuration-methods/#mount-the-data-folder):
  ```bash
  cd /path/to/.n8n/nodes
  npm install n8n-nodes-geminigen
  ```

  ## Operations

  Generate Video

  ## Credentials

  In order to get the api key needed to use this node, you should visit https://geminigen.ai to sign up, click on your profile then API to generate the api key

  ## Compatibility

  - Minimum n8n version: 1.0.0
  - Tested against: n8n 1.0.0 and later versions
  - No known version incompatibility issues

  ## Usage

  ### Basic Setup

  1. **Install the node**: Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) to add this community node to your n8n instance.

  2. **Set up credentials**: 
     - Visit [GeminiGen.AI](https://geminigen.ai) and sign up for an account
     - Go to your profile → API to generate an API key
     - In n8n, create new credentials of type "GeminiGen API" and enter your API key

  3. **Add the node to your workflow**: Search for "GeminiGen" in the node palette and drag it into your workflow.

  ### Configuration

  - **Prompt**: Enter a detailed text description of the video you want to generate (e.g., "A serene mountain landscape with flowing rivers and wildlife")
  - **Model**: Choose from available AI models:
    - Veo 3, Veo 3 Fast (Google's Veo models)
    - Sora 2, Sora 2 Pro (OpenAI's Sora models)
    - Seedance 2 Remix, Seedance 2 Omni (Seedance models)
    - Grok (xAI's model)

  ### Example Workflow

  1. **Trigger**: Use a Schedule Trigger to run daily
  2. **GeminiGen Node**: Configure with your prompt and preferred model
  3. **Output**: The generated video URL will be returned after generation is complete, please be patient since the video generation can take a few minutes.

  ### Tips

  - More detailed prompts generally produce better results
  - Video generation can take several minutes
  - Check the "fullResponse" output for additional metadata about the generation
  - If generation fails, the node will output the error message for debugging

  For more advanced usage, combine with other n8n nodes to create automated video content workflows.

  ### Docs

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [GeminiGen API documentation](https://docs.geminigen.ai/)

ai_documentation_summary:
  {"purpose":"Generates AI videos from text prompts using the GeminiGen.AI API, supporting multiple state-of-the-art video generation models.","capabilities":["Generate videos from text prompts","Support multiple AI video models (Veo, Sora, Seedance, Grok)","Return generated video URLs","Provide fullResponse metadata for generation details","Handle error messages for failed generations"],"authentication":"API key required (obtained from https://geminigen.ai)","commonUseCases":["Automated video content creation","Marketing material generation","Animation workflows","Daily scheduled video updates"],"limitations":["Video generation can take several minutes","Community node (may not be available in all n8n instances)","Requires manual API key setup"],"relatedNodes":["Schedule Trigger","HTTP Request","Code"]}


node_type: n8n-nodes-carsxe.carsXe
package_name: n8n-nodes-carsxe
display_name: CarsXE
description: Interact with CarsXE API for vehicle data
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: omar_walied
author_github_url: https://github.com/carsxe/
npm_package_name: n8n-nodes-carsxe
npm_version: 1.1.0
community_fetched_at: 2026-03-25T21:19:40.516Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "vin",
      "options": [
        {
          "name": "Diagnostic",
          "value": "diagnostic"
        },
        {
          "name": "License Plate",
          "value": "plate"
        },
        {
          "name": "Vehicle Data",
          "value": "vehicle"
        },
        {
          "name": "VIN",
          "value": "vin"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "specs",
      "options": [
        {
          "name": "Check Liens and Theft Records",
          "value": "lienTheft",
          "action": "Check liens and theft records",
          "description": "Check for active liens and theft records on a vehicle"
        },
        {
          "name": "Get a Vehicle History Report",
          "value": "history",
          "action": "Get a vehicle history report",
          "description": "Retrieve vehicle history"
        },
        {
          "name": "Get a Vehicle Market Value",
          "value": "marketValue",
          "action": "Get a vehicle market value",
          "description": "Estimate vehicle market value based on VIN"
        },
        {
          "name": "Get International VIN Specs",
          "value": "intVinDecoder",
          "action": "Get international VIN specs",
          "description": "Decode VIN with worldwide support"
        },
        {
          "name": "Get Vehicle Safety Recalls",
          "value": "recalls",
          "action": "Get vehicle safety recalls",
          "description": "Get safety recall data for a VIN"
        },
        {
          "name": "Get VIN Specs",
          "value": "specs",
          "action": "Get VIN specs",
          "description": "Decode VIN and get full vehicle specifications"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "vin"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "plateDecoder",
      "options": [
        {
          "name": "Get a License Plate From Image",
          "value": "plateImageRecognition",
          "action": "Get a license plate from image",
          "description": "Read and decode plates from images"
        },
        {
          "name": "Get License Plate Specs",
          "value": "plateDecoder",
          "action": "Get license plate specs",
          "description": "Decode license plate info (plate, country)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "plate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "images",
      "options": [
        {
          "name": "Get Vehicle Images",
          "value": "images",
          "action": "Get vehicle images",
          "description": "Fetch images by make, model, year, trim"
        },
        {
          "name": "Get Vehicle Specs by Year/Make/Model",
          "value": "yearMakeModel",
          "action": "Get vehicle specs by year make and model",
          "description": "Query vehicle by year, make, model and trim (optional)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "vehicle"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "obdCodesDecoder",
      "options": [
        {
          "name": "Get a VIN From Image",
          "value": "vinOcr",
          "action": "Get a VIN from image",
          "description": "Extract VINs from images using OCR"
        },
        {
          "name": "Get OBD Code Specs",
          "value": "obdCodesDecoder",
          "action": "Get OBD code specs",
          "description": "Decode OBD error/diagnostic codes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "diagnostic"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Check Liens and Theft Records",
      "value": "lienTheft",
      "action": "Check liens and theft records",
      "description": "Check for active liens and theft records on a vehicle"
    },
    {
      "name": "Get a Vehicle History Report",
      "value": "history",
      "action": "Get a vehicle history report",
      "description": "Retrieve vehicle history"
    },
    {
      "name": "Get a Vehicle Market Value",
      "value": "marketValue",
      "action": "Get a vehicle market value",
      "description": "Estimate vehicle market value based on VIN"
    },
    {
      "name": "Get International VIN Specs",
      "value": "intVinDecoder",
      "action": "Get international VIN specs",
      "description": "Decode VIN with worldwide support"
    },
    {
      "name": "Get Vehicle Safety Recalls",
      "value": "recalls",
      "action": "Get vehicle safety recalls",
      "description": "Get safety recall data for a VIN"
    },
    {
      "name": "Get VIN Specs",
      "value": "specs",
      "action": "Get VIN specs",
      "description": "Decode VIN and get full vehicle specifications"
    },
    {
      "name": "Get a License Plate From Image",
      "value": "plateImageRecognition",
      "action": "Get a license plate from image",
      "description": "Read and decode plates from images"
    },
    {
      "name": "Get License Plate Specs",
      "value": "plateDecoder",
      "action": "Get license plate specs",
      "description": "Decode license plate info (plate, country)"
    },
    {
      "name": "Get Vehicle Images",
      "value": "images",
      "action": "Get vehicle images",
      "description": "Fetch images by make, model, year, trim"
    },
    {
      "name": "Get Vehicle Specs by Year/Make/Model",
      "value": "yearMakeModel",
      "action": "Get vehicle specs by year make and model",
      "description": "Query vehicle by year, make, model and trim (optional)"
    },
    {
      "name": "Get a VIN From Image",
      "value": "vinOcr",
      "action": "Get a VIN from image",
      "description": "Extract VINs from images using OCR"
    },
    {
      "name": "Get OBD Code Specs",
      "value": "obdCodesDecoder",
      "action": "Get OBD code specs",
      "description": "Decode OBD error/diagnostic codes"
    }
  ]

npm_readme:
  # n8n-nodes-carsxe

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-carsxe.svg)](https://www.npmjs.com/package/n8n-nodes-carsxe)
  [![npm downloads](https://img.shields.io/npm/dm/n8n-nodes-carsxe.svg)](https://www.npmjs.com/package/n8n-nodes-carsxe)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  **Comprehensive vehicle data integration for [n8n](https://n8n.io)** - VIN decoding, license plate lookup, vehicle history, market values, and more using the [CarsXE API](https://www.carsxe.com).

  ---

  ## 🚗 Features

  - **VIN Decoding** - Decode US & International VINs with full specifications
  - **License Plate Lookup** - Multi-country plate decoder (US, CA, AU, UK, PK)
  - **Vehicle History** - Ownership records and accident history
  - **Market Values** - Real-time vehicle valuations
  - **Safety Recalls** - Check manufacturer recalls
  - **Vehicle Images** - Fetch professional vehicle photos
  - **OBD Codes** - Decode diagnostic trouble codes
  - **OCR Recognition** - Extract VINs and plates from images

  ---

  ## 📦 Installation

  ### Via Community Nodes (Recommended)

  1. Go to **Settings** → **Community Nodes**
  2. Click **Install a community node**
  3. Enter: `n8n-nodes-carsxe`
  4. Click **Install**

  ### Via npm

  ```bash
  # Global installation
  npm install -g n8n-nodes-carsxe

  # Local installation
  npm install n8n-nodes-carsxe

  # Restart n8n
  n8n start
  ```

  ### Via Docker

  ```bash
  docker run -d \
    --name n8n \
    -p 5678:5678 \
    -e N8N_COMMUNITY_PACKAGES=n8n-nodes-carsxe \
    -v n8n_data:/home/node/.n8n \
    n8nio/n8n
  ```

  ---

  ## 🔑 Credentials

  1. Get your API key from [CarsXE.com](https://www.carsxe.com/signup)
  2. In n8n: **Credentials** → **New** → **CarsXE API**
  3. Paste your API key and save

  ---

  ## 🎯 Operations

  ### VIN Operations

  - **Decode VIN** - Full vehicle specifications
  - **Decode International VIN** - Worldwide VIN support
  - **Get History Report** - Ownership & accident history
  - **Get Market Value** - Current market valuation
  - **Get Safety Recalls** - Manufacturer recalls

  ### License Plate Operations

  - **Decode License Plate** - Vehicle info from plate
  - **Recognize Plate From Image** - OCR plate extraction

  ### Vehicle Data Operations

  - **Get Images** - Professional vehicle photos
  - **Query by Year/Make/Model** - Search by attributes

  ### Diagnostic Operations

  - **Decode OBD Code** - Interpret diagnostic codes
  - **Extract VIN From Image** - OCR VIN extraction

  ---

  ## 📖 Quick Examples

  ### Example 1: Decode VIN

  ```javascript
  // Configuration
  Resource: VIN
  Operation: Decode VIN
  VIN: WBAFR7C57CC811956

  // Response
  {
    "success": true,
    "vin": "WBAFR7C57CC811956",
    "year": "2012",
    "make": "BMW",
    "model": "7 Series",
    "trim": "750i",
    "engine": "4.4L V8 Turbocharged"
  }
  ```

  ### Example 2: License Plate Lookup

  ```javascript
  // Configuration
  Resource: License Plate
  Operation: Decode License Plate
  Plate: 7XER187
  Country: US
  State: CA (in Additional Options)

  // Response
  {
    "success": true,
    "plate": "7XER187",
    "state": "CA",
    "make": "BMW",
    "model": "750Li"
  }
  ```

  ### Example 3: Get Vehicle Images

  ```javascript
  // Configuration
  Resource: Vehicle Data
  Operation: Get Images
  Make: BMW
  Model: X5
  Year: 2019 (in Additional Options)

  // Response
  {
    "success": true,
    "images": [
      {
        "angle": "front",
        "url": "https://cdn.carsxe.com/..."
      }
    ]
  }
  ```

  ---

  ## 🔄 Common Workflows

  **VIN Decoder API**

  ```
  [Webhook] → [CarsXE: Decode VIN] → [HTTP Response]
  ```

  **License Plate Scanner**

  ```
  [Webhook] → [CarsXE: Recognize Plate] → [Database]
  ```

  **Daily Recall Checker**

  ```
  [Schedule] → [CarsXE: Get Recalls] → [Email/Slack]
  ```

  ---

  ## 🐛 Troubleshooting

  **Error: "Request failed with status code 401"**

  - Check your API key in Credentials
  - Get a new key from [CarsXE Dashboard](https://www.carsxe.com/dashboard)

  **Error: "Invalid VIN format"**

  - VIN must be exactly 17 characters
  - Example: `WBAFR7C57CC811956`

  **Node not appearing after installation**

  - Refresh your browser
  - Clear cache: `rm -rf ~/.n8n/cache`
  - Restart n8n

  ---

  ## 📊 Response Format

  ### Success

  ```json
  {
  	"success": true
  	// ... operation data
  }
  ```

  ### Error

  ```json
  {
  	"success": false,
  	"statusCode": 401,
  	"error": "Invalid API key",
  	"error_description": "Please check your credentials"
  }
  ```

  ---

  ## 📄 License

  MIT License - Copyright (c) 2025 CarsXE

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the CarsXE API to retrieve comprehensive vehicle data including VIN decoding, license plate lookups, vehicle history, market values, recalls, images, and OBD codes.","capabilities":["Decode US and International VINs","Perform multi-country license plate lookups (US, CA, AU, UK, PK)","Retrieve vehicle ownership and accident history","Get real-time market valuations","Check manufacturer safety recalls","Fetch professional vehicle images","Decode OBD diagnostic trouble codes","Extract VINs and license plates from images using OCR"],"authentication":"API key required","commonUseCases":["Automated VIN decoding for vehicle identification","License plate recognition and vehicle lookup","Vehicle history and recall monitoring workflows","Market value estimation for vehicles"],"limitations":["VIN must be exactly 17 characters for decoding","License plate lookup limited to specific countries (US, CA, AU, UK, PK)","OCR functionality depends on image quality and clarity"],"relatedNodes":["HTTP Request","Webhook","Schedule Trigger","Email","Slack"]}


node_type: @camb-ai/n8n-nodes-cambai.cambAi
package_name: @camb-ai/n8n-nodes-cambai
display_name: Camb.ai
description: Use Camb.ai for TTS, transcription, translation, voice cloning, and more
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: neilruaro-camb
author_github_url: https://github.com/camb-ai/n8n-nodes-cambai.git
npm_package_name: @camb-ai/n8n-nodes-cambai
npm_version: 0.1.5
community_fetched_at: 2026-03-25T21:19:40.517Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "audio",
      "options": [
        {
          "name": "Audio",
          "value": "audio",
          "description": "Generate or process audio"
        },
        {
          "name": "Text",
          "value": "text",
          "description": "Translate or transcribe text"
        },
        {
          "name": "Voice",
          "value": "voice",
          "description": "Create or clone voices"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "synthesize",
      "options": [
        {
          "name": "Synthesize (TTS)",
          "value": "synthesize",
          "action": "Synthesize text to speech",
          "description": "Convert text to speech"
        },
        {
          "name": "Translated TTS",
          "value": "translatedTts",
          "action": "Translate and synthesize",
          "description": "Translate text and convert to speech"
        },
        {
          "name": "Generate Sound",
          "value": "generateSound",
          "action": "Generate sound from prompt",
          "description": "Generate sound or music from text prompt"
        },
        {
          "name": "Separate Audio",
          "value": "separateAudio",
          "action": "Separate audio components",
          "description": "Isolate speech from background audio"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "transcribe",
      "options": [
        {
          "name": "Transcribe",
          "value": "transcribe",
          "action": "Transcribe audio to text",
          "description": "Convert speech to text"
        },
        {
          "name": "Translate",
          "value": "translate",
          "action": "Translate text",
          "description": "Translate text between languages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listVoices",
      "options": [
        {
          "name": "Clone Voice",
          "value": "cloneVoice",
          "action": "Clone voice from audio",
          "description": "Clone a voice from an audio sample"
        },
        {
          "name": "Create From Description",
          "value": "createVoice",
          "action": "Create voice from description",
          "description": "Create a voice from text description"
        },
        {
          "name": "List Voices",
          "value": "listVoices",
          "action": "List available voices",
          "description": "Get all available voices"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voice"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Synthesize (TTS)",
      "value": "synthesize",
      "action": "Synthesize text to speech",
      "description": "Convert text to speech"
    },
    {
      "name": "Translated TTS",
      "value": "translatedTts",
      "action": "Translate and synthesize",
      "description": "Translate text and convert to speech"
    },
    {
      "name": "Generate Sound",
      "value": "generateSound",
      "action": "Generate sound from prompt",
      "description": "Generate sound or music from text prompt"
    },
    {
      "name": "Separate Audio",
      "value": "separateAudio",
      "action": "Separate audio components",
      "description": "Isolate speech from background audio"
    },
    {
      "name": "Transcribe",
      "value": "transcribe",
      "action": "Transcribe audio to text",
      "description": "Convert speech to text"
    },
    {
      "name": "Translate",
      "value": "translate",
      "action": "Translate text",
      "description": "Translate text between languages"
    },
    {
      "name": "Clone Voice",
      "value": "cloneVoice",
      "action": "Clone voice from audio",
      "description": "Clone a voice from an audio sample"
    },
    {
      "name": "Create From Description",
      "value": "createVoice",
      "action": "Create voice from description",
      "description": "Create a voice from text description"
    },
    {
      "name": "List Voices",
      "value": "listVoices",
      "action": "List available voices",
      "description": "Get all available voices"
    }
  ]

npm_readme:
  # @camb-ai/n8n-nodes-cambai

  This is an n8n community node for [Camb.ai](https://camb.ai) - an AI-powered audio platform providing text-to-speech, voice cloning, transcription, translation, and more.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  ### Audio
  - **Synthesize (TTS)** - Convert text to speech using MARS models (flash, pro, instruct)
  - **Translated TTS** - Translate text and synthesize speech in one step
  - **Generate Sound** - Generate sound effects or music from text prompts
  - **Separate Audio** - Isolate foreground (vocals) from background audio

  ### Text
  - **Transcribe** - Convert speech to text with timestamps and speaker identification
  - **Translate** - Translate text between languages

  ### Voice
  - **Clone Voice** - Create a custom voice from an audio sample
  - **Create from Description** - Generate a voice from a text description
  - **List Voices** - Get all available voices

  ## Credentials

  You need a Camb.ai API key to use this node. Get your API key from [Camb.ai](https://studio.camb.ai).

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Tested with n8n version 2.2.0

  ## Resources

  - [Camb.ai Documentation](https://docs.camb.ai)
  - [Camb.ai API Reference](https://docs.camb.ai/api-reference)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Camb.ai for audio processing tasks including text-to-speech, transcription, translation, voice cloning, and audio separation.","capabilities":["Text-to-speech synthesis using MARS models (flash, pro, instruct)","Translated text-to-speech (translate and synthesize in one step)","Sound effect and music generation from text prompts","Audio foreground/background separation","Speech-to-text transcription with timestamps and speaker ID","Text translation between languages","Custom voice cloning from audio samples","Voice generation from text descriptions","List available voices"],"authentication":"API key required (obtained from Camb.ai studio)","commonUseCases":["Automated content generation with natural-sounding voices","Audio file processing and cleanup","Multilingual content translation and speech synthesis","Voice cloning for personalized audio experiences","Transcription of spoken content for workflows"],"limitations":["Requires n8n version 1.0.0 or later","Community node (may have fewer updates than official nodes)"],"relatedNodes":["n8n HTTP Request","n8n Code","n8n Split In Batches"]}


node_type: n8n-nodes-reachkit.reachkit
package_name: n8n-nodes-reachkit
display_name: Reachkit
description: Interact with the Reachkit API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: quintenkamphuis
author_github_url: https://github.com/quinten-kamphuis/
npm_package_name: n8n-nodes-reachkit
npm_version: 0.1.2
community_fetched_at: 2026-03-25T21:19:40.518Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "campaign",
      "options": [
        {
          "name": "Blocklist",
          "value": "blocklist"
        },
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Conversation",
          "value": "conversation"
        },
        {
          "name": "Inbox",
          "value": "inbox"
        },
        {
          "name": "Lead",
          "value": "lead"
        },
        {
          "name": "Sequence",
          "value": "sequence"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add",
          "value": "add",
          "action": "Add to blocklist",
          "routing": {
            "request": {
              "url": "/blocklist",
              "method": "POST"
            }
          },
          "description": "Add an email to the blocklist"
        },
        {
          "name": "Check",
          "value": "check",
          "action": "Check if email is blocked",
          "routing": {
            "request": {
              "url": "/blocklist/check",
              "method": "GET"
            }
          },
          "description": "Check if an email is in the blocklist"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Remove from blocklist",
          "routing": {
            "request": {
              "url": "=/blocklist/{{$parameter.entryId}}",
              "method": "DELETE"
            }
          },
          "description": "Remove an email from the blocklist"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get blocklist entries",
          "routing": {
            "request": {
              "url": "/blocklist",
              "method": "GET"
            }
          },
          "description": "Get many blocklist entries"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "blocklist"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific campaign"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get campaigns",
          "routing": {
            "request": {
              "url": "/campaigns",
              "method": "GET"
            }
          },
          "description": "Get many campaigns"
        },
        {
          "name": "Get Analytics",
          "value": "getAnalytics",
          "action": "Get campaign analytics",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/analytics",
              "method": "GET"
            }
          },
          "description": "Get analytics data for a campaign"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}",
              "method": "PATCH"
            }
          },
          "description": "Update a campaign status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a conversation",
          "routing": {
            "request": {
              "url": "=/unibox/conversations/{{$parameter.conversationId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific conversation"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get conversations",
          "routing": {
            "request": {
              "url": "/unibox/conversations",
              "method": "GET"
            }
          },
          "description": "Get many conversations"
        },
        {
          "name": "Reply",
          "value": "reply",
          "action": "Reply to a conversation",
          "routing": {
            "request": {
              "url": "=/unibox/conversations/{{$parameter.conversationId}}/reply",
              "method": "POST"
            }
          },
          "description": "Send a reply in a conversation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an inbox",
          "routing": {
            "request": {
              "url": "=/inboxes/{{$parameter.inboxId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific inbox"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get inboxes",
          "routing": {
            "request": {
              "url": "/inboxes",
              "method": "GET"
            }
          },
          "description": "Get many inboxes"
        },
        {
          "name": "Get Warmup Stats",
          "value": "getWarmupStats",
          "action": "Get warmup statistics",
          "routing": {
            "request": {
              "url": "=/inboxes/{{$parameter.inboxId}}/warmup/stats",
              "method": "GET"
            }
          },
          "description": "Get warmup statistics for an inbox"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "inbox"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a lead",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads",
              "method": "POST"
            }
          },
          "description": "Create a new lead in a campaign"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a lead",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a lead from a campaign"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a lead",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific lead"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get leads",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads",
              "method": "GET"
            }
          },
          "description": "Get many leads from a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get sequences",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/sequences",
              "method": "GET"
            }
          },
          "description": "Get many sequences for a campaign"
        },
        {
          "name": "Update Variant",
          "value": "updateVariant",
          "action": "Update a sequence variant",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/variants/{{$parameter.variantId}}",
              "method": "PATCH"
            }
          },
          "description": "Update the enabled status of a sequence variant"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sequence"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add",
      "value": "add",
      "action": "Add to blocklist",
      "routing": {
        "request": {
          "url": "/blocklist",
          "method": "POST"
        }
      },
      "description": "Add an email to the blocklist"
    },
    {
      "name": "Check",
      "value": "check",
      "action": "Check if email is blocked",
      "routing": {
        "request": {
          "url": "/blocklist/check",
          "method": "GET"
        }
      },
      "description": "Check if an email is in the blocklist"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Remove from blocklist",
      "routing": {
        "request": {
          "url": "=/blocklist/{{$parameter.entryId}}",
          "method": "DELETE"
        }
      },
      "description": "Remove an email from the blocklist"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get blocklist entries",
      "routing": {
        "request": {
          "url": "/blocklist",
          "method": "GET"
        }
      },
      "description": "Get many blocklist entries"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific campaign"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get campaigns",
      "routing": {
        "request": {
          "url": "/campaigns",
          "method": "GET"
        }
      },
      "description": "Get many campaigns"
    },
    {
      "name": "Get Analytics",
      "value": "getAnalytics",
      "action": "Get campaign analytics",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/analytics",
          "method": "GET"
        }
      },
      "description": "Get analytics data for a campaign"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}",
          "method": "PATCH"
        }
      },
      "description": "Update a campaign status"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a conversation",
      "routing": {
        "request": {
          "url": "=/unibox/conversations/{{$parameter.conversationId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific conversation"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get conversations",
      "routing": {
        "request": {
          "url": "/unibox/conversations",
          "method": "GET"
        }
      },
      "description": "Get many conversations"
    },
    {
      "name": "Reply",
      "value": "reply",
      "action": "Reply to a conversation",
      "routing": {
        "request": {
          "url": "=/unibox/conversations/{{$parameter.conversationId}}/reply",
          "method": "POST"
        }
      },
      "description": "Send a reply in a conversation"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an inbox",
      "routing": {
        "request": {
          "url": "=/inboxes/{{$parameter.inboxId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific inbox"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get inboxes",
      "routing": {
        "request": {
          "url": "/inboxes",
          "method": "GET"
        }
      },
      "description": "Get many inboxes"
    },
    {
      "name": "Get Warmup Stats",
      "value": "getWarmupStats",
      "action": "Get warmup statistics",
      "routing": {
        "request": {
          "url": "=/inboxes/{{$parameter.inboxId}}/warmup/stats",
          "method": "GET"
        }
      },
      "description": "Get warmup statistics for an inbox"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a lead",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads",
          "method": "POST"
        }
      },
      "description": "Create a new lead in a campaign"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a lead",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a lead from a campaign"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a lead",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific lead"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get leads",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads",
          "method": "GET"
        }
      },
      "description": "Get many leads from a campaign"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get sequences",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/sequences",
          "method": "GET"
        }
      },
      "description": "Get many sequences for a campaign"
    },
    {
      "name": "Update Variant",
      "value": "updateVariant",
      "action": "Update a sequence variant",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/variants/{{$parameter.variantId}}",
          "method": "PATCH"
        }
      },
      "description": "Update the enabled status of a sequence variant"
    }
  ]

npm_readme:
  # n8n-nodes-reachkit

  This is an n8n community node that lets you use [Reachkit](https://reachkit.ai) in your n8n workflows.

  Reachkit is a cold email outreach platform that helps you manage campaigns, leads, inboxes, and conversations.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Resources](#resources)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  This node supports the following resources and operations:

  ### Blocklist

  - **Add**: Add an email to the blocklist
  - **Check**: Check if an email is in the blocklist
  - **Delete**: Remove an email from the blocklist
  - **Get Many**: Get all blocklist entries with pagination and search

  ### Campaign

  - **Get**: Get details of a specific campaign
  - **Get Many**: List all campaigns with pagination and search
  - **Get Analytics**: Get analytics data for a campaign including daily stats and sequence performance
  - **Update**: Update a campaign status (active/paused)

  ### Conversation

  - **Get**: Get details of a specific conversation with all messages
  - **Get Many**: List all conversations with pagination and filtering by folder
  - **Reply**: Send a reply in a conversation

  ### Inbox

  - **Get**: Get details of a specific inbox
  - **Get Many**: List all inboxes with pagination and search
  - **Get Warmup Stats**: Get warmup statistics for an inbox over the last 7 days

  ### Lead

  - **Create**: Create a new lead in a campaign with custom variables
  - **Delete**: Delete a lead from a campaign
  - **Get**: Get details of a specific lead
  - **Get Many**: List all leads in a campaign with pagination and search

  ### Sequence

  - **Get Many**: List all sequences for a campaign with their variants
  - **Update Variant**: Update the enabled status of a sequence variant

  ## Credentials

  To use this node, you need a Reachkit API key.

  ### Getting your API key:

  1. Log in to your Reachkit account
  2. Navigate to **Settings → Integrations**
  3. Click **Add API Key**
  4. Enter a name for the key
  5. Copy the API key (it will only be shown once)

  ### Authentication

  The node uses Bearer token authentication. Simply paste your API key in the credentials configuration.

  **Note**: API access is available exclusively for users on the Professional and Agency plans.

  ## Compatibility

  Tested with n8n version 1.x.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Reachkit n8n Documentation](https://reachkit.ai/help/articles/n8n-integration)
  - [Reachkit API Documentation](https://reachkit.ai/help/articles/api-documentation)
  - [Reachkit Webhooks Documentation](https://reachkit.ai/help/articles/webhooks)

  ## Usage Examples

  ### Create leads from a spreadsheet

  1. Use the **Spreadsheet File** node to read your leads
  2. Connect to **Reachkit** node
  3. Select **Lead** resource and **Create** operation
  4. Map the email, first name, last name fields
  5. Set custom variables for personalization

  ### Get campaign analytics

  1. Use the **Reachkit** node
  2. Select **Campaign** resource and **Get Analytics** operation
  3. Enter the campaign ID
  4. Process the daily stats and sequence performance data

  ### Reply to new conversations

  1. Use the **Reachkit** node with **Conversation** → **Get Many**
  2. Filter by folder (primary/others)
  3. Process unread conversations
  4. Use **Conversation** → **Reply** to send responses

  ### Manage blocklist

  1. Add emails to blocklist from bounced leads
  2. Check if an email is blocked before adding to campaign
  3. Clean up your blocklist periodically

  ## Version History

  ### 0.1.0

  - Initial release
  - Support for all major Reachkit API endpoints
  - Full CRUD operations for leads, campaigns, conversations
  - Blocklist management
  - Inbox and warmup stats
  - Sequence variant management

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of Reachkit cold email outreach workflows, allowing management of campaigns, leads, conversations, inboxes, and blocklists.","capabilities":["Add, check, delete, and retrieve blocklist entries","Retrieve and update campaign details and status","Fetch campaign analytics including daily stats and sequence performance","Retrieve, list, and reply to conversations","Retrieve inbox details and warmup statistics","Create leads with custom variables and delete existing leads","List sequences and update variant enabled status"],"authentication":"API key required (Bearer token)","commonUseCases":["Automated lead creation from spreadsheets","Campaign performance monitoring and analytics","Automated replies to new conversations","Managing email blocklists to prevent bounce rates"],"limitations":["API access restricted to Professional and Agency plans only","Requires manual API key configuration"],"relatedNodes":["Spreadsheet File","HTTP Request","Wait","Code"]}


node_type: n8n-nodes-msdefender.msdefender
package_name: n8n-nodes-msdefender
display_name: Microsoft Defender API
description: Interact with the Microsoft Defender API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: reothor
author_github_url: https://github.com/frodehus/
npm_package_name: n8n-nodes-msdefender
npm_version: 1.8.4
community_fetched_at: 2026-03-25T21:19:40.520Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "advancedQuery",
      "options": [
        {
          "name": "Advanced Query",
          "value": "advancedQuery"
        },
        {
          "name": "Alert",
          "value": "defenderAlert"
        },
        {
          "name": "Exposure Score",
          "value": "exposure"
        },
        {
          "name": "Indicator",
          "value": "indicator"
        },
        {
          "name": "Investigation",
          "value": "investigation"
        },
        {
          "name": "Machine",
          "value": "machine"
        },
        {
          "name": "Machine Action",
          "value": "machineAction"
        },
        {
          "name": "Recommendation",
          "value": "recommendation"
        },
        {
          "name": "Remediation",
          "value": "remediation"
        },
        {
          "name": "Software",
          "value": "software"
        },
        {
          "name": "Vulnerability",
          "value": "vulnerability"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAlerts",
      "options": [
        {
          "name": "Get Alert",
          "value": "getAlertById",
          "action": "Get a security alert",
          "description": "Get a security alert by ID"
        },
        {
          "name": "List Alerts",
          "value": "listAlerts",
          "action": "List security alerts",
          "routing": {
            "request": {
              "url": "/api/alerts",
              "method": "GET"
            }
          },
          "description": "List security alerts"
        },
        {
          "name": "Update Alert",
          "value": "updateAlert",
          "action": "Update a security alert",
          "description": "Update the status or classification of a security alert"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "defenderAlert"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllMachines",
      "options": [
        {
          "name": "Add Or Remove Tag",
          "value": "addOrRemoveTag",
          "action": "Add or remove tag on a machine",
          "description": "Adds or removes a tag from a specified machine ID"
        },
        {
          "name": "Find By Tag",
          "value": "findByTag",
          "action": "Find machines by tag",
          "description": "Retrieves a list of machines associated with a specific tag"
        },
        {
          "name": "Get Many",
          "value": "getAllMachines",
          "action": "Get many machines",
          "routing": {
            "request": {
              "url": "/api/machines",
              "method": "GET"
            }
          },
          "description": "Retrieve many machines"
        },
        {
          "name": "Get Security Recommendations",
          "value": "getSecurityRecommendations",
          "action": "Get security recommendations for a machine",
          "description": "Retrieves security recommendations for a specified machine ID"
        },
        {
          "name": "List Software",
          "value": "listSoftware",
          "action": "List software on a machine",
          "description": "Retrieves a collection of installed software related to a given machine ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "machine"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "run",
      "options": [
        {
          "name": "Run",
          "value": "run",
          "action": "Run advanced query",
          "routing": {
            "request": {
              "url": "/api/advancedqueries/run",
              "method": "POST"
            }
          },
          "description": "Run advanced query using KQL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "advancedQuery"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "currentExposureScore",
      "options": [
        {
          "name": "Current Exposure Score",
          "value": "currentExposureScore",
          "action": "Get current exposure score",
          "routing": {
            "request": {
              "url": "/api/exposureScore",
              "method": "GET"
            }
          },
          "description": "Get the exposure score"
        },
        {
          "name": "Get By Machine Groups",
          "value": "getByMachineGroups",
          "action": "Get many exposure scores",
          "routing": {
            "request": {
              "url": "/api/exposureScore/ByMachineGroups",
              "method": "GET"
            }
          },
          "description": "Retrieve exposure scores by machine groups"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "exposure"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllInvestigations",
      "options": [
        {
          "name": "Get All Investigations",
          "value": "getAllInvestigations",
          "action": "Get all investigations",
          "routing": {
            "request": {
              "url": "/api/investigations",
              "method": "GET"
            }
          },
          "description": "Retrieve all investigations"
        },
        {
          "name": "Get Investigation By ID",
          "value": "getInvestigationById",
          "action": "Get an investigation by ID",
          "routing": {
            "request": {
              "url": "=/api/investigations/{{ $parameter.investigationId }}",
              "method": "GET"
            }
          },
          "description": "Retrieve a specific investigation by its ID"
        },
        {
          "name": "Start Investigation",
          "value": "startInvestigation",
          "action": "Start an investigation on a machine",
          "description": "Initiate an investigation on a specified machine"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "investigation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "isolate",
      "options": [
        {
          "name": "Cancel Machine Action",
          "value": "cancelMachineAction",
          "action": "Cancel machine action",
          "description": "Cancel an already launched machine action that isn't yet in final state"
        },
        {
          "name": "Isolate Machine",
          "value": "isolate",
          "action": "Isolate a machine",
          "description": "Isolate a machine from the network"
        },
        {
          "name": "List Machine Actions",
          "value": "listMachineActions",
          "action": "List actions for a machine",
          "routing": {
            "request": {
              "url": "/api/machineactions",
              "method": "GET"
            }
          },
          "description": "List actions for a machine"
        },
        {
          "name": "Offboard Machine",
          "value": "offboardMachine",
          "action": "Offboard a machine",
          "description": "Offboard a machine from Microsoft Defender for Endpoint"
        },
        {
          "name": "Remove From Isolation",
          "value": "removeFromIsolation",
          "action": "Remove a machine from isolation",
          "description": "Remove a machine from isolation"
        },
        {
          "name": "Run Antivirus Scan",
          "value": "runAntivirusScan",
          "action": "Run an antivirus scan on a machine",
          "description": "Run an antivirus scan on a machine"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "machineAction"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllVulnerabilities",
      "options": [
        {
          "name": "Get By CVE",
          "value": "getByCve",
          "action": "Get vulnerability by CVE ID",
          "description": "Retrieve vulnerability details by CVE ID"
        },
        {
          "name": "Get By Machine And Software",
          "value": "getByMachineAndSoftware",
          "action": "Get vulnerabilities by machine and software",
          "routing": {
            "request": {
              "url": "/api/vulnerabilities/machinesVulnerabilities",
              "method": "GET"
            }
          },
          "description": "Retrieve vulnerabilities affecting a specific software on a specific machine"
        },
        {
          "name": "Get Many",
          "value": "getAllVulnerabilities",
          "action": "Get many vulnerabilities",
          "routing": {
            "request": {
              "url": "/api/vulnerabilities",
              "method": "GET"
            }
          },
          "description": "Retrieve many vulnerabilities"
        },
        {
          "name": "Get Machines By CVE",
          "value": "getMachinesByCve",
          "action": "Get machines affected by CVE ID",
          "description": "Retrieves a list of devices affected by a vulnerability"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "vulnerability"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllRecommendations",
      "options": [
        {
          "name": "Get All Recommendations",
          "value": "getAllRecommendations",
          "action": "Get all recommendations",
          "routing": {
            "request": {
              "url": "/api/recommendations/",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Machines By Recommendation",
          "value": "getMachinesByRecommendation",
          "action": "Get machines by recommendation",
          "description": "Get machines linked to a specific recommendation by ID"
        },
        {
          "name": "Get Recommendation by ID",
          "value": "getRecommendationById",
          "action": "Get a recommendation by ID",
          "description": "Get a specific recommendation by ID"
        },
        {
          "name": "Get Recommendation By Software",
          "value": "getRecommendationBySoftware",
          "action": "Get recommendation by software",
          "description": "Retrieves a security recommendation related to a specific software"
        },
        {
          "name": "Get Vulnerabilities by Recommendation",
          "value": "getVulnerabilitiesByRecommendation",
          "action": "Get vulnerabilities by recommendation",
          "description": "Get vulnerabilities linked to a specific recommendation by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "recommendation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "remediationActivities",
      "options": [
        {
          "name": "Get Remediation Activities",
          "value": "remediationActivities",
          "action": "Get remediation activities",
          "routing": {
            "request": {
              "url": "/api/remediationtasks/",
              "method": "GET"
            }
          },
          "description": "Get all remediation activities"
        },
        {
          "name": "Get Remediation Activity",
          "value": "remediationActivityId",
          "action": "Get a remediation activity",
          "description": "Get a specific remediation activity by ID"
        },
        {
          "name": "Get Exposed Devices by Remediation",
          "value": "getExposedDevicesByRemediation",
          "action": "Get exposed devices by remediation activity",
          "description": "Get devices exposed in a specific remediation activity by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "remediation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllSoftware",
      "options": [
        {
          "name": "Get All Software",
          "value": "getAllSoftware",
          "action": "Get all software",
          "routing": {
            "request": {
              "url": "/api/software",
              "method": "GET"
            }
          },
          "description": "Retrieves the organization software inventory"
        },
        {
          "name": "Get Machines By Software",
          "value": "getMachinesBySoftware",
          "action": "Get machines by software",
          "description": "Retrieves machines that have a specific software installed"
        },
        {
          "name": "Get Missing KBs By Software",
          "value": "getMissingKBsBySoftware",
          "action": "Get missing kbs by software",
          "description": "Retrieves missing KBs (security updates) for a specific software item"
        },
        {
          "name": "Get Software By ID",
          "value": "getSoftwareById",
          "action": "Get software by ID",
          "description": "Retrieves a specific software item by ID"
        },
        {
          "name": "Get Software Version Distribution",
          "value": "getSoftwareVersionDistribution",
          "action": "Get software version distribution",
          "description": "Retrieves the version distribution for a specific software item"
        },
        {
          "name": "Get Vulnerabilities By Software",
          "value": "getVulnerabilitiesBySoftware",
          "action": "Get vulnerabilities by software",
          "description": "Retrieves vulnerabilities associated with a specific software item"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "software"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllIndicators",
      "options": [
        {
          "name": "Get All",
          "value": "getAllIndicators",
          "action": "Get all indicators",
          "routing": {
            "request": {
              "url": "/api/indicators",
              "method": "GET"
            }
          },
          "description": "Retrieve all indicators"
        },
        {
          "name": "Submit Indicator",
          "value": "submitIndicator",
          "action": "Submit a new indicator",
          "routing": {
            "request": {
              "url": "/api/indicators",
              "method": "POST"
            }
          },
          "description": "Create a new indicator in Microsoft Defender"
        },
        {
          "name": "Delete Indicator",
          "value": "deleteIndicator",
          "action": "Delete an indicator",
          "description": "Remove an existing indicator from Microsoft Defender"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "indicator"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Alert",
      "value": "getAlertById",
      "action": "Get a security alert",
      "description": "Get a security alert by ID"
    },
    {
      "name": "List Alerts",
      "value": "listAlerts",
      "action": "List security alerts",
      "routing": {
        "request": {
          "url": "/api/alerts",
          "method": "GET"
        }
      },
      "description": "List security alerts"
    },
    {
      "name": "Update Alert",
      "value": "updateAlert",
      "action": "Update a security alert",
      "description": "Update the status or classification of a security alert"
    },
    {
      "name": "Add Or Remove Tag",
      "value": "addOrRemoveTag",
      "action": "Add or remove tag on a machine",
      "description": "Adds or removes a tag from a specified machine ID"
    },
    {
      "name": "Find By Tag",
      "value": "findByTag",
      "action": "Find machines by tag",
      "description": "Retrieves a list of machines associated with a specific tag"
    },
    {
      "name": "Get Many",
      "value": "getAllMachines",
      "action": "Get many machines",
      "routing": {
        "request": {
          "url": "/api/machines",
          "method": "GET"
        }
      },
      "description": "Retrieve many machines"
    },
    {
      "name": "Get Security Recommendations",
      "value": "getSecurityRecommendations",
      "action": "Get security recommendations for a machine",
      "description": "Retrieves security recommendations for a specified machine ID"
    },
    {
      "name": "List Software",
      "value": "listSoftware",
      "action": "List software on a machine",
      "description": "Retrieves a collection of installed software related to a given machine ID"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run advanced query",
      "routing": {
        "request": {
          "url": "/api/advancedqueries/run",
          "method": "POST"
        }
      },
      "description": "Run advanced query using KQL"
    },
    {
      "name": "Current Exposure Score",
      "value": "currentExposureScore",
      "action": "Get current exposure score",
      "routing": {
        "request": {
          "url": "/api/exposureScore",
          "method": "GET"
        }
      },
      "description": "Get the exposure score"
    },
    {
      "name": "Get By Machine Groups",
      "value": "getByMachineGroups",
      "action": "Get many exposure scores",
      "routing": {
        "request": {
          "url": "/api/exposureScore/ByMachineGroups",
          "method": "GET"
        }
      },
      "description": "Retrieve exposure scores by machine groups"
    },
    {
      "name": "Get All Investigations",
      "value": "getAllInvestigations",
      "action": "Get all investigations",
      "routing": {
        "request": {
          "url": "/api/investigations",
          "method": "GET"
        }
      },
      "description": "Retrieve all investigations"
    },
    {
      "name": "Get Investigation By ID",
      "value": "getInvestigationById",
      "action": "Get an investigation by ID",
      "routing": {
        "request": {
          "url": "=/api/investigations/{{ $parameter.investigationId }}",
          "method": "GET"
        }
      },
      "description": "Retrieve a specific investigation by its ID"
    },
    {
      "name": "Start Investigation",
      "value": "startInvestigation",
      "action": "Start an investigation on a machine",
      "description": "Initiate an investigation on a specified machine"
    },
    {
      "name": "Cancel Machine Action",
      "value": "cancelMachineAction",
      "action": "Cancel machine action",
      "description": "Cancel an already launched machine action that isn't yet in final state"
    },
    {
      "name": "Isolate Machine",
      "value": "isolate",
      "action": "Isolate a machine",
      "description": "Isolate a machine from the network"
    },
    {
      "name": "List Machine Actions",
      "value": "listMachineActions",
      "action": "List actions for a machine",
      "routing": {
        "request": {
          "url": "/api/machineactions",
          "method": "GET"
        }
      },
      "description": "List actions for a machine"
    },
    {
      "name": "Offboard Machine",
      "value": "offboardMachine",
      "action": "Offboard a machine",
      "description": "Offboard a machine from Microsoft Defender for Endpoint"
    },
    {
      "name": "Remove From Isolation",
      "value": "removeFromIsolation",
      "action": "Remove a machine from isolation",
      "description": "Remove a machine from isolation"
    },
    {
      "name": "Run Antivirus Scan",
      "value": "runAntivirusScan",
      "action": "Run an antivirus scan on a machine",
      "description": "Run an antivirus scan on a machine"
    },
    {
      "name": "Get By CVE",
      "value": "getByCve",
      "action": "Get vulnerability by CVE ID",
      "description": "Retrieve vulnerability details by CVE ID"
    },
    {
      "name": "Get By Machine And Software",
      "value": "getByMachineAndSoftware",
      "action": "Get vulnerabilities by machine and software",
      "routing": {
        "request": {
          "url": "/api/vulnerabilities/machinesVulnerabilities",
          "method": "GET"
        }
      },
      "description": "Retrieve vulnerabilities affecting a specific software on a specific machine"
    },
    {
      "name": "Get Many",
      "value": "getAllVulnerabilities",
      "action": "Get many vulnerabilities",
      "routing": {
        "request": {
          "url": "/api/vulnerabilities",
          "method": "GET"
        }
      },
      "description": "Retrieve many vulnerabilities"
    },
    {
      "name": "Get Machines By CVE",
      "value": "getMachinesByCve",
      "action": "Get machines affected by CVE ID",
      "description": "Retrieves a list of devices affected by a vulnerability"
    },
    {
      "name": "Get All Recommendations",
      "value": "getAllRecommendations",
      "action": "Get all recommendations",
      "routing": {
        "request": {
          "url": "/api/recommendations/",
          "method": "GET"
        }
      }
    },
    {
      "name": "Get Machines By Recommendation",
      "value": "getMachinesByRecommendation",
      "action": "Get machines by recommendation",
      "description": "Get machines linked to a specific recommendation by ID"
    },
    {
      "name": "Get Recommendation by ID",
      "value": "getRecommendationById",
      "action": "Get a recommendation by ID",
      "description": "Get a specific recommendation by ID"
    },
    {
      "name": "Get Recommendation By Software",
      "value": "getRecommendationBySoftware",
      "action": "Get recommendation by software",
      "description": "Retrieves a security recommendation related to a specific software"
    },
    {
      "name": "Get Vulnerabilities by Recommendation",
      "value": "getVulnerabilitiesByRecommendation",
      "action": "Get vulnerabilities by recommendation",
      "description": "Get vulnerabilities linked to a specific recommendation by ID"
    },
    {
      "name": "Get Remediation Activities",
      "value": "remediationActivities",
      "action": "Get remediation activities",
      "routing": {
        "request": {
          "url": "/api/remediationtasks/",
          "method": "GET"
        }
      },
      "description": "Get all remediation activities"
    },
    {
      "name": "Get Remediation Activity",
      "value": "remediationActivityId",
      "action": "Get a remediation activity",
      "description": "Get a specific remediation activity by ID"
    },
    {
      "name": "Get Exposed Devices by Remediation",
      "value": "getExposedDevicesByRemediation",
      "action": "Get exposed devices by remediation activity",
      "description": "Get devices exposed in a specific remediation activity by ID"
    },
    {
      "name": "Get All Software",
      "value": "getAllSoftware",
      "action": "Get all software",
      "routing": {
        "request": {
          "url": "/api/software",
          "method": "GET"
        }
      },
      "description": "Retrieves the organization software inventory"
    },
    {
      "name": "Get Machines By Software",
      "value": "getMachinesBySoftware",
      "action": "Get machines by software",
      "description": "Retrieves machines that have a specific software installed"
    },
    {
      "name": "Get Missing KBs By Software",
      "value": "getMissingKBsBySoftware",
      "action": "Get missing kbs by software",
      "description": "Retrieves missing KBs (security updates) for a specific software item"
    },
    {
      "name": "Get Software By ID",
      "value": "getSoftwareById",
      "action": "Get software by ID",
      "description": "Retrieves a specific software item by ID"
    },
    {
      "name": "Get Software Version Distribution",
      "value": "getSoftwareVersionDistribution",
      "action": "Get software version distribution",
      "description": "Retrieves the version distribution for a specific software item"
    },
    {
      "name": "Get Vulnerabilities By Software",
      "value": "getVulnerabilitiesBySoftware",
      "action": "Get vulnerabilities by software",
      "description": "Retrieves vulnerabilities associated with a specific software item"
    },
    {
      "name": "Get All",
      "value": "getAllIndicators",
      "action": "Get all indicators",
      "routing": {
        "request": {
          "url": "/api/indicators",
          "method": "GET"
        }
      },
      "description": "Retrieve all indicators"
    },
    {
      "name": "Submit Indicator",
      "value": "submitIndicator",
      "action": "Submit a new indicator",
      "routing": {
        "request": {
          "url": "/api/indicators",
          "method": "POST"
        }
      },
      "description": "Create a new indicator in Microsoft Defender"
    },
    {
      "name": "Delete Indicator",
      "value": "deleteIndicator",
      "action": "Delete an indicator",
      "description": "Remove an existing indicator from Microsoft Defender"
    }
  ]

npm_readme:
  # n8n-nodes-msdefender

  [![CI](https://github.com/FrodeHus/n8n-nodes-msdefender/actions/workflows/ci.yml/badge.svg)](https://github.com/FrodeHus/n8n-nodes-msdefender/actions/workflows/ci.yml)

  This is an n8n community node. It lets you use Microsoft Defender in your n8n workflows.

  Microsoft Defender is a comprehensive security solution that helps protect your devices and data from threats.
  This node allows you to interact with the Microsoft Defender API to perform various security operations, such as managing devices, retrieving threat intelligence, and more.

  For a some background, visit [I made a n8n node for Microsoft Defender](https://www.frodehus.dev/i-made-a-n8n-node-for-microsoft-defender/).

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)  
  [Version history](#version-history)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  ### Defender for Endpoint

  - Advanced Query: Run advanced queries against Microsoft Defender.
  - Alert: Manage and retrieve information about security alerts.
    - Get Many: Retrieve many alerts.
    - Get By ID: Retrieve a specific alert by its ID.
    - Update Alert: Update the properties of a specific alert.
  - Remediation: Manage and retrieve information about remediation activities.
    - Get Remediation Activities: Retrieve all remediation activities.
    - Get Remediation Activity: Retrieve a specific remediation activity by ID.
    - Get Devices By Remediation Activity: Retrieve devices exposed in a specific remediation activity by ID
  - Machine: Manage and retrieve information about devices.
    - Add Or Remove Tag For Machine
    - Find By Tag
    - Get Many: Retrieve many machines.
    - Get Security Recommendations For Machine
    - List Installed Software For Machine
  - Exposure
    - Get Current Exposure Score
    - Get Exposure Score By Machine Groups.
  - Machine Actions
    - Isolate Machine
    - Release Machine from Isolation
    - List Machine Actions
    - Offboard Machine
    - Cancel Machine Action
    - Run Antivirus Scan
  - Vulnerability
    - Get All Vulnerabilities
    - Get Machines By CVE
    - Get By Machine And Software
  - Investigation
    - Get All Investigations
    - Get Investigation By ID
    - Start Investigation on Machine
  - Indicator
    - Get All Indicators
    - Submit Indicator
    - Delete Indicator
  - Recommendation
    - Get Security Recommendations
    - Get Security Recommendation By ID
    - Get Machines By Security Recommendation
    - Get Vulnerabilities By Security Recommendation
    - Get Recommendations By Software
  - Software
    - Get All Software
    - Get Software By ID
    - Get Software Version Distribution
    - Get Machines By Software
    - Get Vulnerabilities By Software
    - Get Missing KBs By Software

  ### Defender XDR

  - Incident: Manage and retrieve information about security incidents.
    - Get Many: Retrieve many incidents.
    - Get By ID: Retrieve a specific incident by its ID.
    - Update Incident: Update the properties of a specific incident.

  ## Triggers

  - Microsoft Defender for Endpoint Trigger
    - Polling trigger for alerts created or updated
  - Microsoft Defender XDR Trigger
    - Polling trigger for incidents created or updated

  ## Credentials

  To use this node, you need to set up an Entra ID (Azure AD) application and obtain the necessary credentials to access the Microsoft Defender API.

  1. Register an application in the [Azure Portal](https://portal.azure.com/).
  2. Assign the required API application permissions to the application for Microsoft Defender (WindowsDefenderATP).
      - `AdvancedQuery.Read.All`
      - `Machine.ReadWrite.All`
      - `Score.Read.All`
      - `Machine.Isolate`
      - `Vulnerability.Read.All`
      - `SecurityRecommendation.Read.All`
      - `Machine.Scan`
      - `Machine.Offboard`
  3. Assign the required API application permissions to the application for Microsoft Defender XDR (Microsoft Threat Protection).
      - `Incidents.ReadWrite.All`
  4. Grant admin consent for the permissions.
  5. Generate a client secret for the application.
  6. Note down the Application (client) ID, Directory (tenant) ID, and client secret.


  When configuring the Microsoft Defender node in n8n, use the following credentials:

  - **Client ID**: The Application (client) ID from your Azure AD application.
  - **Client Secret**: The client secret generated for your Azure AD application.
  - **Access Token URL**: `https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token`

  There are two separate credentials for Microsoft Defender and Microsoft Defender XDR, so be sure to set up both if you plan to use both nodes.

  You can re-use the same Azure AD application for both credentials, just ensure it has the necessary permissions assigned for each API.

  If you added permissions to your Azure AD application, remember to re-grant admin consent and update the credentials in n8n.

  ## Compatibility

  Tested with recent n8n 2.x releases. Older versions may work, but are not guaranteed.

  ## Usage

  [Try it out](https://docs.n8n.io/try-it-out/)

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Microsoft Defender for Endpoint API documentation](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/apis-intro?view=o365-worldwide)
  - [Microsoft Defender XDR API documentation](https://learn.microsoft.com/en-us/microsoft-365/security/defender/api-overview?view=o365-worldwide)

  ## Version history

  [Changelog](./CHANGELOG.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Microsoft Defender API to perform security operations such as managing devices, retrieving threat intelligence, and handling incidents.","capabilities":["Advanced Query execution","Security alert management (retrieve, update)","Remediation activity management","Device management (tags, isolation, offboarding, scanning)","Vulnerability management (CVE-based, software-based)","Investigation initiation and retrieval","Threat indicator submission and deletion","Security recommendation retrieval","Software inventory and version distribution","Incident management (Defender XDR)"],"authentication":"OAuth2 via Entra ID (Azure AD) application with Client ID, Client Secret, and Access Token URL","commonUseCases":["Automated security alert monitoring and response","Device isolation and remediation workflows","Vulnerability scanning and patch tracking","Threat intelligence collection and indicator submission","Security incident management and investigation"],"limitations":["Requires separate credential setups for Defender for Endpoint and Defender XDR","Admin consent must be granted in Azure AD for all permissions","Permissions must be explicitly assigned for both WindowsDefenderATP and Microsoft Threat Protection APIs","Older n8n versions may not be fully compatible"],"relatedNodes":["Microsoft Entra ID OAuth2 node","HTTP Request node","Wait node (for polling triggers)"]}


node_type: n8n-nodes-newscatcher-catchall-pernode.newscatcherCatchAllTrigger
package_name: n8n-nodes-newscatcher-catchall-pernode
display_name: Newscatcher CatchAll Trigger
description: Triggers when a Newscatcher CatchAll monitor has new results
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: chintan.newscatcherapi
author_github_url: https://github.com/Newscatcher/
npm_package_name: n8n-nodes-newscatcher-catchall-pernode
npm_version: 0.1.42
community_fetched_at: 2026-03-25T21:19:40.521Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-newscatcher-catchall-pernode

  n8n community node for [Newscatcher CatchAll](https://catchall.newscatcherapi.com/) API integration. This node allows you to submit jobs, retrieve results, manage monitors, and receive real-time webhook triggers from Newscatcher CatchAll.

  ## Features

  - **Job Management**: Submit jobs, pull results, and check job status
  - **Monitor Management**: Create, list, enable, disable monitors, and retrieve monitor details
  - **Webhook Trigger**: Real-time trigger node for monitor results
  - **Per-node API Key**: Simple authentication with API key stored directly in the node (not encrypted)

  ## Installation

  ### For n8n Cloud

  1. Go to **Settings → Community Nodes → Install**
  2. Enter: `n8n-nodes-newscatcher-catchall-pernode`
  3. Click **Install**

  ### For Self-Hosted n8n

  ```bash
  npm install n8n-nodes-newscatcher-catchall-pernode
  ```

  ## Authentication

  Enter your Newscatcher API key directly in the node's **API Key** field. The API key is stored as a node setting (not encrypted). Get your API key from [Newscatcher](https://newscatcherapi.com/).

  ## Nodes

  ### Newscatcher CatchAll

  Main node for interacting with the Newscatcher CatchAll API.

  #### Resources

  **Job**
  - **Submit**: Create a new CatchAll job with query, context, and schema
  - **Pull**: Retrieve results for a completed job by job ID
  - **Get Status**: Check the status of a job by job ID

  **Monitor**
  - **Create**: Create a new monitor based on an existing reference job
  - **List**: List all monitors for your API key
  - **Get**: Get full details and records for a specific monitor
  - **List Jobs**: List all jobs created by a specific monitor
  - **Enable**: Enable a monitor by monitor ID
  - **Disable**: Disable a monitor by monitor ID

  #### Example: Submit a Job

  1. Add the **Newscatcher CatchAll** node to your workflow
  2. Select **Resource**: `Job`
  3. Select **Operation**: `Submit`
  4. Enter your **API Key**
  5. Fill in:
     - **Query**: "Tech company earnings this quarter"
     - **Context**: (Optional) "Focus on revenue and profit margins"
     - **Schema**: (Optional) "Company [NAME] earned [REVENUE] in [QUARTER]"
  6. Execute the workflow

  The node returns a job ID that you can use with the **Pull** or **Get Status** operations.

  #### Example: Create a Monitor

  1. Add the **Newscatcher CatchAll** node to your workflow
  2. Select **Resource**: `Monitor`
  3. Select **Operation**: `Create`
  4. Enter your **API Key**
  5. Fill in:
     - **Reference Job ID**: An existing job ID to base the monitor on
     - **Schedule**: "every day at 12 PM UTC"
     - **Webhook URL**: Your webhook endpoint URL
     - **Webhook Method**: POST or GET
     - **Webhook Headers/Params/Auth**: (Optional) JSON configuration
  6. Execute the workflow

  ### Newscatcher CatchAll Trigger

  Webhook trigger node that activates when a monitor has new results.

  #### Setup

  1. Add the **Newscatcher CatchAll Trigger** node to your workflow
  2. Enter your **API Key**
  3. Select a **Monitor** from the dropdown (monitors are loaded from your API)
  4. Activate the workflow

  When the selected monitor has new results, Newscatcher will POST the data to the webhook URL, and your workflow will be triggered automatically.

  ## Development

  ### Local Development

  ```bash
  # Install dependencies
  npm install

  # Build the project
  npm run build

  # Lint the code
  npx @n8n/scan-community-package n8n-nodes-newscatcher-catchall-pernode
  ```

  ### Project Structure

  ```
  src/
    nodes/
      Newscatcher/
        Newscatcher.node.ts              # Main node
        NewscatcherCatchAllTrigger.node.ts # Trigger node
        newscatcher-new.png              # Node icon
  ```

  ## API Documentation

  For detailed API documentation, visit:
  - [Newscatcher CatchAll API](https://catchall.newscatcherapi.com/)
  - [Newscatcher Documentation](https://newscatcherapi.com/docs)

  ## License

  MIT

  ## Support

  - **Issues**: [GitHub Issues](https://github.com/Newscatcher/n8n-nodes-newscatcher-catchall-pernode/issues)
  - **Repository**: [GitHub](https://github.com/Newscatcher/n8n-nodes-newscatcher-catchall-pernode)

ai_documentation_summary:
  {"purpose":"Triggers a workflow when a Newscatcher CatchAll monitor detects new results by receiving a webhook POST from the Newscatcher API.","capabilities":["Real-time webhook trigger activation","Monitor selection from existing API monitors","Automatic workflow execution upon new data arrival"],"authentication":"API key required (stored as node setting, not encrypted)","commonUseCases":["Real-time news monitoring and alerting","Automated data collection from news sources","Triggering downstream actions based on new search results"],"limitations":["API key is stored as a node setting without encryption","Requires a separate Newscatcher CatchAll node to create/manage monitors"],"relatedNodes":["Newscatcher CatchAll","Newscatcher CatchAll Trigger"]}


node_type: @leadspicker/n8n-nodes-leadspicker.leadspicker
package_name: @leadspicker/n8n-nodes-leadspicker
display_name: Leadspicker
description: Interact with Leadspicker API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: janskacel
author_github_url: https://github.com/Leadspicker/n8n-nodes-leadspicker.git
npm_package_name: @leadspicker/n8n-nodes-leadspicker
npm_version: 0.4.4
community_fetched_at: 2026-03-25T21:19:40.523Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "project",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Campaign",
          "value": "project"
        },
        {
          "name": "Global Exclusion List",
          "value": "globalExclusionList"
        },
        {
          "name": "Lead",
          "value": "person"
        },
        {
          "name": "Linkedin",
          "value": "linkedinActivity"
        },
        {
          "name": "Outreach",
          "value": "outreach"
        },
        {
          "name": "Reply",
          "value": "reply"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInfo",
      "options": [
        {
          "name": "Get Account Info",
          "value": "getInfo",
          "action": "Get account info",
          "description": "Retrieve details about the current account and organization quotas"
        }
      ],
      "displayName": "Account Actions",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Bulk Create Leads",
          "value": "bulkCreate",
          "action": "Bulk create leads",
          "description": "Create multiple leads in a campaign"
        },
        {
          "name": "Create Lead",
          "value": "create",
          "action": "Create a lead",
          "description": "Create a new lead in a campaign"
        },
        {
          "name": "Delete Lead",
          "value": "delete",
          "action": "Delete a lead",
          "description": "Delete a lead"
        },
        {
          "name": "Find by Company Linkedin",
          "value": "byCompanyLinkedin",
          "action": "Find leads by company profile",
          "description": "Find leads by a company LinkedIn URL"
        },
        {
          "name": "Find by Company Name",
          "value": "byCompanyName",
          "action": "Find leads by company name",
          "description": "Find leads by a company name"
        },
        {
          "name": "Get Lead",
          "value": "get",
          "action": "Get a lead",
          "description": "Get a lead by ID"
        },
        {
          "name": "List Leads",
          "value": "list",
          "action": "List leads",
          "description": "List leads in a campaign"
        },
        {
          "name": "Update Lead",
          "value": "update",
          "action": "Update a lead",
          "description": "Update an existing lead"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "person"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add Lead to Campaign Exclusion List",
          "value": "addToExclusionList",
          "action": "Add lead to exclusion list",
          "description": "Blacklist a lead identifier for a campaign"
        },
        {
          "name": "Create Campaign",
          "value": "create",
          "action": "Create a campaign",
          "description": "Create a new campaign"
        },
        {
          "name": "Delete Campaign",
          "value": "delete",
          "action": "Delete a campaign",
          "description": "Delete a campaign"
        },
        {
          "name": "Get Campaign Log",
          "value": "getCampaignLog",
          "action": "Get campaign log",
          "description": "Retrieve campaign timeline events"
        },
        {
          "name": "Get Exclusion List",
          "value": "getExclusionList",
          "action": "Get exclusion list",
          "description": "Retrieve all identifiers blacklisted for a campaign"
        },
        {
          "name": "Remove Lead From Campaign Exclusion List",
          "value": "removeFromExclusionList",
          "action": "Remove lead from exclusion list",
          "description": "Delete a specific identifier from a campaign blacklist"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get Replies",
          "value": "list",
          "action": "Get replies",
          "description": "Get replies for a lead"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reply"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getProfile",
      "options": [
        {
          "name": "Get Activities",
          "value": "getActivities",
          "action": "Get recent profile activities",
          "description": "Get a profile's recent activities (reactions and comments)"
        },
        {
          "name": "Get Interactions for LinkedIn Post Search",
          "value": "searchPostReactors",
          "action": "Get interactions for linkedin post search",
          "description": "Retrieve LinkedIn profiles that interacted with posts returned by a content search URL"
        },
        {
          "name": "Get Interactions for Profiles",
          "value": "profilesPostReactors",
          "action": "Get interactors for profiles",
          "description": "Retrieve interactors for posts authored by specific LinkedIn profiles"
        },
        {
          "name": "Get Post Interactors",
          "value": "getPostReactors",
          "action": "Get post interactors",
          "description": "Get people who interact with posts and send to a webhook"
        },
        {
          "name": "Get Profile Details",
          "value": "getProfile",
          "action": "Get profile details",
          "description": "Scrapes and returns details for a LinkedIn profile"
        },
        {
          "name": "Get Recent Profile Posts",
          "value": "getPosts",
          "action": "Get recent profile posts",
          "description": "Get profile's recent posts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "linkedinActivity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Add Lead to Global Exclusion List",
          "value": "addLead",
          "action": "Add lead to global exclusion list",
          "description": "Blacklist an identifier for the entire organization"
        },
        {
          "name": "Remove Lead From Global Exclusion List",
          "value": "removeLead",
          "action": "Remove lead from global exclusion list",
          "description": "Delete a specific identifier from the global blacklist"
        },
        {
          "name": "Get Global Exclusion List",
          "value": "get",
          "action": "Get global exclusion list",
          "description": "Retrieve the global text-based blacklist for the authenticated organization"
        }
      ],
      "displayName": "Global Exclusion List Actions",
      "displayOptions": {
        "show": {
          "resource": [
            "globalExclusionList"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getLinkedinAccounts",
      "options": [
        {
          "name": "Get LinkedIn Accounts",
          "value": "getLinkedinAccounts",
          "action": "Get linkedin accounts",
          "description": "Retrieve all connected outreach LinkedIn accounts"
        },
        {
          "name": "Get Email Accounts",
          "value": "getEmailAccounts",
          "action": "Get email accounts",
          "description": "Retrieve all configured outreach email accounts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "outreach"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Account Info",
      "value": "getInfo",
      "action": "Get account info",
      "description": "Retrieve details about the current account and organization quotas"
    },
    {
      "name": "Bulk Create Leads",
      "value": "bulkCreate",
      "action": "Bulk create leads",
      "description": "Create multiple leads in a campaign"
    },
    {
      "name": "Create Lead",
      "value": "create",
      "action": "Create a lead",
      "description": "Create a new lead in a campaign"
    },
    {
      "name": "Delete Lead",
      "value": "delete",
      "action": "Delete a lead",
      "description": "Delete a lead"
    },
    {
      "name": "Find by Company Linkedin",
      "value": "byCompanyLinkedin",
      "action": "Find leads by company profile",
      "description": "Find leads by a company LinkedIn URL"
    },
    {
      "name": "Find by Company Name",
      "value": "byCompanyName",
      "action": "Find leads by company name",
      "description": "Find leads by a company name"
    },
    {
      "name": "Get Lead",
      "value": "get",
      "action": "Get a lead",
      "description": "Get a lead by ID"
    },
    {
      "name": "List Leads",
      "value": "list",
      "action": "List leads",
      "description": "List leads in a campaign"
    },
    {
      "name": "Update Lead",
      "value": "update",
      "action": "Update a lead",
      "description": "Update an existing lead"
    },
    {
      "name": "Add Lead to Campaign Exclusion List",
      "value": "addToExclusionList",
      "action": "Add lead to exclusion list",
      "description": "Blacklist a lead identifier for a campaign"
    },
    {
      "name": "Create Campaign",
      "value": "create",
      "action": "Create a campaign",
      "description": "Create a new campaign"
    },
    {
      "name": "Delete Campaign",
      "value": "delete",
      "action": "Delete a campaign",
      "description": "Delete a campaign"
    },
    {
      "name": "Get Campaign Log",
      "value": "getCampaignLog",
      "action": "Get campaign log",
      "description": "Retrieve campaign timeline events"
    },
    {
      "name": "Get Exclusion List",
      "value": "getExclusionList",
      "action": "Get exclusion list",
      "description": "Retrieve all identifiers blacklisted for a campaign"
    },
    {
      "name": "Remove Lead From Campaign Exclusion List",
      "value": "removeFromExclusionList",
      "action": "Remove lead from exclusion list",
      "description": "Delete a specific identifier from a campaign blacklist"
    },
    {
      "name": "Get Replies",
      "value": "list",
      "action": "Get replies",
      "description": "Get replies for a lead"
    },
    {
      "name": "Get Activities",
      "value": "getActivities",
      "action": "Get recent profile activities",
      "description": "Get a profile's recent activities (reactions and comments)"
    },
    {
      "name": "Get Interactions for LinkedIn Post Search",
      "value": "searchPostReactors",
      "action": "Get interactions for linkedin post search",
      "description": "Retrieve LinkedIn profiles that interacted with posts returned by a content search URL"
    },
    {
      "name": "Get Interactions for Profiles",
      "value": "profilesPostReactors",
      "action": "Get interactors for profiles",
      "description": "Retrieve interactors for posts authored by specific LinkedIn profiles"
    },
    {
      "name": "Get Post Interactors",
      "value": "getPostReactors",
      "action": "Get post interactors",
      "description": "Get people who interact with posts and send to a webhook"
    },
    {
      "name": "Get Profile Details",
      "value": "getProfile",
      "action": "Get profile details",
      "description": "Scrapes and returns details for a LinkedIn profile"
    },
    {
      "name": "Get Recent Profile Posts",
      "value": "getPosts",
      "action": "Get recent profile posts",
      "description": "Get profile's recent posts"
    },
    {
      "name": "Add Lead to Global Exclusion List",
      "value": "addLead",
      "action": "Add lead to global exclusion list",
      "description": "Blacklist an identifier for the entire organization"
    },
    {
      "name": "Remove Lead From Global Exclusion List",
      "value": "removeLead",
      "action": "Remove lead from global exclusion list",
      "description": "Delete a specific identifier from the global blacklist"
    },
    {
      "name": "Get Global Exclusion List",
      "value": "get",
      "action": "Get global exclusion list",
      "description": "Retrieve the global text-based blacklist for the authenticated organization"
    },
    {
      "name": "Get LinkedIn Accounts",
      "value": "getLinkedinAccounts",
      "action": "Get linkedin accounts",
      "description": "Retrieve all connected outreach LinkedIn accounts"
    },
    {
      "name": "Get Email Accounts",
      "value": "getEmailAccounts",
      "action": "Get email accounts",
      "description": "Retrieve all configured outreach email accounts"
    }
  ]

npm_readme:
  # **n8n-nodes-leadspicker**

  This is an n8n community node. It lets you use the Leadspicker API in your n8n workflows.

  Leadspicker is a B2B data and sales intelligence platform that helps businesses find, enrich, and connect with relevant contacts.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)

  [Operations](#operations)

  [Triggers](#triggers)

  [Credentials](#credentials)

  [Compatibility](#compatibility)

  [Resources](#resources)

  [Changelog](#changelog)

  ## **Installation**

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## **Operations**

  This node supports the following resources and operations:

  * **Lead**
    * Create a new lead in a campaign
    * Delete a lead
    * Get a lead by ID
    * List leads in a campaign
    * Update an existing lead
    * Find leads by a company's LinkedIn URL
    * Find leads by a company's name
  * **Campaign**
    * Create a new campaign
    * Delete a campaign
    * Get the campaign log (timeline events with optional search, date, person, and type filters)
    * Add a lead to the campaign exclusion list
    * Remove a lead from the campaign exclusion list
    * Get the campaign exclusion list
  * **Reply**
    * Get replies based on filters (email accounts, campaigns, sentiment)
  * **Linkedin Activity**
    * Get a LinkedIn profile's details
    * Get a profile's latest posts
    * Get a profile's recent activities (reactions and comments)
    * Get people who reacted to posts and send the results to a webhook
    * Retrieve LinkedIn profiles that reacted to posts returned by a content search URL
    * Retrieve reactors for posts authored by specific LinkedIn profiles
  * **Global Exclusion List**
    * Add a lead identifier to the global exclusion list
    * Remove a lead identifier from the global exclusion list
    * Get the global exclusion list
  * **Outreach**
    * List LinkedIn outreach accounts
    * List email outreach accounts
  * **Account**
    * Get account info and limits

  Note: The Linkedin Activity operations "Search Post Reactors" and "Profiles Post Reactors" auto-paginate. They aggregate all pages internally (handling the cursor automatically) and return a single flat list of reactor profiles.

  ## **Triggers**

  The Leadspicker Trigger node lets you subscribe to webhook events across all projects or filter down to a single campaign and fire workflows from these Leadspicker events:

  * Account revoked (connected account access revoked)
  * Email bounced
  * Email reply
  * Email sent
  * LinkedIn reply
  * LinkedIn sent
  * Lead added to a project

  ## **Credentials**

  To use this node, you need to authenticate using your Leadspicker API credentials.

  1. Sign up for an account with [Leadspicker](https://leadspicker.com/).
  2. Find your API Key in your account settings on the Leadspicker platform.
  3. In n8n, create a new credential for the Leadspicker node.
  4. Enter your API Key into the credential configuration screen.

  ## **Compatibility**

  This node has been developed and tested against n8n version 1.0.0. It may work with older versions, but it is not guaranteed.

  ## **Resources**

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Leadspicker Website](https://leadspicker.com/)

  ## **Changelog**

  ### 0.4.3

  * Replaced global timer usage with n8n workflow sleep helper to satisfy community-node linting.

  ### 0.4.2

  * Compliance fixes for n8n verification (removed external dependency usage and updated auth helper).

  ### 0.4.1
  * Added an **Account** resource with a "Get Account Info" action that surfaces subscription renewal dates, allowed LinkedIn/email accounts, allowed robots, and how many robots are currently running.
  * Added an **Outreach** resource to list all connected LinkedIn accounts and configured email accounts in one call so workflows can fan out automatically.
  * Added campaign-level exclusion list management actions (add, remove, list).
  * Added a **Global Exclusion List** resource to manage the organization-wide blacklist and return categorized LinkedIn/email/domain identifiers.
  * Leadspicker Trigger can now listen to every project when no campaign is selected.
  * Leadspicker Trigger requests Leadspicker to immediately send a test payload whenever the node is executed manually so `Test workflow` runs receive sample data instantly.
  * Added a **Bulk Create Leads** action under the Lead resource to send multiple user-provided leads (with optional custom fields) to the `/persons/bulk` API endpoint in a single call.

  ### 0.4.0

  * **Breaking:** Replaced the legacy `leadspickerNode` with the new `Leadspicker` node (type `leadspicker`), renamed resources to Lead/Campaign/Reply/Linkedin, and moved the AutoCPH operations under the Lead resource. Existing workflows referencing `leadspickerNode` must be recreated.
  * **Breaking:** Lead operations now expose individual fields (name, email, company, socials, custom fields) and all ID selectors use "Name or ID" dropdowns with a manual ID fallback, so any references to the previous collection-style parameters need to be reconfigured.
  * **Breaking:** Lead responses are flattened (no nested `person_data`) and the Lead/Reply list operations auto-paginate to return the entire dataset rather than a single page, changing the output structure and removing pagination parameters.
  * Added the Leadspicker Trigger node that manages webhooks for account revoked, email sent/replied/bounced, LinkedIn sent/replied, and lead-added events per campaign.
  * Linkedin Activity operations gained new controls (include/exclude profile cards, opt-in liker/commenter collection) and cursor-based aggregation so reactor searches return a single deduplicated array.
  * Lead finders now return the same flattened lead payloads as create/get/update results, keeping company/contact metadata consistent when searching by company name or LinkedIn URL.

  ### 0.3.1

  * Legacy release of the original `leadspickerNode` implementation.

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the Leadspicker B2B sales intelligence API for managing leads, campaigns, LinkedIn activities, and outreach accounts.","capabilities":["Create, delete, list, and update leads by ID, company name, or LinkedIn URL","Bulk create leads in a single API call","Manage campaigns including logs, exclusion lists, and creation/deletion","Retrieve and filter replies based on email accounts, campaigns, or sentiment","Fetch LinkedIn profile details, posts, and recent activities","Search for and retrieve people who reacted to LinkedIn posts","Manage global and campaign-level exclusion lists","List connected LinkedIn and email outreach accounts","Retrieve account info and subscription limits","Subscribe to webhook events for account revocation, email bounces, sends, and replies"],"authentication":"API Key required","commonUseCases":["Automating lead generation and enrichment from company data","Managing B2B outreach campaigns and tracking engagement","Monitoring LinkedIn activity and collecting profile reactions","Handling email bounce and reply notifications via webhooks","Managing contact exclusion lists to prevent duplicate outreach"],"limitations":["Requires a paid Leadspicker account with API credentials","Requires n8n version 1.0.0 or later for guaranteed compatibility","Legacy node types (leadspickerNode) are deprecated and require workflow recreation","Lead responses are flattened and no longer support nested data structures"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Sleep","n8n Split In Batches"]}


node_type: n8n-nodes-localith.localith
package_name: n8n-nodes-localith
display_name: Localith
description: Interact with the Localith API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: azhderskam
author_github_url: https://github.com/localithai/
npm_package_name: n8n-nodes-localith
npm_version: 0.1.17
community_fetched_at: 2026-03-25T21:19:40.524Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "listing",
      "options": [
        {
          "name": "Item",
          "value": "item"
        },
        {
          "name": "Listing",
          "value": "listing"
        },
        {
          "name": "Listing Metrics",
          "value": "listingMetrics"
        },
        {
          "name": "Listing Item Metrics",
          "value": "listingItemMetrics"
        },
        {
          "name": "Content Publishing Media",
          "value": "contentPublishingMedia"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many items",
          "routing": {
            "request": {
              "url": "/rest/v1/items",
              "method": "GET"
            }
          },
          "description": "Retrieve the collection of items (reviews)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "item"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many listings",
          "routing": {
            "request": {
              "url": "/rest/v1/listings",
              "method": "GET"
            }
          },
          "description": "Retrieve the collection of listings"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a listing",
          "routing": {
            "request": {
              "url": "=/rest/v1/listings/{{$parameter[\"listingId\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a single listing by ID"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a listing",
          "routing": {
            "request": {
              "url": "=/rest/v1/listings/{{$parameter[\"listingId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "Update a listing by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "listing"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get listing metrics",
          "routing": {
            "request": {
              "url": "/rest/v1/listing_metrics",
              "method": "GET"
            }
          },
          "description": "Retrieve daily listing metrics summarized data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "listingMetrics"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get listing item metrics",
          "routing": {
            "request": {
              "url": "/rest/v1/listing_item_metrics",
              "method": "GET"
            }
          },
          "description": "Retrieve reviews metrics summarized data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "listingItemMetrics"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "publish",
      "options": [
        {
          "name": "Publish / Schedule",
          "value": "publish",
          "action": "Publish or schedule a media post",
          "routing": {
            "request": {
              "url": "/rest/v1/content_publishing_media",
              "method": "POST"
            }
          },
          "description": "Publish or schedule content publishing media posts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contentPublishingMedia"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many items",
      "routing": {
        "request": {
          "url": "/rest/v1/items",
          "method": "GET"
        }
      },
      "description": "Retrieve the collection of items (reviews)"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many listings",
      "routing": {
        "request": {
          "url": "/rest/v1/listings",
          "method": "GET"
        }
      },
      "description": "Retrieve the collection of listings"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a listing",
      "routing": {
        "request": {
          "url": "=/rest/v1/listings/{{$parameter[\"listingId\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a single listing by ID"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a listing",
      "routing": {
        "request": {
          "url": "=/rest/v1/listings/{{$parameter[\"listingId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "Update a listing by ID"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get listing metrics",
      "routing": {
        "request": {
          "url": "/rest/v1/listing_metrics",
          "method": "GET"
        }
      },
      "description": "Retrieve daily listing metrics summarized data"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get listing item metrics",
      "routing": {
        "request": {
          "url": "/rest/v1/listing_item_metrics",
          "method": "GET"
        }
      },
      "description": "Retrieve reviews metrics summarized data"
    },
    {
      "name": "Publish / Schedule",
      "value": "publish",
      "action": "Publish or schedule a media post",
      "routing": {
        "request": {
          "url": "/rest/v1/content_publishing_media",
          "method": "POST"
        }
      },
      "description": "Publish or schedule content publishing media posts"
    }
  ]

npm_readme:
  # n8n-nodes-localith

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-localith.svg)](https://www.npmjs.com/package/n8n-nodes-localith)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![n8n community node](https://img.shields.io/badge/n8n-community--node-orange)](https://www.npmjs.com/package/n8n-nodes-localith)

  > Access your Google Business reviews, listings, and location metrics directly in n8n — and build powerful automations, dashboards, or your own reputation management platform on top of them.

  ---

  ## 🌐 What is Localith?

  [Localith](https://localith.ai) is a Google Business Profile management platform that gives you full programmatic access to your locations, reviews, and performance metrics.

  Think of it as the **Google Business API made simple**. With this n8n node, you can pull all of that data into any workflow — no complex API setup required.

  ---

  ## 🚀 What can you build?

  | Use Case | Description |
  |---|---|
  | 📊 Custom dashboards | Sync review data to Airtable, Notion, or Google Sheets |
  | 🔔 Review alerts | Get Slack or email notifications the moment a new review comes in |
  | 🤖 AI reply automation | Pipe reviews into an AI node and auto-generate replies |
  | 📈 Reputation reporting | Build weekly performance reports for clients or internal teams |
  | 🏗️ Your own platform | Use Localith as the data layer and build your own review management tool |
  | 🔁 Multi-location sync | Manage hundreds of locations from a single workflow |

  ---

  ## ⚙️ Operations

  ### 📍 Listings
  | Operation | Description |
  |---|---|
  | Get all listings | Fetch all your Google Business locations |
  | Get listing by ID | Retrieve details for a specific location |
  | Update listing | Modify listing information |

  ### ⭐ Reviews
  | Operation | Description |
  |---|---|
  | Get reviews | Fetch all reviews across your locations, with filtering by rating, date, and source |
  | Get review metrics | Aggregate review stats (average rating, total count, trends) |

  ### 📈 Metrics
  | Operation | Description |
  |---|---|
  | Get listing metrics | Impressions, clicks, calls, direction requests per location |
  | Get item metrics | Performance data for individual posts or products |

  ### 📣 Content Publishing
  | Operation | Description |
  |---|---|
  | Publish media | Upload and publish content to your Google Business profiles |

  ---

  ## 🔐 Authentication

  This node uses **API Key** authentication. You can find your API key in your [Localith dashboard](https://localith.ai).

  ---

  ## 📦 Installation

  In your n8n instance go to **Settings → Community Nodes → Install** and enter:

  ```
  n8n-nodes-localith
  ```

  ---

  ## 💡 Example — Automated review alerts with AI replies

  ```
  ⏱ Schedule Trigger (every hour)
    ↓
  📍 Localith: Get Reviews (new reviews since last run)
    ↓
  🔀 IF Node (filter 1–3 star reviews)
    ↓
  🤖 OpenAI Node (generate professional reply)
    ↓
  💬 Slack Node (send review + suggested reply for team approval)
  ```

  ---

  ## 🔗 Links

  | | |
  |---|---|
  | 🌐 Website | [localith.ai](https://localith.ai) |
  | 📦 npm | [n8n-nodes-localith](https://www.npmjs.com/package/n8n-nodes-localith) |
  | 💻 GitHub | [localithai/n8n-nodes-localith](https://github.com/localithai/n8n-nodes-localith) |
  | 📖 API Docs | [embedsocial.com/app/api/documentation](https://embedsocial.com/app/api/documentation) |

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Localith API to access Google Business Profile data, including listings, reviews, and performance metrics.","capabilities":["Fetch all Google Business locations","Retrieve specific location details by ID","Update location listing information","Fetch reviews with filtering by rating, date, and source","Get aggregated review metrics and trends","Retrieve listing performance metrics (impressions, clicks, calls, directions)","Get item metrics for posts or products","Publish media to Google Business profiles"],"authentication":"API Key required","commonUseCases":["Sync review data to external tools like Airtable, Notion, or Google Sheets","Set up automated alerts for new reviews via Slack or email","Generate AI-powered automated replies to customer reviews","Create reputation management dashboards and reports","Manage multiple business locations from a single workflow"],"limitations":[],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-whatsapp.whatsapp","n8n-nodes-slack.slack","n8n-nodes-github.github","n8n-nodes-airtable.airtable"]}


node_type: @brave/n8n-nodes-brave-search.braveSearch
package_name: @brave/n8n-nodes-brave-search
display_name: Brave Search
description: Search the web using Brave Search
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: bcrypt
author_github_url: https://github.com/brave/n8n-nodes-brave-search.git
npm_package_name: @brave/n8n-nodes-brave-search
npm_version: 1.0.28
community_fetched_at: 2026-03-25T21:19:40.525Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "web",
      "options": [
        {
          "name": "Web Search",
          "value": "web",
          "action": "Search the Web",
          "description": "Search the Web"
        },
        {
          "name": "News Search",
          "value": "news",
          "action": "Search for News",
          "description": "Search for News"
        },
        {
          "name": "Image Search",
          "value": "images",
          "action": "Search for Images",
          "description": "Search for Images"
        },
        {
          "name": "Video Search",
          "value": "videos",
          "action": "Search for Videos",
          "description": "Search for Videos"
        },
        {
          "name": "Spellcheck",
          "value": "spellcheck",
          "action": "Check Spelling of a Query",
          "description": "Check spelling of a query"
        },
        {
          "name": "Suggest",
          "value": "suggest",
          "action": "Get Suggestions for a Query",
          "description": "Get suggestions for a query"
        }
      ],
      "required": true,
      "description": "The operation to use for the Brave Search API",
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Web Search",
      "value": "web",
      "action": "Search the Web",
      "description": "Search the Web"
    },
    {
      "name": "News Search",
      "value": "news",
      "action": "Search for News",
      "description": "Search for News"
    },
    {
      "name": "Image Search",
      "value": "images",
      "action": "Search for Images",
      "description": "Search for Images"
    },
    {
      "name": "Video Search",
      "value": "videos",
      "action": "Search for Videos",
      "description": "Search for Videos"
    },
    {
      "name": "Spellcheck",
      "value": "spellcheck",
      "action": "Check Spelling of a Query",
      "description": "Check spelling of a query"
    },
    {
      "name": "Suggest",
      "value": "suggest",
      "action": "Get Suggestions for a Query",
      "description": "Get suggestions for a query"
    }
  ]

npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)
  # n8n-nodes-brave-search

  This is an n8n community node. It lets you use the [Brave Search API](https://brave.com/search/api/) in your n8n workflows.

  Power your search and AI apps with the fastest growing independent search engine since Bing. Access an index of billions of pages with a single call. Get started for free at https://brave.com/search/api/.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Table of Contents

  - [Installation](#installation)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [Usage](#usage)
  - [Resources](#resources)
  - [Development](#development)
  - [Version history](#version-history)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  This node presently supports search operations for general _web_ results, as well as _images_, _news_, and _videos_.

  ## Credentials

  An API key is required in order to issue calls to the Brave Search API. Get started for FREE with 1 query/second, and 2,000 queries/month. Sign up to retrieve your API key at https://brave.com/search/api/.

  ## Compatibility

  Tested locally against n8n v1.93.0.

  ## Usage

  You should familarize yourself with the various _response objects_, to understand what data is provided by the API, and how to access individual insights. Response object formats are available in the Brave Search API documentation. For example, to understand how a standard Web Search response looks, you can visit https://api-dashboard.search.brave.com/app/documentation/web-search/responses.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Brave Search API documentation](https://api-dashboard.search.brave.com/app/documentation/)

  ## Development

  To streamline and accelerate the development process, follow these steps:

  ### Quick Start (Recommended)

  1. Install _n8n_ globally (`pnpm add -g n8n`).
  2. Install dependencies: `pnpm install`
  3. Run the full development environment: `pnpm run dev:full`
  4. Open the n8n editor UI in your browser (typically at http://localhost:5678).

  The `dev:full` script automatically:
  - Builds the project
  - Starts TypeScript compilation in watch mode
  - Launches n8n with the proper environment variables set
  - Enables hot reloading for development

  ### Manual Development Setup

  If you prefer to run commands separately:

  1. Install _n8n_ globally (`pnpm add -g n8n`).
  2. Install dependencies: `pnpm install`
  3. Build the project: `pnpm build`
  4. Start TypeScript watch mode: `pnpm dev`
  5. In a separate terminal, start n8n: `pnpm run dev:n8n`

  ### Alternative: System Environment Variables

  You can also set environment variables manually if preferred:
  - Set `N8N_CUSTOM_EXTENSIONS` to the `/dist` directory of this repository
  - Set `N8N_DEV_RELOAD` to `true`
  - Run `pnpm run dev` and `n8n start` separately

  You should now be able to search for and use the Brave Search node in your n8n workflows.

  ### First-Time Setup Notes

  > **Important:** When launching n8n locally for the first time, the startup process may take 1-2 minutes to initialize. Wait for the "Editor is now accessible via web browser" message in the terminal before opening your browser.
  > 
  > On first access to http://localhost:5678, you'll be prompted to create an admin user account for your local n8n instance. 
  > 
  > **Remember:** You'll need to configure your Brave Search API credentials in the n8n interface before the node will function. See the [Credentials](#credentials) section above for API key information.
  > 
  > If you encounter issues or need to start fresh, you can reset n8n to its initial state by running `n8n user-management:reset`.

ai_documentation_summary:
  {"purpose":"A community n8n node that enables web search functionality by integrating with the Brave Search API to retrieve results across multiple content types.","capabilities":["Web search","Image search","News search","Video search"],"authentication":"API key required","commonUseCases":["Powering search and AI apps","Retrieving web content for automation workflows","Searching for images, news, or videos"],"limitations":["Free tier limited to 1 query/second and 2,000 queries/month","Community node (not official n8n node)"],"relatedNodes":["Community nodes","Brave Search API"]}


node_type: n8n-nodes-zitedb.zite
package_name: n8n-nodes-zitedb
display_name: Zite Database
description: Interact with databases in Zite
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: xkcdstickfigure
author_github_url: https://github.com/fillout/
npm_package_name: n8n-nodes-zitedb
npm_version: 1.0.1
community_fetched_at: 2026-03-25T21:19:40.526Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "record",
      "options": [
        {
          "name": "Record",
          "value": "record"
        },
        {
          "name": "Table",
          "value": "table"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tables",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/bases/{{$parameter.baseId}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a list of tables from a base"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get table",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/bases/{{$parameter.baseId}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a table by ID or name"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "table"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many records",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records",
              "method": "GET"
            }
          },
          "description": "Retrieve a list of records from a table"
        },
        {
          "name": "Get by ID",
          "value": "getById",
          "action": "Get record by ID",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records/{{$parameter.recordId}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a record from a table"
        },
        {
          "name": "Get by Field",
          "value": "getByField",
          "action": "Get record by field value",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "qs": {
                "limit": 1
              },
              "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records",
              "method": "GET"
            }
          },
          "description": "Retrieve a record by searching a field value"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create record",
          "routing": {
            "request": {
              "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records",
              "method": "POST"
            }
          },
          "description": "Create a new record"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update record",
          "routing": {
            "request": {
              "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records/{{$parameter.recordId}}",
              "method": "PATCH"
            }
          },
          "description": "Update an existing record"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete record",
          "routing": {
            "request": {
              "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records/{{$parameter.recordId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a record permanently"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "record"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tables",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/bases/{{$parameter.baseId}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a list of tables from a base"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get table",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/bases/{{$parameter.baseId}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a table by ID or name"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many records",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records",
          "method": "GET"
        }
      },
      "description": "Retrieve a list of records from a table"
    },
    {
      "name": "Get by ID",
      "value": "getById",
      "action": "Get record by ID",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records/{{$parameter.recordId}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a record from a table"
    },
    {
      "name": "Get by Field",
      "value": "getByField",
      "action": "Get record by field value",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "qs": {
            "limit": 1
          },
          "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records",
          "method": "GET"
        }
      },
      "description": "Retrieve a record by searching a field value"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create record",
      "routing": {
        "request": {
          "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records",
          "method": "POST"
        }
      },
      "description": "Create a new record"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update record",
      "routing": {
        "request": {
          "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records/{{$parameter.recordId}}",
          "method": "PATCH"
        }
      },
      "description": "Update an existing record"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete record",
      "routing": {
        "request": {
          "url": "=/bases/{{$parameter.baseId}}/tables/{{$parameter.tableId}}/records/{{$parameter.recordId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a record permanently"
    }
  ]

npm_readme:
  # n8n package for Zite Database

  ![Banner](https://raw.githubusercontent.com/fillout/n8n-nodes-zitedb/refs/heads/main/banner.png)

  This is an n8n community node that lets you interact with databases in Zite. [Learn more](https://www.fillout.com/help/database/overview).

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) on the n8n documentation website.

  ## Usage

  Add the trigger in n8n, and when creating a credential, you'll need to get an API key from your [account settings](https://build.fillout.com/home/settings/developer) in Zite. Make sure that the correct base URL is set, as you can have your data hosted in different regions with [Fillout Enterprise](https://www.fillout.com/enterprise).

  ## Developers

  For instructions on testing this node on a local n8n instance for development purposes, see https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with databases hosted in Zite (Fillout) within automated workflows.","capabilities":["Query Zite databases","Retrieve database records","Update database entries","Create new database records","Delete database entries"],"authentication":"API key required (obtained from Zite account settings)","commonUseCases":["Automating form data storage and retrieval","Integrating Zite forms with other business applications","Building custom workflows that require Zite database access"],"limitations":["Community node (not officially maintained by n8n)","Requires Zite Enterprise for multi-region base URL configuration","Limited documentation compared to official n8n nodes"],"relatedNodes":["Zite Trigger","Zite Database Item","Zite Database Update","Zite Database Delete"]}


node_type: @mollie/n8n-nodes-mollie.mollie
package_name: @mollie/n8n-nodes-mollie
display_name: Mollie
description: Interact with Mollie payment API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: mollienl
author_github_url: https://github.com/mollie/mollie-n8n-nodes.git
npm_package_name: @mollie/n8n-nodes-mollie
npm_version: 1.1.0
community_fetched_at: 2026-03-25T21:19:40.527Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "payment",
      "options": [
        {
          "name": "Balance",
          "value": "balance"
        },
        {
          "name": "Payment",
          "value": "payment"
        },
        {
          "name": "Payment Link",
          "value": "paymentLink"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTransactions",
      "options": [
        {
          "name": "Get Many Transactions",
          "value": "getTransactions",
          "action": "Get many balance transactions",
          "routing": {
            "send": {
              "preSend": [
                null
              ],
              "paginate": true
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "_embedded.balance_transactions"
                  }
                },
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ $response.body._embedded.balance_transactions.map(item => ({ ...item, createdAt: new Date(item.createdAt) })) }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/balances/{{$parameter.balanceId}}/transactions",
              "method": "GET"
            }
          },
          "description": "Get many balance transactions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "balance"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a payment",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v2/payments",
              "body": {
                "amount": {
                  "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
                  "currency": "={{$parameter.currency}}"
                },
                "locale": "={{$parameter.additionalFields?.locale || undefined}}",
                "method": "={{$parameter.additionalFields?.method || undefined}}",
                "metadata": "={{$parameter.additionalFields?.metadata || undefined}}",
                "mandateId": "={{$parameter.additionalFields?.mandateId || undefined}}",
                "profileId": "={{$parameter.authentication === \"oAuth2\" ? $parameter.profileId : undefined}}",
                "customerId": "={{$parameter.additionalFields?.customerId || undefined}}",
                "webhookUrl": "={{$parameter.additionalFields?.webhookUrl || undefined}}",
                "captureMode": "={{$parameter.additionalFields?.captureMode || undefined}}",
                "description": "={{$parameter.description}}",
                "redirectUrl": "={{$parameter.redirectUrl}}",
                "sequenceType": "={{$parameter.additionalFields?.sequenceType || undefined}}",
                "restrictPaymentMethodsToCountry": "={{$parameter.additionalFields?.restrictPaymentMethodsToCountry || undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a payment"
        },
        {
          "name": "Create Capture",
          "value": "createCapture",
          "action": "Create a payment capture",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v2/payments/{{$parameter.paymentId}}/captures",
              "body": {
                "amount": {
                  "value": "={{$parameter.amount ? parseFloat($parameter.amount).toFixed(2) : undefined}}",
                  "currency": "={{$parameter.amount ? $parameter.currency : undefined}}"
                },
                "metadata": "={{$parameter.metadata || undefined}}",
                "description": "={{$parameter.description || undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Capture an authorized payment"
        },
        {
          "name": "Create Refund",
          "value": "createRefund",
          "action": "Create a payment refund",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v2/payments/{{$parameter.paymentId}}/refunds",
              "body": {
                "amount": {
                  "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
                  "currency": "={{$parameter.currency}}"
                },
                "metadata": "={{$parameter.additionalFields?.metadata || undefined}}",
                "description": "={{$parameter.description || undefined}}",
                "reverseRouting": "={{$parameter.additionalFields?.reverseRouting || undefined}}",
                "routingReversals": "={{ $parameter.additionalFields?.routingReversals?.reversalValues ? $parameter.additionalFields.routingReversals.reversalValues.map(r => ({ amount: { value: parseFloat(r.amountValue || 0).toFixed(2), currency: r.amountCurrency }, source: { type: r.sourceType, organizationId: r.organizationId } })) : undefined }}"
              },
              "method": "POST"
            }
          },
          "description": "Create a payment refund"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a payment",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v2/payments/{{$parameter.paymentId}}",
              "method": "GET"
            }
          },
          "description": "Get a payment by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many payments",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "_embedded.payments"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/payments",
              "method": "GET"
            }
          },
          "description": "Get many payments"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "payment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a payment link",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v2/payment-links",
              "body": {
                "amount": {
                  "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
                  "currency": "={{$parameter.currency}}"
                },
                "expiresAt": "={{$parameter.expiresAt ? new Date($parameter.expiresAt).toISOString() : undefined}}",
                "profileId": "={{$parameter.authentication === \"oAuth2\" ? $parameter.profileId : undefined}}",
                "webhookUrl": "={{$parameter.webhookUrl || undefined}}",
                "description": "={{$parameter.description}}",
                "redirectUrl": "={{$parameter.redirectUrl || undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a payment link"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "paymentLink"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many Transactions",
      "value": "getTransactions",
      "action": "Get many balance transactions",
      "routing": {
        "send": {
          "preSend": [
            null
          ],
          "paginate": true
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "_embedded.balance_transactions"
              }
            },
            {
              "type": "set",
              "properties": {
                "value": "={{ $response.body._embedded.balance_transactions.map(item => ({ ...item, createdAt: new Date(item.createdAt) })) }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/balances/{{$parameter.balanceId}}/transactions",
          "method": "GET"
        }
      },
      "description": "Get many balance transactions"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a payment",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v2/payments",
          "body": {
            "amount": {
              "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
              "currency": "={{$parameter.currency}}"
            },
            "locale": "={{$parameter.additionalFields?.locale || undefined}}",
            "method": "={{$parameter.additionalFields?.method || undefined}}",
            "metadata": "={{$parameter.additionalFields?.metadata || undefined}}",
            "mandateId": "={{$parameter.additionalFields?.mandateId || undefined}}",
            "profileId": "={{$parameter.authentication === \"oAuth2\" ? $parameter.profileId : undefined}}",
            "customerId": "={{$parameter.additionalFields?.customerId || undefined}}",
            "webhookUrl": "={{$parameter.additionalFields?.webhookUrl || undefined}}",
            "captureMode": "={{$parameter.additionalFields?.captureMode || undefined}}",
            "description": "={{$parameter.description}}",
            "redirectUrl": "={{$parameter.redirectUrl}}",
            "sequenceType": "={{$parameter.additionalFields?.sequenceType || undefined}}",
            "restrictPaymentMethodsToCountry": "={{$parameter.additionalFields?.restrictPaymentMethodsToCountry || undefined}}"
          },
          "method": "POST"
        }
      },
      "description": "Create a payment"
    },
    {
      "name": "Create Capture",
      "value": "createCapture",
      "action": "Create a payment capture",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v2/payments/{{$parameter.paymentId}}/captures",
          "body": {
            "amount": {
              "value": "={{$parameter.amount ? parseFloat($parameter.amount).toFixed(2) : undefined}}",
              "currency": "={{$parameter.amount ? $parameter.currency : undefined}}"
            },
            "metadata": "={{$parameter.metadata || undefined}}",
            "description": "={{$parameter.description || undefined}}"
          },
          "method": "POST"
        }
      },
      "description": "Capture an authorized payment"
    },
    {
      "name": "Create Refund",
      "value": "createRefund",
      "action": "Create a payment refund",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v2/payments/{{$parameter.paymentId}}/refunds",
          "body": {
            "amount": {
              "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
              "currency": "={{$parameter.currency}}"
            },
            "metadata": "={{$parameter.additionalFields?.metadata || undefined}}",
            "description": "={{$parameter.description || undefined}}",
            "reverseRouting": "={{$parameter.additionalFields?.reverseRouting || undefined}}",
            "routingReversals": "={{ $parameter.additionalFields?.routingReversals?.reversalValues ? $parameter.additionalFields.routingReversals.reversalValues.map(r => ({ amount: { value: parseFloat(r.amountValue || 0).toFixed(2), currency: r.amountCurrency }, source: { type: r.sourceType, organizationId: r.organizationId } })) : undefined }}"
          },
          "method": "POST"
        }
      },
      "description": "Create a payment refund"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a payment",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v2/payments/{{$parameter.paymentId}}",
          "method": "GET"
        }
      },
      "description": "Get a payment by ID"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many payments",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "_embedded.payments"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/payments",
          "method": "GET"
        }
      },
      "description": "Get many payments"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a payment link",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v2/payment-links",
          "body": {
            "amount": {
              "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
              "currency": "={{$parameter.currency}}"
            },
            "expiresAt": "={{$parameter.expiresAt ? new Date($parameter.expiresAt).toISOString() : undefined}}",
            "profileId": "={{$parameter.authentication === \"oAuth2\" ? $parameter.profileId : undefined}}",
            "webhookUrl": "={{$parameter.webhookUrl || undefined}}",
            "description": "={{$parameter.description}}",
            "redirectUrl": "={{$parameter.redirectUrl || undefined}}"
          },
          "method": "POST"
        }
      },
      "description": "Create a payment link"
    }
  ]

npm_readme:
  # n8n-nodes-mollie

  This is an n8n community node that lets you use [Mollie](https://www.mollie.com/) payment API in your n8n workflows.

  Mollie is a payment service provider that allows businesses to accept online payments through various payment methods including credit cards, PayPal, Apple Pay, and more.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Table of Contents

  - [Installation](#installation)
  - [Authentication](#authentication)
    - [API Key Authentication](#api-key-authentication)
    - [OAuth2 Authentication](#oauth2-authentication)
  - [Operations](#operations)
  - [Compatibility](#compatibility)
  - [Usage](#usage)
  - [Resources](#resources)
  - [Version History](#version-history)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ### Community Node Installation

  1. Go to **Settings** > **Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-mollie` in **Enter npm package name**
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes
  5. Select **Install**

  After installation, you can use the Mollie node in your workflows.

  ### Manual Installation (for development)

  1. Clone this repository
  2. Navigate to the repository folder
  3. Run `npm install`
  4. Run `npm run build`
  5. Link the package to your n8n installation:
     ```bash
     npm link
     cd ~/.n8n/nodes
     npm link n8n-nodes-mollie
     ```
  6. Restart n8n

  ## Authentication

  This node supports two authentication methods:

  ### API Key Authentication

  Simple authentication using your Mollie API key.

  **Prerequisites:**
  - A Mollie account ([sign up here](https://www.mollie.com/dashboard/signup))
  - API key from your Mollie Dashboard

  **Setup:**

  1. Go to your [Mollie Dashboard](https://www.mollie.com/dashboard)
  2. Navigate to **Developers** > **API keys**
  3. Copy your **Live API key** or **Test API key**
  4. In n8n, create a new **Mollie API** credential
  5. Paste your API key
  6. Set **Test Account** to `true` if using a test key, `false` for live keys
  7. Save the credential

  **API Key Format:**
  - Test keys start with `test_`
  - Live keys start with `live_`

  ### OAuth2 Authentication

  OAuth2 authentication provides more granular permission control and is required for some operations.

  **Prerequisites:**
  - A Mollie account
  - OAuth app configured in Mollie Dashboard (optional - shared app provided by default)

  **Setup with Default Shared App:**

  1. In n8n, create a new **Mollie OAuth2 API** credential
  2. Set **Test Account** to `true` for testing or `false` for production
  3. (Optional) Select **Additional Scopes** if you need permissions beyond the defaults
  4. Click **Connect my account**
  5. Follow the OAuth flow to authorize access
  6. Save the credential

  **Setup with Custom OAuth App:**

  1. Go to your [Mollie Dashboard](https://www.mollie.com/dashboard)
  2. Navigate to **Developers** > **OAuth Apps**
  3. Create a new OAuth app
  4. Set the redirect URL to: `https://your-n8n-instance.com/rest/oauth2-credential/callback`
  5. Note your Client ID and Client Secret
  6. In n8n, create a new **Mollie OAuth2 API** credential
  7. Enter your **Client ID** and **Client Secret**
  8. Set **Test Account** appropriately
  9. Select any **Additional Scopes** you need
  10. Click **Connect my account**
  11. Follow the OAuth flow to authorize access
  12. Save the credential

  **Available Scopes:**

  The node requests these scopes by default:
  - `organizations.read` - View the merchant's organizational details
  - `profiles.read` - View the merchant's payment profiles

  Additional scopes you can select:
  - `payments.read` - View payments, chargebacks, and payment methods
  - `payments.write` - Create and manage payments
  - `refunds.read` - View refunds
  - `refunds.write` - Create and manage refunds
  - `customers.read` - View customers
  - `customers.write` - Create and manage customers
  - `mandates.read` - View mandates
  - `mandates.write` - Create and manage mandates
  - `subscriptions.read` - View subscriptions
  - `subscriptions.write` - Create and manage subscriptions
  - `profiles.write` - Create and manage profiles
  - `invoices.read` - View invoices
  - `settlements.read` - View settlements
  - `orders.read` - View orders
  - `orders.write` - Create and manage orders
  - `shipments.read` - View shipments
  - `shipments.write` - Create and manage shipments
  - `organizations.write` - Manage organizational details
  - `onboarding.read` - View onboarding status
  - `onboarding.write` - Manage onboarding
  - `balances.read` - View balances

  ## Operations

  ### Payment

  #### Get Many
  Retrieve a list of payments.

  **Parameters:**
  - **Return All**: Whether to return all results or limit to a specific number
  - **Limit**: Maximum number of payments to return (1-250, default: 100)
  - **Filters**:
    - **Status**: Filter by payment status
      - All
      - Open
      - Canceled
      - Pending
      - Authorized
      - Expired
      - Failed
      - Paid

  **Output:**
  Returns an array of payment objects with the following fields:
  - `id` - Mollie payment ID
  - `amount` - Payment amount (as number)
  - `currency` - Payment currency code (e.g., EUR, USD)
  - `status` - Payment status
  - `description` - Payment description
  - `method` - Payment method used
  - `checkoutLink` - URL to the payment checkout page
  - `createdAt` - ISO timestamp when payment was created
  - `expiresAt` - ISO timestamp when payment expires
  - `expiredAt` - ISO timestamp when payment expired (if applicable)
  - `paidAt` - ISO timestamp when payment was paid (if applicable)
  - `amountRefunded` - Total refunded amount (as number)
  - `amountRemaining` - Remaining capturable amount (as number)
  - `settlementAmount` - Settlement amount (as number)
  - Plus all other fields from the Mollie API response

  #### Get
  Retrieve a single payment by ID.

  **Parameters:**
  - **Payment ID**: The Mollie payment ID (e.g., `tr_WDqYK6vllg`)

  **Output:**
  Returns a single payment object with the same fields as described in "Get Many".

  ## Compatibility

  - Requires n8n version 0.198.0 or later
  - Tested with n8n version 1.0.0+
  - Compatible with Mollie API v2

  ## Usage

  ### Example: List Recent Paid Payments

  1. Add the **Mollie** node to your workflow
  2. Select your authentication method and credential
  3. Choose **Payment** as the resource
  4. Choose **Get Many** as the operation
  5. Set **Return All** to `false`
  6. Set **Limit** to `50`
  7. Under **Filters**, set **Status** to `Paid`
  8. Execute the node

  This will return the 50 most recent paid payments from your Mollie account.

  ### Example: Get Specific Payment Details

  1. Add the **Mollie** node to your workflow
  2. Select your authentication method and credential
  3. Choose **Payment** as the resource
  4. Choose **Get** as the operation
  5. Enter the **Payment ID** (e.g., from a webhook or previous node)
  6. Execute the node

  This will return detailed information about the specific payment.

  ### Test Mode

  Both authentication methods include a **Test Account** parameter:
  - Set to `true` to work with test payments (using test API keys)
  - Set to `false` to work with live production payments

  When Test Account is enabled, all API requests will include `testmode=true`, ensuring you only see test data.

  ## Future Operations

  This node is designed to be extended with additional operations. Planned future operations include:

  - **Create Payment** - Create a new payment
  - **Create Payment Link** - Generate a payment link
  - **Create Refund** - Refund a payment
  - **Customer Operations** - Manage customers
  - **Subscription Operations** - Manage subscriptions
  - **Order Operations** - Manage orders

  Contributions are welcome!

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Mollie API documentation](https://docs.mollie.com/reference/v2/payments-api/overview)
  - [Mollie Authentication documentation](https://docs.mollie.com/reference/authentication)
  - [Mollie Dashboard](https://www.mollie.com/dashboard)

  ## Version History

  ### 1.0.0
  - Initial release
  - Support for API Key and OAuth2 authentication
  - List Payments operation with pagination
  - Get Payment operation
  - Test mode support
  - Comprehensive error handling including rate limiting

  ## License

  [MIT](LICENSE)

  ## Support

  For issues, questions, or contributions, please visit the [GitHub repository](https://github.com/mollie/mollie-n8n-nodes).

  ## Credits

  Developed based on the Make.com Mollie integration specification, adapted for n8n workflows.

ai_documentation_summary:
  {"purpose":"A community n8n node that enables interaction with the Mollie payment API to manage payments, refunds, customers, and other financial operations.","capabilities":["Retrieve payment lists with filtering and pagination","Retrieve individual payments by ID","Create and manage payments","Manage refunds","Manage customer data","Manage mandates","Manage subscriptions","Manage payment profiles","View invoices and settlements","Manage organizational details"],"authentication":"API Key or OAuth2","commonUseCases":["Automated order processing with payment verification","Refund management workflows","Customer payment history retrieval","Subscription management automation","Invoice and settlement tracking"],"limitations":["Community node (requires manual installation for development)","Limited to Mollie API operations","Requires Mollie account and API credentials"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code Node"]}


node_type: @bedrijfsdatanl/n8n-nodes-bedrijfsdata.bedrijfsdata
package_name: @bedrijfsdatanl/n8n-nodes-bedrijfsdata
display_name: Bedrijfsdata
description: Get data from the Bedrijfsdata API.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: ocjanssen
author_github_url: https://github.com/ocjanssen/n8n-nodes-bedrijfsdata.git
npm_package_name: @bedrijfsdatanl/n8n-nodes-bedrijfsdata
npm_version: 0.1.9
community_fetched_at: 2026-03-25T21:19:40.528Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "companies",
      "options": [
        {
          "name": "Company",
          "value": "companies"
        },
        {
          "name": "Company (Related)",
          "value": "companies_related"
        },
        {
          "name": "Data (Advanced)",
          "value": "advanced_data"
        },
        {
          "name": "Enrich",
          "value": "enrich"
        },
        {
          "name": "Live Web RAG",
          "value": "rag"
        },
        {
          "name": "LLM Template",
          "value": "llm"
        },
        {
          "name": "Other Data",
          "value": "data_misc"
        },
        {
          "name": "Validation & Cleansing",
          "value": "validation"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_many",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get company",
          "routing": {
            "request": {
              "qs": {
                "front": 30,
                "country": "nl"
              },
              "url": "/companies",
              "method": "GET"
            }
          },
          "description": "Retrieve a company profile by Bedrijfsdata.nl ID"
        },
        {
          "name": "Get Many",
          "value": "get_many",
          "action": "Get companies",
          "routing": {
            "request": {
              "qs": {
                "front": 30,
                "and_or": "AND"
              },
              "url": "/companies",
              "method": "GET"
            }
          },
          "description": "Retrieve company profiles with advanced filtering options"
        },
        {
          "name": "Get Parameter Suggestions",
          "value": "get_suggest",
          "action": "Get parameter suggestions",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/suggest",
              "method": "GET"
            }
          },
          "description": "Retrieve valid filter values for text, apps, city & domain fields in \"Get Companies\" (/companies)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "companies"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Enrich Company Data",
          "value": "get",
          "action": "Enrich company data",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/enrich",
              "method": "GET"
            }
          },
          "description": "Enrich your own company data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "enrich"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Execute LLM Template",
          "value": "get",
          "action": "Execute llm template",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/llm",
              "method": "GET"
            }
          },
          "description": "Generate custom content by executing your LLM template"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "llm"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_url",
      "options": [
        {
          "name": "Get RAG Domain",
          "value": "get_domain",
          "action": "Get RAG domain",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/rag_domain",
              "method": "GET"
            }
          },
          "description": "Get content from a publicly accessible website"
        },
        {
          "name": "Get RAG URL",
          "value": "get_url",
          "action": "Get RAG URL",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/rag_url",
              "method": "GET"
            }
          },
          "description": "Get content from a publicly accessible URL"
        },
        {
          "name": "Get RAG Search",
          "value": "get_search",
          "action": "Get RAG search",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/rag_search",
              "method": "GET"
            }
          },
          "description": "Get search snippets from popular search engines by query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "rag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_family",
      "options": [
        {
          "name": "Get Corporate Family",
          "value": "get_family",
          "action": "Get corporate family",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/corporate_family",
              "method": "GET"
            }
          },
          "description": "Get companies from same corporate family as a specific company"
        },
        {
          "name": "Get Shared Address",
          "value": "get_same_address",
          "action": "Get shared address",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/shared_address",
              "method": "GET"
            }
          },
          "description": "Get companies that are registered on the same address as a specific company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "companies_related"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_people",
      "options": [
        {
          "name": "Get Many Employees",
          "value": "get_people",
          "action": "Get many employees",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/people",
              "method": "GET"
            }
          },
          "description": "Get employees of a specific company"
        },
        {
          "name": "Get Many News",
          "value": "get_news",
          "action": "Get many news",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/news",
              "method": "GET"
            }
          },
          "description": "Get news about a specific company"
        },
        {
          "name": "Get Many Vacancies",
          "value": "get_vacancies",
          "action": "Get many vacancies",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/vacancies",
              "method": "GET"
            }
          },
          "description": "Get vacancies of a specific company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "advanced_data"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_url",
      "options": [
        {
          "name": "Geocoding",
          "value": "get_geocoding",
          "action": "Geocoding",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/geocoding",
              "method": "GET"
            }
          },
          "description": "Validate and format unstructured geographic data"
        },
        {
          "name": "Validate BIC Number",
          "value": "get_bic",
          "action": "Validate bic number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/bic",
              "method": "GET"
            }
          },
          "description": "Validate BIC numbers"
        },
        {
          "name": "Validate City",
          "value": "get_city",
          "action": "Validate city",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/city",
              "method": "GET"
            }
          },
          "description": "Validate (global) cities"
        },
        {
          "name": "Validate Dutch VAT Number",
          "value": "get_vat",
          "action": "Validate dutch vat number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/vat",
              "method": "GET"
            }
          },
          "description": "Validate Dutch VAT numbers (btw-nummers)"
        },
        {
          "name": "Validate Email Address",
          "value": "get_email",
          "action": "Validate email address",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/email",
              "method": "GET"
            }
          },
          "description": "Validate email addresses (basic validation only)"
        },
        {
          "name": "Validate IBAN Number",
          "value": "get_iban",
          "action": "Validate iban number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/iban",
              "method": "GET"
            }
          },
          "description": "Validate IBAN numbers"
        },
        {
          "name": "Validate KvK Number",
          "value": "get_kvk",
          "action": "Validate kv k number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/kvk",
              "method": "GET"
            }
          },
          "description": "Validate KvK numbers"
        },
        {
          "name": "Validate LEI Number",
          "value": "get_lei",
          "action": "Validate lei number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/lei",
              "method": "GET"
            }
          },
          "description": "Validate LEI numbers"
        },
        {
          "name": "Validate Phone Number",
          "value": "get_phone",
          "action": "Validate phone number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/phone",
              "method": "GET"
            }
          },
          "description": "Validate (global) phone numbers"
        },
        {
          "name": "Validate Postcode",
          "value": "get_postcode",
          "action": "Validate postcode",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/postcode",
              "method": "GET"
            }
          },
          "description": "Validate (global) postcodes"
        },
        {
          "name": "Validate URL",
          "value": "get_url",
          "action": "Validate URL",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/url",
              "method": "GET"
            }
          },
          "description": "Validate URL's"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "validation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_siterank",
      "options": [
        {
          "name": "Get BAG Data",
          "value": "get_bag",
          "action": "Get bag data",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/bag",
              "method": "GET"
            }
          },
          "description": "Get Dutch BAG data by address"
        },
        {
          "name": "Get DNS Scan",
          "value": "get_dns",
          "action": "Get DNS scan",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/dns",
              "method": "GET"
            }
          },
          "description": "Retrieve data straight from a domain's DNS"
        },
        {
          "name": "Get EU Tenders",
          "value": "get_tender",
          "action": "Get eu tenders",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/tender",
              "method": "GET"
            }
          },
          "description": "Query the European Tender database"
        },
        {
          "name": "Get Exchange Rate",
          "value": "get_currency",
          "action": "Get exchange rate",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/currency",
              "method": "GET"
            }
          },
          "description": "Get exchange rates for 300+ currencies (incl. crypto)."
        },
        {
          "name": "Get Password Leaks",
          "value": "get_password",
          "action": "Get password leaks",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/password",
              "method": "GET"
            }
          },
          "description": "Find out how many times a password was leaked before"
        },
        {
          "name": "Get Property Information",
          "value": "get_property",
          "action": "Get property information",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/property",
              "method": "GET"
            }
          },
          "description": "Get property information by address or company ID"
        },
        {
          "name": "Get Web Rankings",
          "value": "get_webrank",
          "action": "Get web rankings",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/webrank",
              "method": "GET"
            }
          },
          "description": "Get global rankings like Majestic, CRUX, CloudFlare and DomCop"
        },
        {
          "name": "Get Website Performance",
          "value": "get_siterank",
          "action": "Get website performance",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/siterank",
              "method": "GET"
            }
          },
          "description": "Get data on a company's website performance and popularity ranking"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "data_misc"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get company",
      "routing": {
        "request": {
          "qs": {
            "front": 30,
            "country": "nl"
          },
          "url": "/companies",
          "method": "GET"
        }
      },
      "description": "Retrieve a company profile by Bedrijfsdata.nl ID"
    },
    {
      "name": "Get Many",
      "value": "get_many",
      "action": "Get companies",
      "routing": {
        "request": {
          "qs": {
            "front": 30,
            "and_or": "AND"
          },
          "url": "/companies",
          "method": "GET"
        }
      },
      "description": "Retrieve company profiles with advanced filtering options"
    },
    {
      "name": "Get Parameter Suggestions",
      "value": "get_suggest",
      "action": "Get parameter suggestions",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/suggest",
          "method": "GET"
        }
      },
      "description": "Retrieve valid filter values for text, apps, city & domain fields in \"Get Companies\" (/companies)"
    },
    {
      "name": "Enrich Company Data",
      "value": "get",
      "action": "Enrich company data",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/enrich",
          "method": "GET"
        }
      },
      "description": "Enrich your own company data"
    },
    {
      "name": "Execute LLM Template",
      "value": "get",
      "action": "Execute llm template",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/llm",
          "method": "GET"
        }
      },
      "description": "Generate custom content by executing your LLM template"
    },
    {
      "name": "Get RAG Domain",
      "value": "get_domain",
      "action": "Get RAG domain",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/rag_domain",
          "method": "GET"
        }
      },
      "description": "Get content from a publicly accessible website"
    },
    {
      "name": "Get RAG URL",
      "value": "get_url",
      "action": "Get RAG URL",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/rag_url",
          "method": "GET"
        }
      },
      "description": "Get content from a publicly accessible URL"
    },
    {
      "name": "Get RAG Search",
      "value": "get_search",
      "action": "Get RAG search",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/rag_search",
          "method": "GET"
        }
      },
      "description": "Get search snippets from popular search engines by query"
    },
    {
      "name": "Get Corporate Family",
      "value": "get_family",
      "action": "Get corporate family",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/corporate_family",
          "method": "GET"
        }
      },
      "description": "Get companies from same corporate family as a specific company"
    },
    {
      "name": "Get Shared Address",
      "value": "get_same_address",
      "action": "Get shared address",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/shared_address",
          "method": "GET"
        }
      },
      "description": "Get companies that are registered on the same address as a specific company"
    },
    {
      "name": "Get Many Employees",
      "value": "get_people",
      "action": "Get many employees",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/people",
          "method": "GET"
        }
      },
      "description": "Get employees of a specific company"
    },
    {
      "name": "Get Many News",
      "value": "get_news",
      "action": "Get many news",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/news",
          "method": "GET"
        }
      },
      "description": "Get news about a specific company"
    },
    {
      "name": "Get Many Vacancies",
      "value": "get_vacancies",
      "action": "Get many vacancies",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/vacancies",
          "method": "GET"
        }
      },
      "description": "Get vacancies of a specific company"
    },
    {
      "name": "Geocoding",
      "value": "get_geocoding",
      "action": "Geocoding",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/geocoding",
          "method": "GET"
        }
      },
      "description": "Validate and format unstructured geographic data"
    },
    {
      "name": "Validate BIC Number",
      "value": "get_bic",
      "action": "Validate bic number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/bic",
          "method": "GET"
        }
      },
      "description": "Validate BIC numbers"
    },
    {
      "name": "Validate City",
      "value": "get_city",
      "action": "Validate city",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/city",
          "method": "GET"
        }
      },
      "description": "Validate (global) cities"
    },
    {
      "name": "Validate Dutch VAT Number",
      "value": "get_vat",
      "action": "Validate dutch vat number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/vat",
          "method": "GET"
        }
      },
      "description": "Validate Dutch VAT numbers (btw-nummers)"
    },
    {
      "name": "Validate Email Address",
      "value": "get_email",
      "action": "Validate email address",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/email",
          "method": "GET"
        }
      },
      "description": "Validate email addresses (basic validation only)"
    },
    {
      "name": "Validate IBAN Number",
      "value": "get_iban",
      "action": "Validate iban number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/iban",
          "method": "GET"
        }
      },
      "description": "Validate IBAN numbers"
    },
    {
      "name": "Validate KvK Number",
      "value": "get_kvk",
      "action": "Validate kv k number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/kvk",
          "method": "GET"
        }
      },
      "description": "Validate KvK numbers"
    },
    {
      "name": "Validate LEI Number",
      "value": "get_lei",
      "action": "Validate lei number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/lei",
          "method": "GET"
        }
      },
      "description": "Validate LEI numbers"
    },
    {
      "name": "Validate Phone Number",
      "value": "get_phone",
      "action": "Validate phone number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/phone",
          "method": "GET"
        }
      },
      "description": "Validate (global) phone numbers"
    },
    {
      "name": "Validate Postcode",
      "value": "get_postcode",
      "action": "Validate postcode",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/postcode",
          "method": "GET"
        }
      },
      "description": "Validate (global) postcodes"
    },
    {
      "name": "Validate URL",
      "value": "get_url",
      "action": "Validate URL",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/url",
          "method": "GET"
        }
      },
      "description": "Validate URL's"
    },
    {
      "name": "Get BAG Data",
      "value": "get_bag",
      "action": "Get bag data",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/bag",
          "method": "GET"
        }
      },
      "description": "Get Dutch BAG data by address"
    },
    {
      "name": "Get DNS Scan",
      "value": "get_dns",
      "action": "Get DNS scan",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/dns",
          "method": "GET"
        }
      },
      "description": "Retrieve data straight from a domain's DNS"
    },
    {
      "name": "Get EU Tenders",
      "value": "get_tender",
      "action": "Get eu tenders",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/tender",
          "method": "GET"
        }
      },
      "description": "Query the European Tender database"
    },
    {
      "name": "Get Exchange Rate",
      "value": "get_currency",
      "action": "Get exchange rate",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/currency",
          "method": "GET"
        }
      },
      "description": "Get exchange rates for 300+ currencies (incl. crypto)."
    },
    {
      "name": "Get Password Leaks",
      "value": "get_password",
      "action": "Get password leaks",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/password",
          "method": "GET"
        }
      },
      "description": "Find out how many times a password was leaked before"
    },
    {
      "name": "Get Property Information",
      "value": "get_property",
      "action": "Get property information",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/property",
          "method": "GET"
        }
      },
      "description": "Get property information by address or company ID"
    },
    {
      "name": "Get Web Rankings",
      "value": "get_webrank",
      "action": "Get web rankings",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/webrank",
          "method": "GET"
        }
      },
      "description": "Get global rankings like Majestic, CRUX, CloudFlare and DomCop"
    },
    {
      "name": "Get Website Performance",
      "value": "get_siterank",
      "action": "Get website performance",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/siterank",
          "method": "GET"
        }
      },
      "description": "Get data on a company's website performance and popularity ranking"
    }
  ]

npm_readme:
  # n8n-nodes-bedrijfsdata

  ![n8n.io - Workflow Automation](https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-logo.png)

  An n8n community node for integrating with the [Bedrijfsdata.nl API](https://docs.bedrijfsdata.nl/). This node allows you to search and retrieve comprehensive Dutch company information directly within your n8n workflows.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes** in your n8n instance
  2. Select **Install**
  3. Enter `n8n-nodes-bedrijfsdata`
  4. Agree to the risks and select **Install**

  ### Docker (Quick Start)

  Run n8n with the Bedrijfsdata node pre-installed:

  ```bash
  ./run.sh
  ```

  Then access n8n at http://localhost:5678

  To update the node after making changes:
  ```bash
  npm run build && docker-compose restart
  ```

  ### Manual Installation

  To get started:

  ```bash
  npm install n8n-nodes-bedrijfsdata
  ```

  ## Credentials

  You need a Bedrijfsdata.nl API key to use this node:

  1. Sign up at [Bedrijfsdata.nl](https://bedrijfsdata.nl/)
  2. Get your API key from your account dashboard
  3. In n8n, create new credentials of type "Bedrijfsdata API"
  4. Enter your API key

  ## Supported Operations

  ### Companies Resource

  #### Get Company
  Retrieve a company profile by Bedrijfsdata.nl ID.

  #### Get Companies
  Search and retrieve Dutch company information with extensive filtering options:

  **Basic Search Parameters:**
  - **Country**: Netherlands (required)
  - **Text**: Keyword search across company names, industries, activities, and website content

  **Company Identification:**
  - **Company ID**: Bedrijfsdata.nl unique identifier
  - **Company Name**: Official company name
  - **All Names**: Search across all known names including trade names
  - **Chamber of Commerce Number**: KvK number
  - **VAT Number**: BTW number
  - **Domain**: Company website domain

  **Location-based Search:**
  - **City**: Dutch city (case-sensitive, official name)
  - **Province**: Dutch province (case-sensitive, official name)
  - **Postcode**: Dutch postal code
  - **Address ID**: Format: NL{postcode}-{house number} (e.g., "NL1234AB-150")
  - **Location**: Search by city/municipality with distance
  - **Geo Coordinates**: Search by latitude,longitude with distance
  - **Distance**: Radius in kilometers (use with location or geo coordinates)

  **Company Characteristics:**
  - **Office Type**: Hoofdvestiging (main office) or Nevenvestiging (branch office)
  - **Organization Type**: Legal entity types (BV, NV, Stichting, etc.)
  - **Employees**: Number of employees (range format: 5:10, 5:, :10)
  - **Revenue**: Annual revenue (range format: 500000:1000000, 500000:, :1000000)
  - **Founded**: Year of establishment (range format: 2010:2020, 2010:, :2020)
  - **SBI Code**: Industry classification codes (comma-separated)

  **Digital Presence:**
  - **Apps**: Technologies/apps used by the company
  - **Monthly Visits**: Website traffic estimates (range format)
  - **Social Exists**: Available social media channels (Facebook, Instagram, LinkedIn, etc.)
  - **Social Interactions**: Social media engagement metrics (range format)
  - **PageRank**: DomCop PageRank (0-10, range format)
  - **Crux Rank**: Crux ranking (1-50m, range format)
  - **Tranco Rank**: Tranco ranking (1-3m, range format)

  **Relationship Analysis:**
  - **Linked By**: Domains that link to the company website
  - **Link Domain**: Domains the company links to
  - **Mentioned By**: Domains that mention the company
  - **Relation**: Combination of linked_by, mentioned_by, and linkdomain

  **Data Availability:**
  - **Data Exists**: Filter by available data types (address, email, phone, etc.)
  - **Rating**: Average review rating (0-5, range format)
  - **Reviews**: Number of reviews (range format)

  **Output Control:**
  - **Rows**: Number of companies to return

  ### Enrich Resource

  #### Enrich Company Data
  Enrich your own company data with additional information from Bedrijfsdata.

  ### LLM Template Resource

  #### Execute LLM Template
  Generate custom content by executing your LLM template with company data.

  ### Web RAG Resource

  #### Get RAG domain
  Extract and analyze content from a publicly accessible website.

  #### Get RAG URL
  Extract and analyze content from a publicly accessible URL.

  #### Get RAG Search
  Get search snippets from popular search engines by query.

  ### Related Companies Resource

  #### Get Corporate Family
  Find companies that belong to the same corporate family as a specific company.

  #### Get Shared Address
  Discover companies that are registered at the same address as a specific company.

  ### Advanced Company Data Resource

  #### Get Many Employees
  Retrieve employee information for a specific company.

  #### Get Many News
  Collect news articles related to a specific company.

  #### Get Many Vacancies
  Find job openings posted by a specific company.

  ### Validation & Cleansing Resource

  #### Validate Email Address
  Perform basic validation on email addresses.

  #### Validate BIC Number
  Verify the validity of BIC (Bank Identifier Code) numbers.

  #### Validate City
  Validate global city names.

  #### Geocoding
  Convert addresses to geographic coordinates and vice versa.

  #### Validate IBAN Number
  Check the validity of IBAN (International Bank Account Number) formats.

  #### Validate KvK Number
  Verify Dutch Chamber of Commerce (KvK) registration numbers.

  #### Validate LEI Number
  Validate Legal Entity Identifier (LEI) numbers.

  #### Validate Phone Number
  Check and format global phone numbers.

  #### Validate Postcode
  Verify postal code formats from different countries.

  #### Validate URL
  Check URL validity and structure.

  #### Validate Dutch VAT Number
  Verify Dutch VAT numbers (BTW-nummers).

  ### Other Data Resource

  #### Get BAG Data
  Retrieve Dutch BAG (Basisregistratie Adressen en Gebouwen) data by address.

  #### Get Exchange Rate
  Access exchange rates for over 300 currencies, including cryptocurrencies.

  #### Get DNS Scan
  Extract data directly from a domain's DNS records.

  #### Get Password Leaks
  Check how many times a password has been exposed in data breaches.

  #### Get Property Information
  Obtain property details by address or company ID.

  #### Get Website Performance
  Analyze a company's website performance and popularity rankings.

  #### Get EU Tenders
  Search the European Tender database.

  #### Get Web Rankings
  Access global rankings like Majestic, CRUX, CloudFlare, and DomCop.

  ## Usage Examples

  ### Basic Company Search
  Search for companies by keyword:
  ```json
  {
    "resource": "companies",
    "operation": "get",
    "country": "nl",
    "additionalFields": {
      "text": "software development",
      "rows": 10
    }
  }
  ```

  ### Find Companies by Location
  Search for companies in Amsterdam:
  ```json
  {
    "resource": "companies",
    "operation": "get",
    "country": "nl",
    "additionalFields": {
      "city": "Amsterdam",
      "orgtype": ["Besloten Vennootschap"],
      "employees": "10:100"
    }
  }
  ```

  ### Technology Company Analysis
  Find companies using specific technologies:
  ```json
  {
    "resource": "companies",
    "operation": "get",
    "country": "nl",
    "additionalFields": {
      "apps": "Salesforce,HubSpot",
      "social_exists": ["linkedin", "twitter"],
      "monthly_visits": "1000:"
    }
  }
  ```

  ### Geographic Radius Search
  Find companies within 25km of coordinates:
  ```json
  {
    "resource": "companies",
    "operation": "get",
    "country": "nl",
    "additionalFields": {
      "geo": "52.3676,4.9041",
      "distance": 25,
      "revenue": "1000000:"
    }
  }
  ```

  ## Range Format

  Many fields support range queries with the following format:
  - **Range**: `min:max` (e.g., `100:500`)
  - **Minimum only**: `min:` (e.g., `100:`)
  - **Maximum only**: `:max` (e.g., `:500`)

  ## API Documentation

  For detailed API documentation, visit [docs.bedrijfsdata.nl](https://docs.bedrijfsdata.nl/).

  ## Compatibility

  - **n8n version**: 0.187.0 or later
  - **Node.js version**: 20.15 or later

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Bedrijfsdata.nl API Documentation](https://docs.bedrijfsdata.nl/)

  ## Development

  ### Prerequisites

  - Node.js 20.15 or later
  - npm or pnpm

  ### Setup

  ```bash
  # Clone the repository
  git clone https://github.com/ocjanssen/n8n-nodes-bedrijfsdata.git

  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Lint the code
  npm run lint

  # Auto-fix linting issues
  npm run lintfix
  ```

  ### Testing

  To test the node locally:

  1. Build the node: `npm run build`
  2. Link it to your global n8n installation: `npm link`
  3. In your n8n directory: `npm link n8n-nodes-bedrijfsdata`
  4. Start n8n: `n8n start`

  OR

  ```bash
  ./run.sh
  ```

  ## Contributing

  Contributions are welcome! Please feel free to submit a Pull Request.

  ## License

  [MIT](LICENSE.md)

  ## Support

  If you encounter any issues or have questions:

  1. Check the [Bedrijfsdata.nl API documentation](https://docs.bedrijfsdata.nl/)
  2. Review the [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  3. Open an issue in this repository

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the Bedrijfsdata.nl API to search, retrieve, and enrich Dutch company data within workflow automation.","capabilities":["Search and retrieve company profiles by ID, name, or multiple attributes","Filter companies by location (city, province, postcode, geo-coordinates)","Filter companies by characteristics (employees, revenue, founded year, industry)","Enrich existing company data with additional Bedrijfsdata information","Find related companies (corporate family, shared address)","Retrieve employee lists, news articles, and job vacancies for companies","Validate email addresses, BIC numbers, IBANs, KvK numbers, LEI numbers, phone numbers, postcodes, and VAT numbers","Perform geocoding and address validation","Execute LLM templates with company data","Extract and analyze content from websites and URLs (Web RAG)"],"authentication":"API key required (Bedrijfsdata.nl API key)","commonUseCases":["Market research and competitor analysis in the Netherlands","Lead generation by searching companies by location or industry","Enriching CRM data with Dutch business profiles","Validating business contact information (emails, phone numbers, addresses)","Finding corporate family relationships or shared business addresses"],"limitations":["Requires a valid Bedrijfsdata.nl API key and account","Search parameters are specific to Dutch companies and locations","Some advanced features (LLM templates, Web RAG) may depend on external services or additional configuration","Geocoding and location searches require official Dutch city/province names"],"relatedNodes":["HTTP Request","Code","Function"]}


