# nodes

node_type: n8n-nodes-qdrant.qdrant
package_name: n8n-nodes-qdrant
display_name: Qdrant
description: Official n8n node to interface with Qdrant - https://qdrant.tech
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: qdrant-tech
author_github_url: https://github.com/qdrant/
npm_package_name: n8n-nodes-qdrant
npm_version: 0.2.1
community_fetched_at: 2026-07-14T14:40:33.137Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "collection",
      "options": [
        {
          "name": "Collection",
          "value": "collection"
        },
        {
          "name": "Payload",
          "value": "payload"
        },
        {
          "name": "Point",
          "value": "point"
        },
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Vector",
          "value": "vector"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Collections",
          "value": "listCollections",
          "action": "List Collections",
          "routing": {
            "request": {
              "url": "/collections",
              "method": "GET"
            }
          },
          "description": "List all collections in the Qdrant instance"
        },
        {
          "name": "Create Collection",
          "value": "createCollection",
          "action": "Create Collection",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}",
              "body": {
                "vectors": "={{JSON.parse($parameter.vectors)}}",
                "init_from": "={{JSON.parse($parameter.initFrom)}}",
                "wal_config": "={{JSON.parse($parameter.walConfig)}}",
                "hnsw_config": "={{JSON.parse($parameter.hnswConfig)}}",
                "shard_number": "={{$parameter.shardNumber}}",
                "sparse_vectors": "={{JSON.parse($parameter.sparseVectors)}}",
                "on_disk_payload": "={{$parameter.onDiskPayload}}",
                "sharding_method": "={{$parameter.shardingMethod}}",
                "optimizers_config": "={{JSON.parse($parameter.optimizersConfig)}}",
                "replication_factor": "={{$parameter.replicationFactor}}",
                "strict_mode_config": "={{JSON.parse($parameter.strictModeConfig)}}",
                "quantization_config": "={{JSON.parse($parameter.quantizationConfig)}}",
                "write_consistency_factor": "={{$parameter.writeConsistencyFactor}}"
              },
              "method": "PUT"
            }
          },
          "description": "Create a new collection in the Qdrant instance"
        },
        {
          "name": "Update Collection",
          "value": "updateCollection",
          "action": "Update Collection",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}",
              "body": {
                "params": "={{JSON.parse($parameter.params)}}",
                "vectors": "={{JSON.parse($parameter.vectors)}}",
                "hnsw_config": "={{JSON.parse($parameter.hnswConfig)}}",
                "sparse_vectors": "={{JSON.parse($parameter.sparseVectors)}}",
                "optimizers_config": "={{JSON.parse($parameter.optimizersConfig)}}",
                "strict_mode_config": "={{JSON.parse($parameter.strictModeConfig)}}",
                "quantization_config": "={{JSON.parse($parameter.quantizationConfig)}}"
              },
              "method": "PATCH"
            }
          },
          "description": "Update parameters of an existing collection in the Qdrant instance"
        },
        {
          "name": "Get Collection",
          "value": "getCollection",
          "action": "Get Collection",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific collection"
        },
        {
          "name": "Check If Collection Exists",
          "value": "collectionExists",
          "action": "Check If Collection Exists",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}/exists",
              "method": "GET"
            }
          },
          "description": "Check if a collection exists in the Qdrant instance"
        },
        {
          "name": "Delete Collection",
          "value": "deleteCollection",
          "action": "Delete Collection",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}",
              "method": "DELETE"
            }
          },
          "description": "Delete the specified collection"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "collection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Upsert Points",
          "value": "upsertPoints",
          "action": "Upsert Points",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points",
              "body": {
                "points": "={{JSON.parse($parameter.points)}}"
              },
              "method": "PUT"
            }
          },
          "description": "Insert or update points in a collection"
        },
        {
          "name": "Retrieve Point",
          "value": "retrievePoint",
          "action": "Retrieve Point",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}/points/{{isNaN(Number($parameter.id)) ?  $parameter.id : Number($parameter.id)}}",
              "method": "GET"
            }
          },
          "description": "Retrieves all details from a single point"
        },
        {
          "name": "Retrieve Points",
          "value": "retrievePoints",
          "action": "Retrieve Points",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points",
              "body": {
                "ids": "={{JSON.parse($parameter.points)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}",
                "with_vector": "={{$parameter.withVector}}",
                "with_payload": "={{$parameter.withPayload}}"
              },
              "method": "POST"
            }
          },
          "description": "Retrieve all details from multiple points"
        },
        {
          "name": "Delete Points",
          "value": "deletePoints",
          "action": "Delete Points",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/delete",
              "body": {
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Delete specified points from the collection"
        },
        {
          "name": "Count Points",
          "value": "countPoints",
          "action": "Count Points",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/count",
              "body": {
                "exact": "={{$parameter.exact}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Counts the number of points that match a specified filtering condition"
        },
        {
          "name": "Scroll Points",
          "value": "scrollPoints",
          "action": "Scroll Points",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/scroll",
              "body": {
                "limit": "={{$parameter.limit}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "offset": "={{isNaN(Number($parameter.offset)) ?  $parameter.offset : Number($parameter.offset)}}",
                "order_by": "={{JSON.parse($parameter.orderBy)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}",
                "with_vector": "={{$parameter.withVector}}",
                "with_payload": "={{$parameter.withPayload}}"
              },
              "method": "POST"
            }
          },
          "description": "Returns all points in a page-by-page manner"
        },
        {
          "name": "Batch Update Points",
          "value": "batchUpdatePoints",
          "action": "Batch Update Points",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/batch",
              "body": {
                "operations": "={{JSON.parse($parameter.operations)}}"
              },
              "method": "POST"
            }
          },
          "description": "Batch update points, including their respective vectors and payloads"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "point"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Update Vectors",
          "value": "updateVectors",
          "action": "Update Vectors",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/vectors",
              "body": {
                "points": "={{JSON.parse($parameter.points)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "PUT"
            }
          },
          "description": "Update specified vectors on points"
        },
        {
          "name": "Delete Vectors",
          "value": "deleteVectors",
          "action": "Delete Vectors",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/vectors/delete",
              "body": {
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "vector": "={{JSON.parse($parameter.vector)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Delete specified vectors from points"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "vector"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Set Payload",
          "value": "setPayload",
          "action": "Set Payload",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/payload",
              "body": {
                "key": "={{$parameter.key ? $parameter.key : null}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "payload": "={{JSON.parse($parameter.payload)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Sets payload values for specified points"
        },
        {
          "name": "Overwrite Payload",
          "value": "overwritePayload",
          "action": "Overwrite Payload",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/payload",
              "body": {
                "key": "={{$parameter.key ? $parameter.key : null}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "payload": "={{JSON.parse($parameter.payload)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "PUT"
            }
          },
          "description": "Replaces the entire payload of specified points with a new payload"
        },
        {
          "name": "Delete Payload",
          "value": "deletePayload",
          "action": "Delete Payload",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/payload/delete",
              "body": {
                "keys": "={{JSON.parse($parameter.keys)}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Deletes specified payload keys from points"
        },
        {
          "name": "Clear Payload",
          "value": "clearPayload",
          "action": "Clear Payload",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/payload/clear",
              "body": {
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Removes the entire payload for specified points"
        },
        {
          "name": "Payload Facets",
          "value": "payloadFacets",
          "action": "Get Payload Facets",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/facet",
              "body": {
                "key": "={{$parameter.key}}",
                "exact": "={{$parameter.exact}}",
                "limit": "={{$parameter.limit}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Retrieves facets for the specified payload field"
        },
        {
          "name": "Create Payload Index",
          "value": "createPayloadIndex",
          "action": "Create Payload Index",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/index",
              "body": {
                "field_name": "={{$parameter.fieldName}}",
                "field_schema": "={{JSON.parse($parameter.fieldSchema)}}"
              },
              "method": "PUT"
            }
          },
          "description": "Creates a payload index for a field in the specified collection"
        },
        {
          "name": "Delete Payload Index",
          "value": "deletePayloadIndex",
          "action": "Delete Payload Index",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/index/{{$parameter.fieldName}}",
              "method": "DELETE"
            }
          },
          "description": "Deletes a payload index for a field in the specified collection"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "payload"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Query Points",
          "value": "queryPoints",
          "action": "Query Points",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/query",
              "body": {
                "limit": "={{$parameter.limit}}",
                "query": "={{JSON.parse($parameter.query)}}",
                "using": "={{$parameter.using}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "offset": "={{$parameter.offset}}",
                "params": "={{JSON.parse($parameter.params)}}",
                "prefetch": "={{JSON.parse($parameter.prefetch)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}",
                "lookup_from": "={{JSON.parse($parameter.lookupFrom)}}",
                "with_vector": "={{$parameter.withVector}}",
                "with_payload": "={{$parameter.withPayload}}",
                "score_threshold": "={{$parameter.scoreThreshold}}"
              },
              "method": "POST"
            }
          },
          "description": "Query points in a collection using various search methods"
        },
        {
          "name": "Query Batch Points",
          "value": "queryBatchPoints",
          "action": "Query Batch Points",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/query/batch",
              "body": {
                "searches": "={{JSON.parse($parameter.searches)}}"
              },
              "method": "POST"
            }
          },
          "description": "Query multiple points in batch using various search methods"
        },
        {
          "name": "Query Points Groups",
          "value": "queryPointsGroups",
          "action": "Query Points Groups",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/query/groups",
              "body": {
                "limit": "={{$parameter.limit}}",
                "query": "={{JSON.parse($parameter.query)}}",
                "using": "={{$parameter.using}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "params": "={{JSON.parse($parameter.params)}}",
                "group_by": "={{$parameter.groupBy}}",
                "prefetch": "={{JSON.parse($parameter.prefetch)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}",
                "group_size": "={{$parameter.groupSize}}",
                "lookup_from": "={{JSON.parse($parameter.lookupFrom)}}",
                "with_lookup": "={{JSON.parse($parameter.withLookup)}}",
                "with_vector": "={{$parameter.withVector}}",
                "with_payload": "={{$parameter.withPayload}}",
                "score_threshold": "={{$parameter.scoreThreshold}}"
              },
              "method": "POST"
            }
          },
          "description": "Query points and group results by a specified payload field"
        },
        {
          "name": "Matrix Pairs",
          "value": "matrixPairs",
          "action": "Matrix Pairs",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/search/matrix/pairs",
              "body": {
                "limit": "={{$parameter.limit}}",
                "using": "={{$parameter.using}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "sample": "={{$parameter.sample}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Retrieve sparse matrix of pairwise distances between points sampled from the collection"
        },
        {
          "name": "Matrix Offsets",
          "value": "matrixOffsets",
          "action": "Matrix Offsets",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/search/matrix/offsets",
              "body": {
                "limit": "={{$parameter.limit}}",
                "using": "={{$parameter.using}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "sample": "={{$parameter.sample}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Retrieve sparse matrix of pairwise distances between points sampled from the collection"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "List Collections",
      "value": "listCollections",
      "action": "List Collections",
      "routing": {
        "request": {
          "url": "/collections",
          "method": "GET"
        }
      },
      "description": "List all collections in the Qdrant instance",
      "resource": "collection"
    },
    {
      "name": "Create Collection",
      "value": "createCollection",
      "action": "Create Collection",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}",
          "body": {
            "vectors": "={{JSON.parse($parameter.vectors)}}",
            "init_from": "={{JSON.parse($parameter.initFrom)}}",
            "wal_config": "={{JSON.parse($parameter.walConfig)}}",
            "hnsw_config": "={{JSON.parse($parameter.hnswConfig)}}",
            "shard_number": "={{$parameter.shardNumber}}",
            "sparse_vectors": "={{JSON.parse($parameter.sparseVectors)}}",
            "on_disk_payload": "={{$parameter.onDiskPayload}}",
            "sharding_method": "={{$parameter.shardingMethod}}",
            "optimizers_config": "={{JSON.parse($parameter.optimizersConfig)}}",
            "replication_factor": "={{$parameter.replicationFactor}}",
            "strict_mode_config": "={{JSON.parse($parameter.strictModeConfig)}}",
            "quantization_config": "={{JSON.parse($parameter.quantizationConfig)}}",
            "write_consistency_factor": "={{$parameter.writeConsistencyFactor}}"
          },
          "method": "PUT"
        }
      },
      "description": "Create a new collection in the Qdrant instance",
      "resource": "collection"
    },
    {
      "name": "Update Collection",
      "value": "updateCollection",
      "action": "Update Collection",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}",
          "body": {
            "params": "={{JSON.parse($parameter.params)}}",
            "vectors": "={{JSON.parse($parameter.vectors)}}",
            "hnsw_config": "={{JSON.parse($parameter.hnswConfig)}}",
            "sparse_vectors": "={{JSON.parse($parameter.sparseVectors)}}",
            "optimizers_config": "={{JSON.parse($parameter.optimizersConfig)}}",
            "strict_mode_config": "={{JSON.parse($parameter.strictModeConfig)}}",
            "quantization_config": "={{JSON.parse($parameter.quantizationConfig)}}"
          },
          "method": "PATCH"
        }
      },
      "description": "Update parameters of an existing collection in the Qdrant instance",
      "resource": "collection"
    },
    {
      "name": "Get Collection",
      "value": "getCollection",
      "action": "Get Collection",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific collection",
      "resource": "collection"
    },
    {
      "name": "Check If Collection Exists",
      "value": "collectionExists",
      "action": "Check If Collection Exists",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}/exists",
          "method": "GET"
        }
      },
      "description": "Check if a collection exists in the Qdrant instance",
      "resource": "collection"
    },
    {
      "name": "Delete Collection",
      "value": "deleteCollection",
      "action": "Delete Collection",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}",
          "method": "DELETE"
        }
      },
      "description": "Delete the specified collection",
      "resource": "collection"
    },
    {
      "name": "Upsert Points",
      "value": "upsertPoints",
      "action": "Upsert Points",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points",
          "body": {
            "points": "={{JSON.parse($parameter.points)}}"
          },
          "method": "PUT"
        }
      },
      "description": "Insert or update points in a collection",
      "resource": "point"
    },
    {
      "name": "Retrieve Point",
      "value": "retrievePoint",
      "action": "Retrieve Point",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}/points/{{isNaN(Number($parameter.id)) ?  $parameter.id : Number($parameter.id)}}",
          "method": "GET"
        }
      },
      "description": "Retrieves all details from a single point",
      "resource": "point"
    },
    {
      "name": "Retrieve Points",
      "value": "retrievePoints",
      "action": "Retrieve Points",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points",
          "body": {
            "ids": "={{JSON.parse($parameter.points)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}",
            "with_vector": "={{$parameter.withVector}}",
            "with_payload": "={{$parameter.withPayload}}"
          },
          "method": "POST"
        }
      },
      "description": "Retrieve all details from multiple points",
      "resource": "point"
    },
    {
      "name": "Delete Points",
      "value": "deletePoints",
      "action": "Delete Points",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/delete",
          "body": {
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Delete specified points from the collection",
      "resource": "point"
    },
    {
      "name": "Count Points",
      "value": "countPoints",
      "action": "Count Points",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/count",
          "body": {
            "exact": "={{$parameter.exact}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Counts the number of points that match a specified filtering condition",
      "resource": "point"
    },
    {
      "name": "Scroll Points",
      "value": "scrollPoints",
      "action": "Scroll Points",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/scroll",
          "body": {
            "limit": "={{$parameter.limit}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "offset": "={{isNaN(Number($parameter.offset)) ?  $parameter.offset : Number($parameter.offset)}}",
            "order_by": "={{JSON.parse($parameter.orderBy)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}",
            "with_vector": "={{$parameter.withVector}}",
            "with_payload": "={{$parameter.withPayload}}"
          },
          "method": "POST"
        }
      },
      "description": "Returns all points in a page-by-page manner",
      "resource": "point"
    },
    {
      "name": "Batch Update Points",
      "value": "batchUpdatePoints",
      "action": "Batch Update Points",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/batch",
          "body": {
            "operations": "={{JSON.parse($parameter.operations)}}"
          },
          "method": "POST"
        }
      },
      "description": "Batch update points, including their respective vectors and payloads",
      "resource": "point"
    },
    {
      "name": "Update Vectors",
      "value": "updateVectors",
      "action": "Update Vectors",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/vectors",
          "body": {
            "points": "={{JSON.parse($parameter.points)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "PUT"
        }
      },
      "description": "Update specified vectors on points",
      "resource": "vector"
    },
    {
      "name": "Delete Vectors",
      "value": "deleteVectors",
      "action": "Delete Vectors",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/vectors/delete",
          "body": {
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "vector": "={{JSON.parse($parameter.vector)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Delete specified vectors from points",
      "resource": "vector"
    },
    {
      "name": "Set Payload",
      "value": "setPayload",
      "action": "Set Payload",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/payload",
          "body": {
            "key": "={{$parameter.key ? $parameter.key : null}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "payload": "={{JSON.parse($parameter.payload)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Sets payload values for specified points",
      "resource": "payload"
    },
    {
      "name": "Overwrite Payload",
      "value": "overwritePayload",
      "action": "Overwrite Payload",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/payload",
          "body": {
            "key": "={{$parameter.key ? $parameter.key : null}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "payload": "={{JSON.parse($parameter.payload)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "PUT"
        }
      },
      "description": "Replaces the entire payload of specified points with a new payload",
      "resource": "payload"
    },
    {
      "name": "Delete Payload",
      "value": "deletePayload",
      "action": "Delete Payload",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/payload/delete",
          "body": {
            "keys": "={{JSON.parse($parameter.keys)}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Deletes specified payload keys from points",
      "resource": "payload"
    },
    {
      "name": "Clear Payload",
      "value": "clearPayload",
      "action": "Clear Payload",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/payload/clear",
          "body": {
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Removes the entire payload for specified points",
      "resource": "payload"
    },
    {
      "name": "Payload Facets",
      "value": "payloadFacets",
      "action": "Get Payload Facets",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/facet",
          "body": {
            "key": "={{$parameter.key}}",
            "exact": "={{$parameter.exact}}",
            "limit": "={{$parameter.limit}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Retrieves facets for the specified payload field",
      "resource": "payload"
    },
    {
      "name": "Create Payload Index",
      "value": "createPayloadIndex",
      "action": "Create Payload Index",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/index",
          "body": {
            "field_name": "={{$parameter.fieldName}}",
            "field_schema": "={{JSON.parse($parameter.fieldSchema)}}"
          },
          "method": "PUT"
        }
      },
      "description": "Creates a payload index for a field in the specified collection",
      "resource": "payload"
    },
    {
      "name": "Delete Payload Index",
      "value": "deletePayloadIndex",
      "action": "Delete Payload Index",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/index/{{$parameter.fieldName}}",
          "method": "DELETE"
        }
      },
      "description": "Deletes a payload index for a field in the specified collection",
      "resource": "payload"
    },
    {
      "name": "Query Points",
      "value": "queryPoints",
      "action": "Query Points",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/query",
          "body": {
            "limit": "={{$parameter.limit}}",
            "query": "={{JSON.parse($parameter.query)}}",
            "using": "={{$parameter.using}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "offset": "={{$parameter.offset}}",
            "params": "={{JSON.parse($parameter.params)}}",
            "prefetch": "={{JSON.parse($parameter.prefetch)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}",
            "lookup_from": "={{JSON.parse($parameter.lookupFrom)}}",
            "with_vector": "={{$parameter.withVector}}",
            "with_payload": "={{$parameter.withPayload}}",
            "score_threshold": "={{$parameter.scoreThreshold}}"
          },
          "method": "POST"
        }
      },
      "description": "Query points in a collection using various search methods",
      "resource": "search"
    },
    {
      "name": "Query Batch Points",
      "value": "queryBatchPoints",
      "action": "Query Batch Points",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/query/batch",
          "body": {
            "searches": "={{JSON.parse($parameter.searches)}}"
          },
          "method": "POST"
        }
      },
      "description": "Query multiple points in batch using various search methods",
      "resource": "search"
    },
    {
      "name": "Query Points Groups",
      "value": "queryPointsGroups",
      "action": "Query Points Groups",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/query/groups",
          "body": {
            "limit": "={{$parameter.limit}}",
            "query": "={{JSON.parse($parameter.query)}}",
            "using": "={{$parameter.using}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "params": "={{JSON.parse($parameter.params)}}",
            "group_by": "={{$parameter.groupBy}}",
            "prefetch": "={{JSON.parse($parameter.prefetch)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}",
            "group_size": "={{$parameter.groupSize}}",
            "lookup_from": "={{JSON.parse($parameter.lookupFrom)}}",
            "with_lookup": "={{JSON.parse($parameter.withLookup)}}",
            "with_vector": "={{$parameter.withVector}}",
            "with_payload": "={{$parameter.withPayload}}",
            "score_threshold": "={{$parameter.scoreThreshold}}"
          },
          "method": "POST"
        }
      },
      "description": "Query points and group results by a specified payload field",
      "resource": "search"
    },
    {
      "name": "Matrix Pairs",
      "value": "matrixPairs",
      "action": "Matrix Pairs",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/search/matrix/pairs",
          "body": {
            "limit": "={{$parameter.limit}}",
            "using": "={{$parameter.using}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "sample": "={{$parameter.sample}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Retrieve sparse matrix of pairwise distances between points sampled from the collection",
      "resource": "search"
    },
    {
      "name": "Matrix Offsets",
      "value": "matrixOffsets",
      "action": "Matrix Offsets",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/search/matrix/offsets",
          "body": {
            "limit": "={{$parameter.limit}}",
            "using": "={{$parameter.using}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "sample": "={{$parameter.sample}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Retrieve sparse matrix of pairwise distances between points sampled from the collection",
      "resource": "search"
    }
  ]

npm_readme:
  # n8n-nodes-qdrant

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

  This is the official [n8n](https://n8n.io/) node for interfacing with Qdrant.

  [Qdrant](http://qdrant.tech) is a vector similarity search engine that provides a production-ready service with a convenient API to store, search, and manage vectors.

  ## Installation

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

  ## Operations

  The node supports the following operations:

  ### Collection

  - [List Collections](https://api.qdrant.tech/v-1-14-x/api-reference/collections/get-collections) - List all collections in the Qdrant instance
  - [Create Collection](https://api.qdrant.tech/v-1-14-x/api-reference/collections/create-collection) - Create a new collection with specified vector parameters
  - [Update Collection](https://api.qdrant.tech/v-1-14-x/api-reference/collections/update-collection) - Update parameters of an existing collection
  - [Get Collection](https://api.qdrant.tech/v-1-14-x/api-reference/collections/get-collection) - Get information about a specific collection
  - [Collection Exists](https://api.qdrant.tech/v-1-14-x/api-reference/collections/collection-exists) - Check if a collection exists
  - [Delete Collection](https://api.qdrant.tech/v-1-14-x/api-reference/collections/delete-collection) - Delete a collection

  ### Point

  - [Upsert Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/upsert-points) - Insert or update points in a collection
  - [Retrieve Point](https://api.qdrant.tech/v-1-14-x/api-reference/points/get-point) - Get a single point by ID
  - [Retrieve Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/get-points) - Get multiple points by their IDs
  - [Delete Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/delete-points) - Remove points from a collection
  - [Count Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/count-points) - Count points in a collection with optional filtering
  - [Scroll Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/scroll-points) - Scroll through all points in a collection
  - [Batch Update Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/batch-update) - Perform multiple point operations in a single request

  ### Vector

  - [Update Vectors](https://api.qdrant.tech/v-1-14-x/api-reference/points/update-vectors) - Update vectors for existing points
  - [Delete Vectors](https://api.qdrant.tech/v-1-14-x/api-reference/points/delete-vectors) - Remove vectors from points

  ### Search

  - [Query Points](https://api.qdrant.tech/v-1-14-x/api-reference/search/query-points) - Search for similar vectors
  - [Query Points In Batch](https://api.qdrant.tech/v-1-14-x/api-reference/search/query-batch-points) - Perform multiple vector searches in batch
  - [Query Points Groups](https://api.qdrant.tech/v-1-14-x/api-reference/search/query-points-groups) - Group search results by payload field
  - [Matrix Pairs](https://api.qdrant.tech/v-1-14-x/api-reference/search/matrix-pairs) - Calculate distance matrix between pairs of points
  - [Matrix Offsets](https://api.qdrant.tech/v-1-14-x/api-reference/search/matrix-offsets) - Calculate distance matrix using offsets

  ### Payload

  - [Set Payload](https://api.qdrant.tech/v-1-14-x/api-reference/points/set-payload) - Set payload for points
  - [Overwrite Payload](https://api.qdrant.tech/v-1-14-x/api-reference/points/overwrite-payload) - Replace entire payload for points
  - [Delete Payload](https://api.qdrant.tech/v-1-14-x/api-reference/points/delete-payload) - Remove payload from points
  - [Clear Payload](https://api.qdrant.tech/v-1-14-x/api-reference/points/clear-payload) - Clear all payload fields
  - [Payload Facets](https://api.qdrant.tech/v-1-14-x/api-reference/points/facet) - Get payload field statistics
  - [Create Payload Index](https://api.qdrant.tech/v-1-14-x/api-reference/indexes/create-field-index) - Create an index for payload fields
  - [Delete Payload Index](https://api.qdrant.tech/v-1-14-x/api-reference/indexes/delete-field-index) - Remove a payload field index

  ## Credentials

  To use this node, you need to set up Qdrant credentials:

  - URL: The REST URL of your Qdrant instance
  - API Key (optional): Your Qdrant API key if authentication is enabled

  ## Compatibility

  This node is compatible with:

  - Qdrant version 1.14.0 and above

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Qdrant Documentation](https://qdrant.tech/documentation/)
  - [Qdrant GitHub Repository](https://github.com/qdrant/qdrant)

ai_documentation_summary:
  {"purpose":"This n8n node provides official integration with Qdrant, a vector similarity search engine, enabling storage, retrieval, and management of vectors and their associated payloads.","capabilities":["List, create, update, get, and delete collections","Upsert, retrieve, delete, count, and scroll points","Update and delete vectors","Query points, batch query, and group search results","Calculate distance matrices (matrix pairs and offsets)","Set, overwrite, delete, and clear point payloads","Create and delete payload field indexes","Get payload field statistics"],"authentication":"API Key required (optional, only if authentication is enabled on Qdrant instance)","commonUseCases":["Semantic search and vector similarity queries","Embedding storage and retrieval workflows","Vector database management and maintenance","Semantic clustering and grouping operations"],"limitations":["Requires Qdrant version 1.14.0 or above","API Key is optional and only needed if Qdrant instance has authentication enabled"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-webhook","n8n-nodes-ai.embeddings"]}


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-07-14 14:40:33
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.1.2
community_fetched_at: 2026-07-14T14:40:33.139Z
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": "Place Search",
          "value": "place_search",
          "action": "Search for Places",
          "description": "Search for points of interest in an area"
        },
        {
          "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"
        },
        {
          "name": "LLM Context",
          "value": "llm_context",
          "action": "Get LLM Context",
          "description": "Get pre-extracted web content optimized for AI agents, LLM grounding, and RAG pipelines"
        }
      ],
      "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": "Place Search",
      "value": "place_search",
      "action": "Search for Places",
      "description": "Search for points of interest in an area"
    },
    {
      "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"
    },
    {
      "name": "LLM Context",
      "value": "llm_context",
      "action": "Get LLM Context",
      "description": "Get pre-extracted web content optimized for AI agents, LLM grounding, and RAG pipelines"
    }
  ]

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-yepcode.yepCode
package_name: n8n-nodes-yepcode
display_name: YepCode
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: yepcode
author_github_url: https://github.com/yepcode/
npm_package_name: n8n-nodes-yepcode
npm_version: 1.1.0
community_fetched_at: 2026-07-14T14:40:33.140Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  YepCode lets you run full processes or dynamic scripts using Node.js or Python, with support for any NPM or PyPI dependency. All in a secure, sandboxed environment.

properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "run_process",
      "options": [
        {
          "name": "Run Process",
          "value": "run_process",
          "action": "Run process",
          "description": "Move your complex business logic into yep code processes and trigger them from your workflows using dynamic input parameters it s the most flexible way to connect with your ap is and services using real code with zero dev ops overhead"
        },
        {
          "name": "Run Code",
          "value": "run_code",
          "action": "Run code",
          "description": "A lightweight, flexible way to execute Node.js or Python code on demand — directly from your workflows or AI agents. The run_code tool runs in secure cloud sandboxes with full support for NPM and PyPI dependencies (https://yepcode.io/docs/dependencies), access to secrets, APIs, and databases. Perfect for quick scripts, dynamic logic, or AI-generated code."
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Run Process",
      "value": "run_process",
      "action": "Run process",
      "description": "Move your complex business logic into yep code processes and trigger them from your workflows using dynamic input parameters it s the most flexible way to connect with your ap is and services using real code with zero dev ops overhead"
    },
    {
      "name": "Run Code",
      "value": "run_code",
      "action": "Run code",
      "description": "A lightweight, flexible way to execute Node.js or Python code on demand — directly from your workflows or AI agents. The run_code tool runs in secure cloud sandboxes with full support for NPM and PyPI dependencies (https://yepcode.io/docs/dependencies), access to secrets, APIs, and databases. Perfect for quick scripts, dynamic logic, or AI-generated code."
    }
  ]

npm_readme:
  ![YepCode Image](https://cdn.prod.website-files.com/632cd328ed2b485519c3f689/68303b945a8746ed63f24a99_yepcode-cover-dev-tool-ai-solutions.png)

  # n8n-nodes-yepcode

  This is an n8n community node that enables you to use [YepCode](https://yepcode.io) within your n8n workflows.

  Easily execute AI-generated code in a secure, scalable environment with full support for dependencies, secrets, logs, and access to APIs or databases—all on a developer-first platform designed to create any integration or automation without DevOps complexity.

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

  [Installation](#installation)
  [Operations](#operations)
  [Credentials](#credentials)
  [Usage](#usage)
  [Resources](#resources)

  ## Installation

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

  ## Operations

  ### 1. Run a YepCode Process

  Execute a specific YepCode process by selecting it from your YepCode workspace. This operation allows you to run pre-built processes with parameter mapping and advanced execution options.

  **Key Features:**
  - **Process Selection**: Choose from your available YepCode processes with searchable dropdown
  - **Parameter Mapping**: Map n8n input data to process parameters using a visual resource mapper
  - **Version Control**: Select specific process versions or use the current version
  - **Execution Modes**: 
    - **Run Once for All Items**: Execute the process once with all input items
    - **Run Once for Each Item**: Execute the process separately for each input item
  - **Synchronous/Asynchronous**: Choose whether to wait for execution completion
  - **n8n Context Integration**: Automatically pass n8n workflow data to your process

  **Advanced Options:**
  - **Version Selection**: Run specific published versions of your process
  - **Synchronous Execution**: Wait for completion and get results immediately
  - **Metadata**: Add execution comments and initiator information
  - **n8n Context**: Include workflow metadata, environment variables, and execution info

  **Example Use Cases:**
  - AI/ML model inference
  - Data transformation processes
  - API integrations with complex logic
  - File processing workflows
  - Database operations

  ### 2. Run Code

  Directly execute custom JavaScript or Python code in YepCode from your n8n workflow. This operation provides maximum flexibility for custom logic execution.

  **Key Features:**
  - **Multi-language Support**: Write code in JavaScript (Node.js) or Python
  - **Auto-dependency Management**: Import any NPM or PyPI package - YepCode installs them automatically
  - **n8n Integration**: Access n8n input items and workflow metadata directly in your code
  - **Execution Modes**:
    - **Run Once for All Items**: Process all input items in a single execution
    - **Run Once for Each Item**: Execute code separately for each input item
  - **Secure Environment**: Code runs in YepCode's isolated, secure environment

  **Advanced Options:**
  - **Language Detection**: Auto-detect code language or specify manually
  - **Code Cleanup**: Option to remove code after execution
  - **Metadata**: Add execution comments and initiator information
  - **n8n Context**: Include workflow data and metadata in your code execution

  **Example Use Cases:**
  - Custom data transformations
  - Complex calculations
  - API aggregations
  - Data validation
  - Custom business logic
  - Integration with external services

  ## Credentials

  Authentication is required to use this node. You'll need your YepCode API token, which you can find in your YepCode workspace under `Settings > API credentials`. For YepCode On-Premise, you may also specify a custom API host.

  1. Sign up for [YepCode Cloud](https://cloud.yepcode.io).
  2. Get your API token from `Settings > API credentials` in your YepCode workspace.
  3. Create your n8n credential using this token.
  4. (Optional) Enter a custom API host if using YepCode On-Premise.

  ## Usage

  ### Setting Up Credentials

  1. In your YepCode workspace, go to `Settings > API credentials`
  2. Copy your API token
  3. In n8n, create a new credential for the YepCode node
  4. Paste your API token
  5. (Optional) Set a custom API host for YepCode On-Premise

  ### Using Run Process Operation

  1. **Add the YepCode node** to your workflow
  2. **Select "Run Process"** as the operation
  3. **Choose your process** from the dropdown (searchable)
  4. **Configure parameters** using the resource mapper to map n8n data to process inputs
  5. **Set execution mode**:
     - **Run Once for All Items**: Process all items together
     - **Run Once for Each Item**: Process each item individually
  6. **Configure advanced options** (optional):
     - Enable/disable n8n context integration
     - Select specific process version
     - Set synchronous/asynchronous execution

  ### Using Run Code Operation

  1. **Add the YepCode node** to your workflow
  2. **Select "Run Code"** as the operation
  3. **Write your code** in the code editor (JavaScript or Python)
  4. **Set execution mode**:
     - **Run Once for All Items**: Process all items together
     - **Run Once for Each Item**: Process each item individually
  5. **Configure advanced options** (optional):
     - Specify language (auto-detected by default)
     - Enable/disable n8n context integration
     - Set code cleanup options

  **Example JavaScript Code:**
  ```javascript
  // Import any npm package - YepCode will install it automatically
  const { DateTime } = require("luxon");

  const { n8n } = yepcode.context.parameters;

  const results = [];
  for (const item of n8n.items) {
    results.push({
      ...item.json,
      processedAt: DateTime.now().toISO(),
      transformed: item.json.data * 2
    });
  }

  // Access n8n metadata
  console.log("Environment:", n8n.metadata);

  return results;
  ```

  **Example Python Code:**
  ```python
  # Import any PyPI package - YepCode will install it automatically
  from datetime import datetime

  # Access n8n context
  n8n = yepcode.context.parameters['n8n']

  results = []
  for item in n8n['items']:
      # Process each item
      processed_item = {
          **item['json'],
          'processed_at': datetime.now().isoformat(),
          'status': 'completed'
      }
      results.append(processed_item)

  # Access n8n metadata
  print("Environment:", n8n['metadata'])
  print("Execution ID:", n8n['metadata']['$execution']['id'])

  return results
  ```

  ### Accessing n8n Context

  Both operations can include n8n context data in your YepCode execution:

  - **Input Items**: All data from previous nodes in your workflow
  - **Workflow Metadata**: Environment variables, execution information, and workflow details
  - **Execution Context**: Current execution ID, resume URLs, and other runtime information

  ### Error Handling

  - **Continue on Fail**: Enable this option to continue workflow execution even if YepCode operations fail
  - **Error Information**: Failed executions return detailed error information in the output
  - **Logs**: Access execution logs through the YepCode dashboard or API

  For more information on using n8n community nodes, see the [n8n documentation](https://docs.n8n.io/integrations/#community-nodes). If you are new to n8n, you can get started with the [Try it out](https://docs.n8n.io/try-it-out/) guide.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [YepCode official docs](https://docs.yepcode.io/)
  * [YepCode Coding Rules](https://yepcode.io/docs/yepcode-coding-rules)

ai_documentation_summary:
  {"purpose":"Executes AI-generated code or pre-built processes in a secure, sandboxed environment using YepCode, supporting JavaScript and Python with automatic dependency management.","capabilities":["Run pre-defined YepCode processes with parameter mapping","Execute custom JavaScript code","Execute custom Python code","Automatic installation of NPM and PyPI dependencies","Access to n8n workflow context, metadata, and input items","Synchronous and asynchronous execution modes","Process version selection","Run once for all items or run once for each item","Secure sandboxed environment execution","API and database access within code execution"],"authentication":"API key required (YepCode API token)","commonUseCases":["AI/ML model inference","Data transformation and validation","Custom business logic execution","API integrations with complex logic","File processing workflows"],"limitations":["Requires YepCode account and API token","Community node (not official n8n node)","On-Premise deployment requires custom API host configuration"],"relatedNodes":["Code node","HTTP Request node","Python node","JavaScript node"]}


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

updated_at: 2026-07-14 14:40:33
author_name: ledgers
author_github_url: https://github.com/ledgers-cloud/n8n-nodes-ledgers.git
npm_package_name: @ledgers/n8n-nodes-ledgers-cloud
npm_version: 0.0.19
community_fetched_at: 2026-07-14T14:40:33.141Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Catalog Operation",
          "value": "catalog"
        },
        {
          "name": "Common Operation",
          "value": "common"
        },
        {
          "name": "Contact Operation",
          "value": "contact"
        },
        {
          "name": "HRMS Operation (India)",
          "value": "hrms"
        },
        {
          "name": "Purchase Operation",
          "value": "purchase"
        },
        {
          "name": "Sales Operation",
          "value": "sales"
        },
        {
          "name": "Tax Operation (India)",
          "value": "tax"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createCatalog",
      "options": [
        {
          "name": "Add Variant (Existing Catalog)",
          "value": "addVariant",
          "action": "Add a new variant"
        },
        {
          "name": "Create Catalog",
          "value": "createCatalog",
          "action": "Create a catalog"
        },
        {
          "name": "Get All Catalogs",
          "value": "getAllCatalogs",
          "action": "Get all catalogs"
        },
        {
          "name": "Get Catalog",
          "value": "getCatalog",
          "action": "Get a catalog"
        },
        {
          "name": "Update Catalog",
          "value": "updateCatalog",
          "action": "Update a catalog"
        },
        {
          "name": "Update Variant (Existing Catalog)",
          "value": "updateVariant",
          "action": "Update a variant"
        }
      ],
      "description": "Choose the operation",
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "catalog"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createBranch",
      "options": [
        {
          "name": "Add Payment Method",
          "value": "addPaymentMethod",
          "action": "Add a payment method"
        },
        {
          "name": "Create Branch",
          "value": "createBranch",
          "action": "Create a branch"
        },
        {
          "name": "Get Branch Details",
          "value": "getBranchDetails",
          "action": "Get branch details"
        },
        {
          "name": "List Branches",
          "value": "listBranches",
          "action": "List branches"
        },
        {
          "name": "List Payment Methods",
          "value": "listPaymentMethods",
          "action": "List payment methods"
        },
        {
          "name": "Update Branch",
          "value": "updateBranch",
          "action": "Update a branch"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "common"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createContact",
      "options": [
        {
          "name": "Add Address (Existing Contact)",
          "value": "addAddress",
          "action": "Add address to a contact"
        },
        {
          "name": "Create Contact",
          "value": "createContact",
          "action": "Create a contact"
        },
        {
          "name": "Get All Contacts",
          "value": "getAllContacts",
          "action": "Get all contacts"
        },
        {
          "name": "Get Contact",
          "value": "getContact",
          "action": "Get a contact"
        },
        {
          "name": "Update Address (Existing Contact)",
          "value": "updateAddress",
          "action": "Update address of a contact"
        },
        {
          "name": "Update Contact",
          "value": "updateContact",
          "action": "Update a contact"
        }
      ],
      "description": "Choose the operation",
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "addEmployee",
      "options": [
        {
          "name": "Get All Employees",
          "value": "getAllEmployees",
          "action": "Get all employees"
        },
        {
          "name": "Add Employee",
          "value": "addEmployee",
          "action": "Add a new employee"
        },
        {
          "name": "Update Employee",
          "value": "updateEmployee",
          "action": "Update an existing employee"
        },
        {
          "name": "Get Employee",
          "value": "getEmployee",
          "action": "Get employee details"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "hrms"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createPurchaseInvoice",
      "options": [
        {
          "name": "Create Purchase Invoice",
          "value": "createPurchaseInvoice",
          "action": "Create a purchase invoice"
        },
        {
          "name": "Create Voucher",
          "value": "createVoucher",
          "action": "Create a voucher"
        },
        {
          "name": "List Purchase Invoices",
          "value": "listPurchaseInvoices",
          "action": "List all purchase invoices"
        },
        {
          "name": "List Vouchers",
          "value": "listVouchers",
          "action": "List all vouchers"
        },
        {
          "name": "View Purchase Invoice",
          "value": "viewPurchaseInvoice",
          "action": "View a purchase invoice"
        },
        {
          "name": "View Voucher",
          "value": "viewVoucher",
          "action": "View a voucher"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "purchase"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createInvoice",
      "options": [
        {
          "name": "Create Invoice",
          "value": "createInvoice",
          "action": "Create a new invoice"
        },
        {
          "name": "Create Quote",
          "value": "createQuote",
          "action": "Create a new quote"
        },
        {
          "name": "Create Receipt",
          "value": "createReceipt",
          "action": "Create a new receipt"
        },
        {
          "name": "List Invoices",
          "value": "listInvoices",
          "action": "List all invoices"
        },
        {
          "name": "List Quotes",
          "value": "listQuotes",
          "action": "List all quotes"
        },
        {
          "name": "List Receipts",
          "value": "listReceipts",
          "action": "List all receipts"
        },
        {
          "name": "View Invoice",
          "value": "viewInvoice",
          "action": "View an invoice"
        },
        {
          "name": "View Quote",
          "value": "viewQuote",
          "action": "View a quote"
        },
        {
          "name": "View Receipt",
          "value": "viewReceipt",
          "action": "View a receipt"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sales"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getGSTReturnStatus",
      "options": [
        {
          "name": "GST Return Status",
          "value": "getGSTReturnStatus",
          "action": "Get GST return status"
        },
        {
          "name": "GST Search",
          "value": "getGSTSearch",
          "action": "Search GST information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tax"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Variant (Existing Catalog)",
      "value": "addVariant",
      "action": "Add a new variant",
      "resource": "catalog"
    },
    {
      "name": "Create Catalog",
      "value": "createCatalog",
      "action": "Create a catalog",
      "resource": "catalog"
    },
    {
      "name": "Get All Catalogs",
      "value": "getAllCatalogs",
      "action": "Get all catalogs",
      "resource": "catalog"
    },
    {
      "name": "Get Catalog",
      "value": "getCatalog",
      "action": "Get a catalog",
      "resource": "catalog"
    },
    {
      "name": "Update Catalog",
      "value": "updateCatalog",
      "action": "Update a catalog",
      "resource": "catalog"
    },
    {
      "name": "Update Variant (Existing Catalog)",
      "value": "updateVariant",
      "action": "Update a variant",
      "resource": "catalog"
    },
    {
      "name": "Add Payment Method",
      "value": "addPaymentMethod",
      "action": "Add a payment method",
      "resource": "common"
    },
    {
      "name": "Create Branch",
      "value": "createBranch",
      "action": "Create a branch",
      "resource": "common"
    },
    {
      "name": "Get Branch Details",
      "value": "getBranchDetails",
      "action": "Get branch details",
      "resource": "common"
    },
    {
      "name": "List Branches",
      "value": "listBranches",
      "action": "List branches",
      "resource": "common"
    },
    {
      "name": "List Payment Methods",
      "value": "listPaymentMethods",
      "action": "List payment methods",
      "resource": "common"
    },
    {
      "name": "Update Branch",
      "value": "updateBranch",
      "action": "Update a branch",
      "resource": "common"
    },
    {
      "name": "Add Address (Existing Contact)",
      "value": "addAddress",
      "action": "Add address to a contact",
      "resource": "contact"
    },
    {
      "name": "Create Contact",
      "value": "createContact",
      "action": "Create a contact",
      "resource": "contact"
    },
    {
      "name": "Get All Contacts",
      "value": "getAllContacts",
      "action": "Get all contacts",
      "resource": "contact"
    },
    {
      "name": "Get Contact",
      "value": "getContact",
      "action": "Get a contact",
      "resource": "contact"
    },
    {
      "name": "Update Address (Existing Contact)",
      "value": "updateAddress",
      "action": "Update address of a contact",
      "resource": "contact"
    },
    {
      "name": "Update Contact",
      "value": "updateContact",
      "action": "Update a contact",
      "resource": "contact"
    },
    {
      "name": "Get All Employees",
      "value": "getAllEmployees",
      "action": "Get all employees",
      "resource": "hrms"
    },
    {
      "name": "Add Employee",
      "value": "addEmployee",
      "action": "Add a new employee",
      "resource": "hrms"
    },
    {
      "name": "Update Employee",
      "value": "updateEmployee",
      "action": "Update an existing employee",
      "resource": "hrms"
    },
    {
      "name": "Get Employee",
      "value": "getEmployee",
      "action": "Get employee details",
      "resource": "hrms"
    },
    {
      "name": "Create Purchase Invoice",
      "value": "createPurchaseInvoice",
      "action": "Create a purchase invoice",
      "resource": "purchase"
    },
    {
      "name": "Create Voucher",
      "value": "createVoucher",
      "action": "Create a voucher",
      "resource": "purchase"
    },
    {
      "name": "List Purchase Invoices",
      "value": "listPurchaseInvoices",
      "action": "List all purchase invoices",
      "resource": "purchase"
    },
    {
      "name": "List Vouchers",
      "value": "listVouchers",
      "action": "List all vouchers",
      "resource": "purchase"
    },
    {
      "name": "View Purchase Invoice",
      "value": "viewPurchaseInvoice",
      "action": "View a purchase invoice",
      "resource": "purchase"
    },
    {
      "name": "View Voucher",
      "value": "viewVoucher",
      "action": "View a voucher",
      "resource": "purchase"
    },
    {
      "name": "Create Invoice",
      "value": "createInvoice",
      "action": "Create a new invoice",
      "resource": "sales"
    },
    {
      "name": "Create Quote",
      "value": "createQuote",
      "action": "Create a new quote",
      "resource": "sales"
    },
    {
      "name": "Create Receipt",
      "value": "createReceipt",
      "action": "Create a new receipt",
      "resource": "sales"
    },
    {
      "name": "List Invoices",
      "value": "listInvoices",
      "action": "List all invoices",
      "resource": "sales"
    },
    {
      "name": "List Quotes",
      "value": "listQuotes",
      "action": "List all quotes",
      "resource": "sales"
    },
    {
      "name": "List Receipts",
      "value": "listReceipts",
      "action": "List all receipts",
      "resource": "sales"
    },
    {
      "name": "View Invoice",
      "value": "viewInvoice",
      "action": "View an invoice",
      "resource": "sales"
    },
    {
      "name": "View Quote",
      "value": "viewQuote",
      "action": "View a quote",
      "resource": "sales"
    },
    {
      "name": "View Receipt",
      "value": "viewReceipt",
      "action": "View a receipt",
      "resource": "sales"
    },
    {
      "name": "GST Return Status",
      "value": "getGSTReturnStatus",
      "action": "Get GST return status",
      "resource": "tax"
    },
    {
      "name": "GST Search",
      "value": "getGSTSearch",
      "action": "Search GST information",
      "resource": "tax"
    }
  ]

npm_readme:
  # n8n-nodes-ledgers-cloud

  This is an n8n community node for integrating with [LEDGERS](https://ledgers.cloud/) – a comprehensive business platform offering features like accounting, invoicing, contacts, catalogs, quotes, and receipt management.

  Use this node to automate LEDGERS workflows directly from within [n8n](https://n8n.io), the fair-code licensed workflow automation platform.

  ## 🎯 What is LEDGERS Node?

  The LEDGERS node is a powerful automation tool that connects your n8n workflows with the LEDGERS cloud platform. It enables businesses to:

  - **Automate Business Operations**: Streamline contact management, inventory tracking, and financial operations
  - **Integrate Systems**: Connect LEDGERS with other business tools in your workflow
  - **Reduce Manual Work**: Automate repetitive tasks like invoice generation, receipt creation, and data synchronization
  - **Scale Operations**: Handle bulk operations and complex business logic through automated workflows
  - **Maintain Data Consistency**: Ensure accurate data flow between LEDGERS and other systems

  ## 🏢 Business Use Cases

  ### **Small to Medium Businesses**
  - **Complete Business Automation**: Manage entire customer lifecycle from contact creation to payment collection
  - **E-commerce Integration**: Automatically sync orders, create invoices, and track payments
  - **Service-based Businesses**: Generate quotes, convert to invoices, and manage service delivery
  - **Retail Operations**: Manage inventory, create sales documents, and track customer interactions

  ### **Enterprise Operations**
  - **Multi-system Integration**: Connect LEDGERS with CRM, ERP, and other business systems
  - **Bulk Data Processing**: Handle large volumes of transactions and data synchronization
  - **Automated Workflows**: Create complex business rules and automated decision-making processes
  - **Reporting and Analytics**: Extract data for business intelligence and reporting systems

  ### **Industry-Specific Applications**
  - **Professional Services**: Time-based billing, project management, and client communication
  - **Manufacturing**: Purchase order management, inventory tracking, and supplier relations
  - **Consulting**: Project-based invoicing, expense tracking, and client management
  - **Subscription Services**: Recurring billing, customer lifecycle management, and payment processing

  ---

  ## 🔧 Installation

  To install this community node, follow the instructions in the [n8n community node installation guide](https://docs.n8n.io/integrations/community-nodes/installation/).

  ```bash
  npm install @ledgers/n8n-nodes-ledgers-cloud
  ```

  After installing, restart n8n and the node will be available in the editor.

  ---

  ## 📋 Supported Operations

  The LEDGERS node supports the following operations:

  ### **Triggers**
  - **LEDGERS Webhook Trigger** - Listen to real-time events from LEDGERS API via webhooks

  ### **Regular Operations**

  ### **Contacts**
  - **Create Contact** - Create a new contact with billing/shipping addresses
  - **Update Contact** - Update existing contact information
  - **Add Address** - Add billing or shipping addresses to existing contacts
  - **Update Address** - Update specific addresses for contacts
  - **Get Contact** - Retrieve a specific contact by ID
  - **Get All Contacts** - List all contacts with pagination and search

  ### **Catalogs**
  - **Create Catalog** - Create new catalog items with variants
  - **Update Catalog** - Update catalog item details
  - **Update Variant** - Update specific variant details
  - **Add Variant** - Add new variants to existing catalogs
  - **Get Catalog** - Retrieve a specific catalog by ID
  - **Get All Catalogs** - List all catalogs with pagination and search

  ### **Sales**
  - **Create Invoice** - Generate new invoices with comprehensive validation and contact/item details
  - **View Invoice** - Retrieve specific invoice details
  - **List Invoices** - List all invoices with filtering and pagination
  - **Create Quote** - Generate new quotes/estimates with validation and contact/item details
  - **View Quote** - Retrieve specific quote details
  - **List Quotes** - List all quotes with filtering and pagination
  - **Create Receipt** - Generate payment receipts with flexible payment method support
  - **View Receipt** - Retrieve specific receipt details
  - **List Receipts** - List all receipts with filtering and pagination

  ### **Purchase**
  - **Create Purchase Invoice** - Generate supplier invoices with comprehensive validation and detailed item management
  - **View Purchase Invoice** - Retrieve specific purchase invoice details
  - **List Purchase Invoices** - List all purchase invoices with filtering and pagination
  - **Create Voucher** - Generate expense, payment, and salary vouchers
  - **View Voucher** - Retrieve specific voucher details
  - **List Vouchers** - List all vouchers with filtering and pagination

  ### **HRMS (Human Resource Management)**
  - **Get All Employees** - List all employees with pagination, search, and filtering options
  - **Add Employee** - Create new employee records with comprehensive details
  - **Update Employee** - Update existing employee information including status changes
  - **Get Employee** - Retrieve specific employee details by GID

  ### **Banking**
  - **Get Bank Statement** - Retrieve account statements for selected bank accounts with date range filtering
    - **Supported Banks**: ICICI Bank and Axis Bank
    - **Requirements**: Connected banking must be set up in LEDGERS
    - **Features**: Dynamic account selection, date range filtering, secure data handling

  ---

  ## 🔧 Operation Details

  ### **Contact Operations**
  - **Required Fields**: Contact name, mobile, email
  - **Address Support**: Billing and shipping addresses with GSTIN (India) / TRN Number (UAE)
  - **Country Codes**: Support for multiple country dial codes
  - **Validation**: Mobile number format validation
  - **Multi-region Support**: India and UAE operations with region-specific field mapping

  ### **Catalog Operations**
  - **Item Types**: Goods and Services support
  - **GST Integration**: Built-in GST rates (0%, 5%, 12%, 18%, 28%)
  - **Variants**: Multiple variants per catalog item
  - **HSN/SAC Codes**: Automatic code suggestions via AI
  - **Cess Support**: Flat and percentage-based cess
  - **Multi-region Support**: India and UAE operations with region-specific business rules

  ### **Sales Operations**
  - **Invoice Creation**: Full invoice generation with comprehensive validation and contact/item details
  - **Quote Generation**: Estimate creation with validity periods and date picker support
  - **Receipt Management**: Payment receipt creation with flexible payment methods
  - **Item Management**: Multiple items with strict numeric validation (rates, quantities, tax calculations)
  - **Date Filtering**: Date range filtering for listing operations with validation
  - **Payment Status**: Track payment status (Paid, Not Paid, Part Paid, Deleted)
  - **Payment Methods**: Flexible payment method selection with custom input fallback
  - **Reconciliation**: Support for invoice reconciliation in receipts
  - **GST Rate Dropdown**: Standardized GST rate selection with predefined options
  - **Advanced Validation**: Integer validation for PID (>0), Variant ID (>0), rates (≥0), and taxable amounts (≥0)
  - **Business Logic Validation**: Taxable amount cannot exceed rate, non-taxable amount cannot exceed rate
  - **Multi-region Support**: Full support for both India and UAE regions with region-specific validations and filter formats

  ### **Purchase Operations**
  - **Purchase Invoice Management**: Create supplier invoices with comprehensive validation and item details
  - **Voucher System**: Three types of vouchers with specialized functionality:
    - **Expense Vouchers**: Single or multiple expense head management with tax calculations
    - **Payment Vouchers**: Supplier payment tracking with invoice reconciliation
    - **Salary Vouchers**: Employee salary processing with detailed breakdowns
  - **Advanced Item Management**: Purchase items with strict numeric validation and specialized supply options
  - **Address Management**: Separate billing and shipping address handling
  - **Tax Integration**: Multiple tax types and specialized supply configurations
  - **Currency Support**: Multi-currency handling for international purchases
  - **Date Filtering**: Comprehensive date range filtering for all list operations
  - **Payment Status Tracking**: Monitor payment status across all purchase documents
  - **Reconciliation Features**: Match payments with purchase invoices automatically
  - **Enhanced Validation**: Integer validation for PID (>0), VID (>0), rates (≥0), and taxable amounts (≥0)
  - **Business Logic Validation**: Same validation rules as Sales operations for consistency

  ### **HRMS Operations**
  - **Employee Management**: Complete employee lifecycle management from hiring to exit
  - **Comprehensive Data Handling**: Personal, professional, and financial information management
  - **Address Management**: Present and permanent address handling with detailed fields
  - **Bank Details**: Employee banking information for salary processing
  - **Statutory Compliance**: PAN, Aadhar, UAN, ESI number management
  - **Search and Filter**: Advanced employee search with multiple criteria
  - **Status Management**: Active/inactive employee status with exit date tracking
  - **Validation**: Required field validation for employee creation and updates

  ### **Banking Operations**
  - **Account Selection**: Dynamic dropdown populated with active bank accounts and linked accounts
  - **Statement Retrieval**: Fetch account statements for specific date ranges
  - **Security Features**: Masked account numbers and secure data handling
  - **Date Range Filtering**: Flexible date selection for statement periods
  - **Error Handling**: Clear error messages for missing accounts or configuration issues
  - **Multi-Account Support**: Handle multiple linked accounts per URN
  - **Validation**: Required field validation for account selection and date ranges
  - **Supported Banks**: ICICI Bank and Axis Bank integration
  - **Setup Requirements**: Connected banking must be configured in LEDGERS platform
  - **Connected Banking**: Only works when banking integration is set up in LEDGERS



  ## 💼 Uses of Sales Operations

  The Sales module in LEDGERS node is designed for comprehensive revenue management and customer transaction handling:

  ### **Invoice Management**
  - **Automated Billing**: Create invoices automatically based on triggers (orders, time periods, etc.)
  - **Multi-item Invoicing**: Handle complex invoices with multiple products/services
  - **Tax Calculations**: Automatic GST calculations with different tax rates
  - **Customer Integration**: Link invoices directly to contact records
  - **Status Tracking**: Monitor payment status and follow up on overdue invoices

  ### **Quote/Estimate Management**
  - **Sales Pipeline**: Generate quotes for potential customers automatically
  - **Quote Tracking**: Monitor quote status and conversion rates
  - **Validity Management**: Set and track quote expiration dates
  - **Quote-to-Invoice**: Convert accepted quotes to invoices seamlessly

  ### **Receipt Management**
  - **Payment Recording**: Automatically record payments against invoices
  - **Multiple Payment Methods**: Support various payment types (cash, bank transfer, cards, etc.)
  - **Reconciliation**: Match receipts with outstanding invoices
  - **Payment Tracking**: Maintain complete payment history
  - **Flexible Input**: Handle custom payment methods when API data is unavailable

  ### **Business Workflow Examples**
  - **E-commerce Integration**: Auto-generate invoices from online orders
  - **Subscription Billing**: Create recurring invoices for subscription services
  - **Payment Processing**: Record payments and update invoice status automatically
  - **Financial Reporting**: Extract sales data for accounting and reporting systems
  - **Customer Communication**: Trigger email notifications for invoices and receipts

  ## 💼 Uses of Purchase Operations

  The Purchase module in LEDGERS node is designed for comprehensive procurement management and supplier transaction handling:

  ### **Purchase Invoice Management**
  - **Supplier Billing**: Create and manage supplier invoices with detailed item tracking
  - **Multi-item Purchasing**: Handle complex purchases with multiple products/services
  - **Tax Management**: Automatic tax calculations with various tax types and rates
  - **Supplier Integration**: Link purchase invoices directly to supplier contact records
  - **Export/Import Handling**: Specialized support for international trade documentation

  ### **Voucher Management System**
  - **Expense Vouchers**: Record business expenses with single or multiple expense heads
  - **Payment Vouchers**: Track supplier payments with automatic invoice reconciliation
  - **Salary Vouchers**: Process employee salaries with detailed breakdown (PF, ESI, TDS, etc.)
  - **Multi-currency Support**: Handle vouchers in different currencies for international operations

  ### **Advanced Purchase Features**
  - **Specialized Supply Types**: Handle different supply categories with appropriate tax treatment
  - **Address Management**: Separate billing and shipping addresses for complex procurement
  - **Reconciliation System**: Automatically match payments with outstanding purchase invoices
  - **Date Range Filtering**: Advanced filtering for better procurement tracking and reporting

  ### **Business Workflow Examples**
  - **Procurement Automation**: Auto-create purchase invoices from supplier orders
  - **Expense Management**: Systematically record and categorize business expenses
  - **Payroll Processing**: Automate salary payments with detailed tax and deduction calculations
  - **Supplier Payment Tracking**: Monitor payment status and reconcile supplier accounts
  - **Financial Compliance**: Maintain proper documentation for tax and audit requirements

  ---

  ## 🔐 Credentials

  To authenticate with the LEDGERS API, you must provide the following:

  * **X-API-Key** – [Get your API Key from LEDGERS](https://ledgers.cloud/in/n8n/)
  * **Email** – Your registered LEDGERS account email
  * **Password** – Your LEDGERS account password
  * **API URL** – Your LEDGERS API endpoint (e.g., https://in-api.ledgers.cloud for India)

  > ⚠️ The node performs a login to retrieve an `api_token`, which is used in all subsequent API requests. If login fails, the node will return the appropriate error message from the API.

  ---

  ## 🚀 Upcoming Release

  ### **LEDGERS Triggers**
  - **Real-time Webhooks**: Listen to events from LEDGERS platform
  - **Event-driven Workflows**: Automate based on contact, invoice, and catalog changes
  - **Multi-region Support**: Triggers for both India and UAE operations

  ### **UAE HRMS Operations**
  - **UAE HRMS Operations**: Add, Update, List and Get Employee
  - **Multi-region Workflows**: Handle both India and UAE operations in single workflows
  - **Localization**: UAE-specific HRMS rules and features

  ---

  ## ✅ Compatibility

  | Feature             | Status        |
  | ------------------- | ------------- |
  | n8n v1.89.0+        | ✅ Supported   |
  | Credential Test     | ✅ Implemented |
  | Auto Token Handling | ✅ Implemented |
  | Continue On Fail    | ✅ Supported   |
  | Date Range Validation| ✅ Implemented |
  | Advanced Numeric Validation| ✅ Implemented |
  | Receipt Operations  | ✅ Implemented |
  | Payment Method Fallback| ✅ Implemented |
  | Invoice Reconciliation| ✅ Implemented |
  | Purchase Operations | ✅ Implemented |
  | Voucher Management  | ✅ Implemented |
  | Multi-Currency Support| ✅ Implemented |
  | Specialized Supply Types| ✅ Implemented |
  | Export Documentation| ✅ Implemented |
  | HRMS Operations     | ✅ Implemented |
  | Banking Operations  | ✅ Implemented |
  | ICICI & Axis Bank   | ✅ Implemented |
  | UAE Contact Operations| ✅ Implemented |
  | UAE Catalog Operations| ✅ Implemented |
  | UAE Sales Operations| ✅ Implemented |
  | UAE Purchase Operations| ✅ Implemented |

  ---

  ## 🚀 Usage Examples

  ### Create a Contact
  1. Select **Contact** as resource
  2. Choose **Create Contact** operation
  3. Provide contact name and optional details
  4. Add billing/shipping addresses if needed

  ### Create an Invoice
  1. Select **Sales** as resource
  2. Choose **Create Invoice** operation
  3. Provide contact details
  4. Add items with required fields (name, ID, rate, quantity, etc.)
  5. Set seller branch ID and optional fields

  ### Create a Receipt
  1. Select **Sales** as resource
  2. Choose **Create Receipt** operation
  3. Provide contact details and amount
  4. Select payment method (with automatic fallback to custom input if API fails)
  5. Set seller ID and expense type (COA ID)
  6. Add optional fields like transaction number, reconciliation details

  ### List Invoices with Filters
  1. Select **Sales** as resource
  2. Choose **List Invoices** operation
  3. Set page number and page size
  4. Add filters (date range, payment status, contact ID)

  ### List Receipts with Filters
  1. Select **Sales** as resource
  2. Choose **List Receipts** operation
  3. Set page number and page size
  4. Add filters (date range, reconcile status, contact ID)

  ### Create a Purchase Invoice
  1. Select **Purchase** as resource
  2. Choose **Create Purchase Invoice** operation
  3. Provide purchase number, dates, and supplier contact details
  4. Add items with required fields (name, rate, quantity, tax details)
  5. Set billing and shipping addresses
  6. Configure additional fields for specialized supplies or export details

  ### Create an Expense Voucher
  1. Select **Purchase** as resource
  2. Choose **Create Voucher** operation
  3. Select **Expense Voucher** as voucher type
  4. Choose between single expense or multiple expenses
  5. Provide expense details, amounts, and tax information
  6. Set branch ID and payment details

  ### Create a Salary Voucher
  1. Select **Purchase** as resource
  2. Choose **Create Voucher** operation
  3. Select **Salary Voucher** as voucher type
  4. Provide employee details and salary month (MM-YYYY format)
  5. Add salary amount and detailed breakdown (PF, ESI, TDS, etc.)
  6. Configure additional salary details as needed

  ### List Purchase Invoices with Filters
  1. Select **Purchase** as resource
  2. Choose **List Purchase Invoices** operation
  3. Set page size and filters (date range, payment status)
  4. Configure ordering options (order by, order column)

  ### Get Bank Statement
  1. Select **Banking** as resource
  2. Choose **Get Bank Statement** operation
  3. Select bank (ICICI or Axis Bank)
  4. Choose account from dropdown (requires connected banking setup)
  5. Set date range for statement period
  6. **Note**: Connected banking must be configured in LEDGERS platform

  ### Create a Catalog Item
  1. Select **Catalog** as resource
  2. Choose **Create Catalog** operation
  3. Provide catalog name, price, type, and item type
  4. Add optional fields like GST rate, units, SKU

  ---

  ## ⚠️ Validation Rules

  ### Date Range Filtering
  - When using date range filters in List Invoices, List Quotes, or List Receipts, **both Date From and Date To must be provided**
  - If only one date is provided, the operation will fail with a validation error

  ### Advanced Numeric Validation (Sales & Purchase Operations)
  - **PID (Item ID)**: Must be an integer greater than 0 (not zero or negative)
  - **Variant ID**: Must be an integer greater than 0 (not zero or negative)
  - **Rate**: Must be an integer >= 0 and not empty
  - **Taxable Per Item/Amount**: Must be an integer >= 0 and not empty
  - **Non-Taxable Per Item/Amount**: Must be an integer >= 0 and not empty
  - **Business Logic**: Taxable amount cannot exceed the rate
  - **Business Logic**: Non-taxable amount cannot exceed the rate
  - **Contact Validation**: Contact Name and Contact ID are required for Invoice, Quote, and Purchase Invoice operations

  ### Required Fields
  - **Sales Operations**: Invoice/Quote items require name, ID, variant ID, rate, quantity, item type, HSN/SAC code, taxable amount, GST rate
  - **Purchase Operations**: Purchase invoice items require item_name, item_code, pid, vid, rate, quantity, item_type, taxable_amount, non_taxable_amount, gst_rate
  - **Receipt Operations**: Contact details, amount, payment method, and expense type (COA ID)
  - **Catalog Operations**: Name, price, type, and item type
  - **Voucher Operations**: Voucher type, branch ID, payment date, and type-specific fields
  - **HRMS Operations**: Name, branch, date of join, personal mobile, office email, date of birth, gender are required for adding employees

  ### Payment Method Handling
  - Payment methods are loaded from the LEDGERS API when available
  - If the API fails or returns no data, users can type custom payment method values
  - This ensures receipts can always be created even when the payment methods API is unavailable

  ### Receipt Operations Features
  - **Flexible Payment Methods**: Automatic fallback to custom input when API is unavailable
  - **Seller Information**: Automatic branch data fetching and inclusion in receipts
  - **Invoice Reconciliation**: Support for reconciling receipts against existing invoices
  - **Transaction Tracking**: Optional transaction number field for payment reference
  - **Multiple Address Types**: Support for both billing and shipping addresses
  - **Notification Support**: Option to send receipt notifications

  ### Purchase Operations Features
  - **Voucher Type Validation**: Different validation rules apply based on voucher type (Expense, Payment, Salary)
  - **Multiple Expense Handling**: Expense vouchers support both single and multiple expense head entries
  - **Salary Month Format**: Salary vouchers require MM-YYYY format for salary month field
  - **Reconciliation Support**: Payment vouchers can reconcile against existing purchase invoices
  - **Specialized Supply Types**: Purchase invoices support different supply categories with appropriate tax handling
  - **Export Documentation**: Support for export bill numbers, dates, and port codes for international trade
  - **Currency Validation**: Multi-currency support with proper currency code validation
  - **Address Synchronization**: Option to use billing address for shipping when addresses are the same

  ---

  ## 🔄 Error Handling & Continue On Fail

  This node supports **"Continue On Fail"**, meaning:

  * If one item fails (e.g., due to an invalid ID or missing required field), it logs the error and continues processing the rest of the items.
  * If disabled, the node stops execution upon the first error.
  * Validation errors are clearly communicated with specific error messages.

  You can enable this in the node's settings under the **"Continue On Fail"** option.

  ---

  ## 📚 Resources

  * [n8n Community Node Docs](https://docs.n8n.io/integrations/community-nodes/)
  * [LEDGERS Website](https://ledgers.cloud/in/n8n/)
  * [LEDGERS API Documentation](https://ledgers.readme.io/reference/authentication)

  ---

  ## 🕒 Version History

  | Version | Changes                                                                          |
  | ------- | ---------------------------------------------------------------------------------|
  | 0.0.1   | Stable Release of LEDGERS Custom Node under N8N                                  |
  | 0.0.2   | Logo Rename for Linux OS                                                         |
  | 0.0.3   | Catalog Operations Release with updates in Contact Operations                    |
  | 0.0.4   | No code changes. Only updated package-lock.json to match npm registry state      |
  | 0.0.5   | No code changes. Logo File Updated with Better Resolution                        |
  | 0.0.6   | No code changes. Final Logo File Updated with Better Resolution                  |
  | 0.0.7   | Sales Operations like Invoice, Quotes and Receipt Release with enhanced features |
  | 0.0.8   | Purchase Operations Release with Purchase Invoices, Vouchers, and advanced features |
  | 0.0.9   | HRMS operations and Enhanced Validations for Sales and Purchase Operations |
  | 0.0.10  | Banking Operation to Retrieve connected banking account statements in LEDGERS and Opening Balance in Create and Update Contact |
  | 0.0.11  | Enhanced Contact Operations with multiple billing/shipping addresses, tax field mapping, currency support, and multi-region API support (India & UAE) |
  | 0.0.12  | In Catalog Operations Units List Updated as per Document |
  | 0.0.13  | Tax Rate Updates, Contact Inputs Name Update and Payment Mode Bug Fix |
  | 0.0.14  | Tax Rates Updated for India |
  | 0.0.15  | Removed HSN/SAC code function, made HSN/SAC manual input required, fixed hardcoded API credentials, updated deprecated IRequestOptions to IHttpRequestOptions, and added pairedItem for data provenance |
  | 0.0.16  | Removed HSN/SAC code required in Update Catalog |
  | 0.0.17  | HSN/SAC Bug Fix in Front end of Catalog Operations and Back end |
  | 0.0.18  | Sales Operation released for UAE |
  | 0.0.19  | Purchase Operations released for UAE (except salary vouchers). Common Operations released for Both India and UAE. Removed Bank Operations to optimize |

  ---

  Maintained by the [LEDGERS.cloud](https://ledgers.cloud/) team.

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of business operations by connecting n8n workflows with the LEDGERS cloud platform for accounting, invoicing, contacts, catalogs, and banking.","capabilities":["LEDGERS Webhook Trigger","Contact Management (Create, Update, Add Address, Retrieve, List)","Catalog Management (Create, Update, Add Variant, Retrieve, List)","Sales Operations (Create/View/List Invoices, Quotes, Receipts)","Purchase Operations (Create/View/List Purchase Invoices, Vouchers)","HRMS Operations (Add, Update, Retrieve, List Employees)","Banking Operations (Retrieve Bank Statements from ICICI and Axis Bank)"],"authentication":"API key required (implied by cloud API integration; specific method not detailed in README)","commonUseCases":["Automating customer lifecycle from contact creation to payment collection","Syncing e-commerce orders with automated invoice generation","Managing inventory and supplier relationships","Processing recurring billing and subscription management","Extracting banking data for financial reporting"],"limitations":["Banking statement retrieval is limited to ICICI Bank and Axis Bank only","Banking features require prior setup of connected banking in LEDGERS","Multi-region support is currently focused on India and UAE"],"relatedNodes":["n8n HTTP Request node","n8n Webhook node","n8n Spreadsheet node","n8n Email node"]}


node_type: n8n-nodes-scrapeless.scrapeless
package_name: n8n-nodes-scrapeless
display_name: Scrapeless Official
description: Official Scrapeless nodes for n8n
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: scrapeless_team
author_github_url: https://github.com/scrapeless-ai/
npm_package_name: n8n-nodes-scrapeless
npm_version: 0.4.1
community_fetched_at: 2026-07-14T14:40:33.142Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "scrapingApi",
      "options": [
        {
          "name": "Deep SerpApi",
          "value": "scrapingApi"
        },
        {
          "name": "Universal Scraping API",
          "value": "universalScrapingApi"
        },
        {
          "name": "Crawler",
          "value": "crawler"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Scrape",
          "value": "scrape",
          "action": "Scrape"
        },
        {
          "name": "Crawl",
          "value": "crawl",
          "action": "Crawl"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "crawler"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "webUnlocker",
      "options": [
        {
          "name": "Web Unlocker",
          "value": "webUnlocker",
          "action": "Web Unlocker"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "universalScrapingApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "googleSearch",
      "options": [
        {
          "name": "Google Search",
          "value": "googleSearch",
          "action": "Google Search"
        },
        {
          "name": "Google Trends",
          "value": "googleTrends",
          "action": "Google Trends"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scrapingApi"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Scrape",
      "value": "scrape",
      "action": "Scrape",
      "resource": "crawler"
    },
    {
      "name": "Crawl",
      "value": "crawl",
      "action": "Crawl",
      "resource": "crawler"
    },
    {
      "name": "Web Unlocker",
      "value": "webUnlocker",
      "action": "Web Unlocker",
      "resource": "universalScrapingApi"
    },
    {
      "name": "Google Search",
      "value": "googleSearch",
      "action": "Google Search",
      "resource": "scrapingApi"
    },
    {
      "name": "Google Trends",
      "value": "googleTrends",
      "action": "Google Trends",
      "resource": "scrapingApi"
    }
  ]

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

  # n8n-node-scrapeless

  This repo contains Scrapeless's community node for n8n.

  ## Installation

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

  ## Credentials

  You must have a Scrapeless API key to use this node. You can register for a free account to get an API key here:

  https://app.scrapeless.com/passport/register

  Once registered, you can find your API key here:


  Then you'll need to create a credential in n8n for Scrapeless.

  ![Add Credentials](images/add-credentials.png)

  ## Usage

  Add the Scrapeless node to your workflow.

  ![Add Scrapeless to Workflow](images/workflow.png)

  Configure a basic query and hit "Test step" to try a search.

  ![Test a Crawler through Scrapeless](images/test-crawler.png)

  ## License

  [MIT](https://github.com/scrapeless-ai/n8n-nodes-scrapeless/blob/main/LICENSE.md)

ai_documentation_summary:
  {"purpose":"Official Scrapeless community node for n8n that enables web scraping and crawling operations directly within n8n workflows.","capabilities":["Execute search queries via Scrapeless API","Perform web crawling operations","Retrieve scraped data from specified URLs","Integrate Scrapeless scraping functionality into n8n workflows"],"authentication":"API key required (Scrapeless API key)","commonUseCases":["Automated web data extraction","Competitor research via web scraping","Social media monitoring","Lead generation through URL crawling"],"limitations":["Requires separate Scrapeless account registration","API key must be configured in n8n credentials","Scraping limits and terms of service apply based on Scrapeless API plan"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code Node"]}


node_type: n8n-nodes-parseur.parseurTrigger
package_name: n8n-nodes-parseur
display_name: Parseur Trigger
description: Trigger workflow on events sent from Parseur
category: Development
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: parseur
author_github_url: https://github.com/parseur/parseur-n8n-node.git
npm_package_name: n8n-nodes-parseur
npm_version: 0.0.4
community_fetched_at: 2026-07-14T14:40:33.143Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # Parseur n8n Node

  > 🧩 Official n8n Node to interact with [Parseur](https://parseur.com): receive events, upload text or upload files.

  [![npm version](https://badge.fury.io/js/n8n-nodes-parseur.svg)](https://badge.fury.io/js/n8n-nodes-parseur)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  [About](#about)  
  [Operations](#operations)  
  [Installation](#installation)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Resources](#resources)  
  [License](#license)

  ## About

  **Parseur** is a powerful no-code data extraction platform that helps you turn emails, PDFs, and other documents into structured data.

  This custom **n8n Node** allows you to:

  ✅ Trigger workflows when documents or tables are processed (via webhook)  
  ✅ Upload new documents as text (via API)  
  ✅ Upload files to a parser (via API)

  ## Operations

  - Upload File: send binary files (PDF, EML, etc.) to a Mailbox
  - Upload Text: send plain or HTML content as a document to a Mailbox
  - Supports webhook events from Parseur:

  | Event                          | Type     | Description                         |
  | ------------------------------ | -------- | ----------------------------------- |
  | `document.processed`           | document | Document processed successfully     |
  | `document.processed.flattened` | document | Document processed as flat data     |
  | `document.template_needed`     | document | Processing failed (template needed) |
  | `document.export_failed`       | document | Export failed                       |
  | `table.processed`              | table    | A table field row was processed     |
  | `table.processed.flattened`    | table    | A table field row (flattened)       |

  ## Installation

  ### Install from npm

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

  ### Install from source

  1. Clone and build the node

  ```bash
  git clone https://github.com/parseur/parseur-n8n-node <parseur-n8n-node>
  cd <parseur-n8n-node>
  npm install
  npm run build
  ```

  2. Set up a local n8n instance — **outside** `<parseur-n8n-node>`, otherwise the custom-node loader will follow the step-3 symlink into n8n's own `node_modules` and crash on `*.node.js` files.

  ```bash
  mkdir <n8n>  # NOT in <parseur-n8n-node>
  cd <n8n>
  npm init -y
  npm install sqlite3
  npm install n8n
  ```

  3. Link the Parseur node to n8n

  ```bash
  cd ~/.n8n
  mkdir -p custom
  cd custom
  npm init -y
  npm link <parseur-n8n-node>
  ```

  4. Start n8n — you will see Parseur Trigger available.

  ```bash
  cd <n8n>
  npx n8n
  ```

  ## Credentials

  To connect n8n with your Parseur account, you'll need two values: an **API Key** and a **Webhook Token**.

  ### API Key

  Get your API key in the [Parseur account settings](https://app.parseur.com/account).  
  This key is required to authenticate API requests to the Parseur platform.

  1. Log in to your [Parseur](https://app.parseur.com/login).
  2. Navigate to **Account**.
  3. Copy your **API Key**.

  In n8n:

  - Click **"Add Credential"** and search for **"Parseur API"**.
  - Paste your API Key into the **API Key** field.

  ### Webhook Token

  The **Webhook Token** is used to verify that incoming webhook requests (e.g. from n8n to Parseur) are legitimate.

  You can generate a secure random token using a service like [uuidgenerator.net](https://www.uuidgenerator.net/), or generate one yourself using a tool or script of your choice.

  1. Go to [uuidgenerator.net](https://www.uuidgenerator.net/).
  2. Copy a generated UUID or token string.
  3. Paste it into the **Webhook Token** field in your Parseur credential in n8n.

  This token will be expected in the HTTP header `X-Parseur-Token` of all webhook requests.

  ## Compatibility

  Compatible with n8n v1.91.2.

  Requires **Node.js v22** or later.

  ## Resources

  - [Parseur](https://parseur.com) — Document processing & data extraction
  - [n8n](https://n8n.io) — Workflow automation

  ## Version history

  Check CHANGELOG.md for more detailed history.

  #### v0.0.7

  - Bumped `@n8n/node-cli` to v0.28.0 (beta track)
  - Pinned minimum versions for langchain dependencies (`@langchain/community` ≥1.1.18, `@langchain/core` ≥1.1.38, `@langchain/classic` ≥1.0.31, `langsmith` ≥0.5.19) via npm overrides
  - Added `subtitle` to the Parseur Trigger node — selected event is now shown under the node name in the workflow canvas
  - Documented Node.js v22 requirement

  #### v0.0.6

  - Added GitHub Action publishing workflow
  - Switched package manager from PNPM to NPM
  - Enabled Dependabot and applied multiple dependency updates (langchain, typescript, prettier, undici, release-it, minimatch, gulp, eslint-plugin-n8n-nodes-base)

  #### v0.0.4

  - Removed debug log

  #### v0.0.3

  - Replaced `this.helpers.request` with `this.helpers.requestWithAuthentication` for credential-scoped API calls
  - README updates

  #### v0.0.2

  - Version bump (no functional changes)

  #### v0.0.1

  Initial release

  ## Contributing

  We welcome contributions and ideas!

  Please [open an issue](https://github.com/parseur/parseur-n8n-node/issues) or [submit a pull request](https://github.com/parseur/parseur-n8n-node/pulls) if you want to improve this node.

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows when documents or tables are processed by Parseur and allows uploading text or files to Parseur.","capabilities":["Trigger workflow on document.processed events","Trigger workflow on document.processed.flattened events","Trigger workflow on document.template_needed events","Trigger workflow on document.export_failed events","Trigger workflow on table.processed events","Trigger workflow on table.processed.flattened events","Upload binary files (PDF, EML, etc.) to Parseur mailbox","Upload plain text or HTML content to Parseur mailbox"],"authentication":"API Key and Webhook Token","commonUseCases":["Automate data extraction when emails or PDFs are processed","Trigger downstream workflows upon successful document parsing","Handle failed parsing attempts via template_needed events","Export processed data to other systems"],"limitations":["Compatible only with n8n v1.91.2","Requires manual setup of credentials including a generated Webhook Token"],"relatedNodes":["Parseur API","Webhook Trigger","HTTP Request"]}


node_type: n8n-nodes-parseur.parseur
package_name: n8n-nodes-parseur
display_name: Parseur
description: Interact with Parseur to upload text or files
category: Development
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: parseur
author_github_url: https://github.com/parseur/parseur-n8n-node.git
npm_package_name: n8n-nodes-parseur
npm_version: 0.0.4
community_fetched_at: 2026-07-14T14:40:33.144Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "uploadFile",
      "options": [
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload a file to a mailbox",
          "description": "Upload a file to a mailbox"
        },
        {
          "name": "Upload Text",
          "value": "uploadText",
          "action": "Upload a text html document to a mailbox",
          "description": "Upload a text/HTML document to a mailbox"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload a file to a mailbox",
      "description": "Upload a file to a mailbox"
    },
    {
      "name": "Upload Text",
      "value": "uploadText",
      "action": "Upload a text html document to a mailbox",
      "description": "Upload a text/HTML document to a mailbox"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    }
  ]

npm_readme:
  # Parseur n8n Node

  > 🧩 Official n8n Node to interact with [Parseur](https://parseur.com): receive events, upload text or upload files.

  [![npm version](https://badge.fury.io/js/n8n-nodes-parseur.svg)](https://badge.fury.io/js/n8n-nodes-parseur)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  [About](#about)  
  [Operations](#operations)  
  [Installation](#installation)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Resources](#resources)  
  [License](#license)

  ## About

  **Parseur** is a powerful no-code data extraction platform that helps you turn emails, PDFs, and other documents into structured data.

  This custom **n8n Node** allows you to:

  ✅ Trigger workflows when documents or tables are processed (via webhook)  
  ✅ Upload new documents as text (via API)  
  ✅ Upload files to a parser (via API)

  ## Operations

  - Upload File: send binary files (PDF, EML, etc.) to a Mailbox
  - Upload Text: send plain or HTML content as a document to a Mailbox
  - Supports webhook events from Parseur:

  | Event                          | Type     | Description                         |
  | ------------------------------ | -------- | ----------------------------------- |
  | `document.processed`           | document | Document processed successfully     |
  | `document.processed.flattened` | document | Document processed as flat data     |
  | `document.template_needed`     | document | Processing failed (template needed) |
  | `document.export_failed`       | document | Export failed                       |
  | `table.processed`              | table    | A table field row was processed     |
  | `table.processed.flattened`    | table    | A table field row (flattened)       |

  ## Installation

  ### Install from npm

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

  ### Install from source

  1. Clone and build the node

  ```bash
  git clone https://github.com/parseur/parseur-n8n-node <parseur-n8n-node>
  cd <parseur-n8n-node>
  npm install
  npm run build
  ```

  2. Set up a local n8n instance — **outside** `<parseur-n8n-node>`, otherwise the custom-node loader will follow the step-3 symlink into n8n's own `node_modules` and crash on `*.node.js` files.

  ```bash
  mkdir <n8n>  # NOT in <parseur-n8n-node>
  cd <n8n>
  npm init -y
  npm install sqlite3
  npm install n8n
  ```

  3. Link the Parseur node to n8n

  ```bash
  cd ~/.n8n
  mkdir -p custom
  cd custom
  npm init -y
  npm link <parseur-n8n-node>
  ```

  4. Start n8n — you will see Parseur Trigger available.

  ```bash
  cd <n8n>
  npx n8n
  ```

  ## Credentials

  To connect n8n with your Parseur account, you'll need two values: an **API Key** and a **Webhook Token**.

  ### API Key

  Get your API key in the [Parseur account settings](https://app.parseur.com/account).  
  This key is required to authenticate API requests to the Parseur platform.

  1. Log in to your [Parseur](https://app.parseur.com/login).
  2. Navigate to **Account**.
  3. Copy your **API Key**.

  In n8n:

  - Click **"Add Credential"** and search for **"Parseur API"**.
  - Paste your API Key into the **API Key** field.

  ### Webhook Token

  The **Webhook Token** is used to verify that incoming webhook requests (e.g. from n8n to Parseur) are legitimate.

  You can generate a secure random token using a service like [uuidgenerator.net](https://www.uuidgenerator.net/), or generate one yourself using a tool or script of your choice.

  1. Go to [uuidgenerator.net](https://www.uuidgenerator.net/).
  2. Copy a generated UUID or token string.
  3. Paste it into the **Webhook Token** field in your Parseur credential in n8n.

  This token will be expected in the HTTP header `X-Parseur-Token` of all webhook requests.

  ## Compatibility

  Compatible with n8n v1.91.2.

  Requires **Node.js v22** or later.

  ## Resources

  - [Parseur](https://parseur.com) — Document processing & data extraction
  - [n8n](https://n8n.io) — Workflow automation

  ## Version history

  Check CHANGELOG.md for more detailed history.

  #### v0.0.7

  - Bumped `@n8n/node-cli` to v0.28.0 (beta track)
  - Pinned minimum versions for langchain dependencies (`@langchain/community` ≥1.1.18, `@langchain/core` ≥1.1.38, `@langchain/classic` ≥1.0.31, `langsmith` ≥0.5.19) via npm overrides
  - Added `subtitle` to the Parseur Trigger node — selected event is now shown under the node name in the workflow canvas
  - Documented Node.js v22 requirement

  #### v0.0.6

  - Added GitHub Action publishing workflow
  - Switched package manager from PNPM to NPM
  - Enabled Dependabot and applied multiple dependency updates (langchain, typescript, prettier, undici, release-it, minimatch, gulp, eslint-plugin-n8n-nodes-base)

  #### v0.0.4

  - Removed debug log

  #### v0.0.3

  - Replaced `this.helpers.request` with `this.helpers.requestWithAuthentication` for credential-scoped API calls
  - README updates

  #### v0.0.2

  - Version bump (no functional changes)

  #### v0.0.1

  Initial release

  ## Contributing

  We welcome contributions and ideas!

  Please [open an issue](https://github.com/parseur/parseur-n8n-node/issues) or [submit a pull request](https://github.com/parseur/parseur-n8n-node/pulls) if you want to improve this node.

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Parseur platform to upload text or files for document processing and receive webhook events when documents or tables are processed.","capabilities":["Upload binary files (PDF, EML, etc.) to a Mailbox","Upload plain text or HTML content as a document","Receive webhook events for document processing completion","Receive webhook events for table field row processing","Handle document processing failure events requiring templates","Handle document export failure events"],"authentication":"API Key required for API requests; Webhook Token (UUID) required for verifying incoming webhook requests via X-Parseur-Token header","commonUseCases":["Automated document data extraction from emails and PDFs","Triggering workflows when documents are successfully processed","Converting unstructured documents into structured data for downstream processing"],"limitations":["Compatible only with n8n v1.91.2","Requires manual setup of credentials including API Key and Webhook Token","Webhook verification requires generating and managing a separate UUID token"],"relatedNodes":["n8n-nodes-parseur.parseur"]}


node_type: n8n-nodes-templated.templated
package_name: n8n-nodes-templated
display_name: Templated
description: Automate the generation of images, videos, and PDFs with Templated (https://templated.io)
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: templated.io
author_github_url: https://github.com/templated-io/
npm_package_name: n8n-nodes-templated
npm_version: 0.4.3
community_fetched_at: 2026-07-14T14:40:33.145Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "createRender",
      "options": [
        {
          "name": "Create a Render",
          "value": "createRender",
          "action": "Create a render",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v1/render",
              "method": "POST"
            }
          },
          "description": "Generate an image, video, or PDF from a template"
        },
        {
          "name": "Merge Renders",
          "value": "mergeRenders",
          "action": "Merge renders",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v1/render/merge",
              "method": "POST"
            }
          },
          "description": "Merge multiple renders into a single PDF"
        },
        {
          "name": "Retrieve a Render",
          "value": "retrieveRender",
          "action": "Retrieve a render",
          "routing": {
            "request": {
              "url": "=/v1/render/{{$parameter[\"renderId\"]}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific render"
        },
        {
          "name": "Clone a Template",
          "value": "cloneTemplate",
          "action": "Clone a template",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v1/template/{{$parameter[\"templateId\"]}}/clone",
              "method": "POST"
            }
          },
          "description": "Create a clone of an existing template (maintains link to source)"
        },
        {
          "name": "Create a Template",
          "value": "createTemplate",
          "action": "Create a template",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v1/template",
              "method": "POST"
            }
          },
          "description": "Create a new template programmatically with layers"
        },
        {
          "name": "List All Templates",
          "value": "listTemplates",
          "action": "List all templates",
          "routing": {
            "request": {
              "url": "/v1/templates",
              "method": "GET"
            }
          },
          "description": "Get a list of all templates in your account"
        },
        {
          "name": "List Template Layers",
          "value": "listTemplateLayers",
          "action": "List template layers",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v1/template/{{$parameter[\"templateId\"]}}/layers",
              "method": "GET"
            }
          },
          "description": "Get all layers of a specific template"
        },
        {
          "name": "List Template Pages",
          "value": "listTemplatePages",
          "action": "List template pages",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v1/template/{{$parameter[\"templateId\"]}}/pages",
              "method": "GET"
            }
          },
          "description": "Get all pages of a multi-page template"
        },
        {
          "name": "List Template Renders",
          "value": "listTemplateRenders",
          "action": "List template renders",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v1/template/{{$parameter[\"templateId\"]}}/renders",
              "method": "GET"
            }
          },
          "description": "Get all renders created from a specific template"
        },
        {
          "name": "Retrieve a Template",
          "value": "retrieveTemplate",
          "action": "Retrieve a template",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v1/template/{{$parameter[\"templateId\"]}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific template"
        },
        {
          "name": "Update a Template",
          "value": "updateTemplate",
          "action": "Update a template",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v1/template/{{$parameter[\"templateId\"]}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing template (layers, properties, or content)"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create a Render",
      "value": "createRender",
      "action": "Create a render",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v1/render",
          "method": "POST"
        }
      },
      "description": "Generate an image, video, or PDF from a template"
    },
    {
      "name": "Merge Renders",
      "value": "mergeRenders",
      "action": "Merge renders",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v1/render/merge",
          "method": "POST"
        }
      },
      "description": "Merge multiple renders into a single PDF"
    },
    {
      "name": "Retrieve a Render",
      "value": "retrieveRender",
      "action": "Retrieve a render",
      "routing": {
        "request": {
          "url": "=/v1/render/{{$parameter[\"renderId\"]}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific render"
    },
    {
      "name": "Clone a Template",
      "value": "cloneTemplate",
      "action": "Clone a template",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v1/template/{{$parameter[\"templateId\"]}}/clone",
          "method": "POST"
        }
      },
      "description": "Create a clone of an existing template (maintains link to source)"
    },
    {
      "name": "Create a Template",
      "value": "createTemplate",
      "action": "Create a template",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v1/template",
          "method": "POST"
        }
      },
      "description": "Create a new template programmatically with layers"
    },
    {
      "name": "List All Templates",
      "value": "listTemplates",
      "action": "List all templates",
      "routing": {
        "request": {
          "url": "/v1/templates",
          "method": "GET"
        }
      },
      "description": "Get a list of all templates in your account"
    },
    {
      "name": "List Template Layers",
      "value": "listTemplateLayers",
      "action": "List template layers",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v1/template/{{$parameter[\"templateId\"]}}/layers",
          "method": "GET"
        }
      },
      "description": "Get all layers of a specific template"
    },
    {
      "name": "List Template Pages",
      "value": "listTemplatePages",
      "action": "List template pages",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v1/template/{{$parameter[\"templateId\"]}}/pages",
          "method": "GET"
        }
      },
      "description": "Get all pages of a multi-page template"
    },
    {
      "name": "List Template Renders",
      "value": "listTemplateRenders",
      "action": "List template renders",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v1/template/{{$parameter[\"templateId\"]}}/renders",
          "method": "GET"
        }
      },
      "description": "Get all renders created from a specific template"
    },
    {
      "name": "Retrieve a Template",
      "value": "retrieveTemplate",
      "action": "Retrieve a template",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v1/template/{{$parameter[\"templateId\"]}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific template"
    },
    {
      "name": "Update a Template",
      "value": "updateTemplate",
      "action": "Update a template",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v1/template/{{$parameter[\"templateId\"]}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing template (layers, properties, or content)"
    }
  ]

npm_readme:
  # n8n-nodes-templated

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

  Templated is a powerful image, video, and PDF generation service that allows you to create dynamic visual content from templates. With its drag-and-drop editor and robust API, you can automate the creation of marketing images, videos, social media posts, banners, PDFs, and more.

  [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)  

  ## Installation

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

  ## Operations

  With Templated you can create images, videos, or PDFs from dynamic templates. Here are the operations you can use:

  ### Render Operations

  | Name | Description | Documentation |
  |------|-------------|---------------|
  | Create Render | Creates an image, video, or PDF from your template. Supports JPEG, PNG, WebP, MP4 (video), and PDF formats with customizable layers. | [Link](https://templated.io/docs/renders/create/) |
  | Retrieve Render | Retrieves a specific render by its ID to check status and get the generated file URL. | [Link](https://templated.io/docs/renders/retrieve/) |
  | Merge Renders | Merges multiple rendered PDFs into a single PDF document. | [Link](https://templated.io/docs/renders/merge/) |

  ### Template Operations

  | Name | Description | Documentation |
  |------|-------------|---------------|
  | Create Template | Create a new template programmatically with layers. | [Link](https://templated.io/docs/templates/create/) |
  | Update Template | Update an existing template's properties, layers, or pages. | [Link](https://templated.io/docs/templates/update/) |
  | Clone Template | Create a copy of an existing template. | [Link](https://templated.io/docs/templates/clone/) |
  | Retrieve Template | Retrieves details of a specific template by its ID. | [Link](https://templated.io/docs/templates/retrieve/) |
  | List All Templates | Lists all templates in your account. | [Link](https://templated.io/docs/templates/list/) |
  | List Template Layers | Lists all available layers of a specific template. | [Link](https://templated.io/docs/templates/layers/) |
  | List Template Pages | Lists all pages of a multi-page template. | [Link](https://templated.io/docs/templates/pages/) |
  | List Template Renders | Lists all renders created from a specific template. | [Link](https://templated.io/docs/templates/renders/) |


  ## Credentials

  To use this node, you need to authenticate with Templated using an API key.

  ### Prerequisites
  1. Sign up for a [Templated account](https://templated.io)
  2. Create a template using the Templated Editor
  3. Get your API key from your account dashboard

  ### Authentication Setup
  1. In n8n, create new credentials for "Templated API"
  2. Enter your API key obtained from Templated
  3. Test the connection to ensure it's working properly

  ## Compatibility

  - **Minimum n8n version**: 0.174.0
  - **Node API version**: 1
  - **Tested with n8n versions**: 0.174.0, 1.0.0+
  - **Node.js requirement**: >=18.10
  - **Package manager**: pnpm >=9.1

  This node uses the Templated API and should remain compatible with future versions of the service. The node includes AI tool integration capabilities for enhanced workflow automation.

  ## Usage

  This node is perfect for automating visual content creation in your workflows. Common use cases include:

  - **Marketing Automation**: Generate personalized social media posts, banners, or ads with dynamic content
  - **Video Creation**: Create promotional videos, social media clips, or animated content
  - **E-commerce**: Create product images with dynamic pricing, promotional text, or seasonal branding
  - **Document Generation**: Generate certificates, invoices, reports, or contracts in PDF format
  - **SaaS Applications**: Create user-specific images, dashboards, or documents
  - **Social Media**: Automate the creation of branded posts with dynamic content and user data
  - **Batch Processing**: Merge multiple PDFs or generate series of related documents
  - **Template Management**: Programmatically create and manage templates for dynamic content pipelines

  ### Advanced Features

  - **Video Generation**: Create MP4 videos with custom duration and FPS settings
  - **PDF Options**: Flatten PDFs and use CMYK color mode for print-ready documents
  - **Simple & Advanced Modes**: Choose between a form-based layer editor (with template layer dropdown) or direct JSON input
  - **Dynamic Layer Customization**: Control text, colors, fonts, images, borders, positioning, and visibility
  - **Multi-Page Support**: Handle multi-page templates with page-specific layer modifications
  - **Template Management**: Create, update, and clone templates programmatically
  - **Template Search**: Quickly find templates by name or description using the built-in search
  - **Resource Locators**: Choose templates from dropdown lists or enter IDs directly

  ### Example Workflow
  1. **Trigger**: New data event (e.g., new customer, product, or order)
  2. **Process**: Transform and prepare data for template variables  
  3. **Generate**: Use the Templated node to create personalized image or PDF
  4. **Distribute**: Share via email, social media, file storage, or webhook

  The node integrates seamlessly with other n8n nodes, allowing you to pull data from databases, APIs, webhooks, or forms to populate your templates dynamically.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Templated API documentation](https://templated.io/docs)
  * [Template Gallery](https://templated.io/templates)

ai_documentation_summary:
  {"purpose":"Automates the generation of images, videos, and PDFs using Templated's dynamic templates and API integration within n8n workflows.","capabilities":["Create image renders (JPEG, PNG, WebP)","Create video renders (MP4)","Create PDF renders","Retrieve render status and file URLs","Merge multiple PDFs into a single document","Create new templates programmatically","Update existing template properties and layers","Clone existing templates","List and search templates and layers","Manage multi-page templates"],"authentication":"API key required","commonUseCases":["Marketing automation for social media posts and banners","E-commerce product image generation with dynamic content","Document generation for certificates, invoices, and reports","SaaS user-specific dashboard or document creation","Batch processing of PDFs and video series"],"limitations":["Requires a separate Templated account and API key","Minimum n8n version is 0.174.0","Requires Node.js >=18.10"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.set"]}


node_type: @gotohuman/n8n-nodes-gotohuman.gotoHuman
package_name: @gotohuman/n8n-nodes-gotohuman
display_name: gotoHuman
description: Request human reviews with gotoHuman
category: Community
development_style: declarative
version: 2
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: gotohuman-admin
author_github_url: https://github.com/gotohuman/n8n-nodes-gotohuman.git
npm_package_name: @gotohuman/n8n-nodes-gotohuman
npm_version: 0.3.0
community_fetched_at: 2026-07-14T14:40:33.147Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "reviewRequest",
      "options": [
        {
          "name": "Review Request",
          "value": "reviewRequest",
          "description": "Request for Human Review"
        },
        {
          "name": "Message",
          "value": "message",
          "description": "Send a message to a human"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendAndWait",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send review request",
          "description": "Request a human review"
        },
        {
          "name": "Send and Wait for Response",
          "value": "sendAndWait",
          "action": "Send review request and wait for response",
          "description": "Request a human review and wait for the response"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete review request",
          "description": "Delete an existing review request"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reviewRequest"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendMessage",
      "options": [
        {
          "name": "Send Message to Human",
          "value": "sendMessage",
          "action": "Send message to human",
          "description": "Send a message to a human"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send",
      "value": "send",
      "action": "Send review request",
      "description": "Request a human review",
      "resource": "reviewRequest"
    },
    {
      "name": "Send and Wait for Response",
      "value": "sendAndWait",
      "action": "Send review request and wait for response",
      "description": "Request a human review and wait for the response",
      "resource": "reviewRequest"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete review request",
      "description": "Delete an existing review request",
      "resource": "reviewRequest"
    },
    {
      "name": "Send Message to Human",
      "value": "sendMessage",
      "action": "Send message to human",
      "description": "Send a message to a human",
      "resource": "message"
    }
  ]

npm_readme:
  ![Banner Image](https://github.com/user-attachments/assets/4d31e977-018f-47cc-86f5-2caff3fae1d7)

  # n8n-nodes-gotohuman

  This is an n8n community node. It lets you use [gotoHuman](https://gotohuman.com) in your n8n workflows.

  gotoHuman is a Human-in-the-Loop solution that lets you easily add highly customizable human approvals to your AI workflows.  
  Perfect for long-running workflows or workflows triggered in the background by external triggers like emails, tickets, or webhooks.

  Many built-in features:
  - Ready-to-use web UI
  	- Inbox
  	- Customizable review interface
  	- Controls to approve, reject, or edit AI outputs
  	- Allow retries with instructions
  	- Supports text, markdown, JSON, images, and more
  - Slack integration
  - Notifications
  - Response dataset to use as memory
  - And much more!

  ## Installation

  npm package name:
  ```
  @gotohuman/n8n-nodes-gotohuman
  ```

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

  ## Credentials

  Find your API key in the [gotoHuman dashboard](https://app.gotohuman.com).

  ## Usage

  Refer to our [documentation](https://docs.gotohuman.com/Integrations/n8n/) for detailed information on using this node.

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables users to integrate gotoHuman, a Human-in-the-Loop solution, into their workflows for customizable human approvals on AI outputs.","capabilities":["Request human reviews for AI outputs","Approve, reject, or edit AI-generated content","Allow retries with custom instructions","Support multiple content formats (text, markdown, JSON, images)","Provide a ready-to-use web UI with inbox and review interface","Integrate with Slack for notifications","Create response datasets for memory retention","Handle long-running workflows and background triggers"],"authentication":"API key required (found in gotoHuman dashboard)","commonUseCases":["Human approval for AI-generated content before deployment","Quality assurance for long-running AI workflows","Processing external triggers like emails or tickets with human oversight","Building memory-based systems using response datasets"],"limitations":[],"relatedNodes":["n8n HTTP Request","n8n Slack","n8n Webhook","n8n Email"]}


node_type: n8n-nodes-craftmypdf.craftMyPdf
package_name: n8n-nodes-craftmypdf
display_name: CraftMyPDF
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: craftmypdf
author_github_url: https://github.com/craftmypdf/
npm_package_name: n8n-nodes-craftmypdf
npm_version: 0.2.1
community_fetched_at: 2026-07-14T14:40:33.147Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Create beautiful PDF documents with ease using our drag-and-drop template editor. Start from ready-made templates for invoices, certificates, receipts, contracts, and more.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "account",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "PDF",
          "value": "pdf"
        },
        {
          "name": "Transaction",
          "value": "transaction"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get account information",
          "description": "Get account information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an image",
          "description": "Creates an image file with JSON data and your template"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a PDF",
          "description": "Creates a PDF file with JSON data and your template"
        },
        {
          "name": "Create Async",
          "value": "createAsync",
          "action": "Create a PDF asynchronously",
          "description": "Creates a PDF file asynchronously with JSON data and your template. The API returns immediately and once the PDF document is generated, it will make a HTTP/HTTPS GET to your URL (will retry for 3 times before giving up)."
        },
        {
          "name": "Merge",
          "value": "merge",
          "action": "Merge multiple PDF files",
          "description": "Merges multiple PDF URLs"
        },
        {
          "name": "Add Watermark",
          "value": "addWatermark",
          "action": "Add watermark",
          "description": "Add watermark to a PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdf"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List transactions",
          "description": "List transactions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "transaction"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get account information",
      "description": "Get account information",
      "resource": "account"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an image",
      "description": "Creates an image file with JSON data and your template",
      "resource": "image"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a PDF",
      "description": "Creates a PDF file with JSON data and your template",
      "resource": "pdf"
    },
    {
      "name": "Create Async",
      "value": "createAsync",
      "action": "Create a PDF asynchronously",
      "description": "Creates a PDF file asynchronously with JSON data and your template. The API returns immediately and once the PDF document is generated, it will make a HTTP/HTTPS GET to your URL (will retry for 3 times before giving up).",
      "resource": "pdf"
    },
    {
      "name": "Merge",
      "value": "merge",
      "action": "Merge multiple PDF files",
      "description": "Merges multiple PDF URLs",
      "resource": "pdf"
    },
    {
      "name": "Add Watermark",
      "value": "addWatermark",
      "action": "Add watermark",
      "description": "Add watermark to a PDF",
      "resource": "pdf"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List transactions",
      "description": "List transactions",
      "resource": "transaction"
    }
  ]

npm_readme:
  # n8n-nodes-craftmypdf

  This is an n8n community node. It lets you use [CraftMyPDF](https://craftmypdf.com) in your n8n workflows.

  [CraftMyPDF](https://craftmypdf.com) offers PDF generation API and image generation API. CraftMyPDF's advanced drag & drop editor lets you design PDF templates in any browser and generate pixel-perfect PDF documents from reusable templates and data with no-code platforms such as N8n, Zapier, Make, Bubble.io or REST API.

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

  The sections:

  - [Installation](#installation)
  - [Operations](#operations)
  - [Credentials](#credentials) <!-- delete if no auth needed -->
  - [Compatibility](#compatibility)
  - [Usage](#usage) <!-- delete if not using this section -->
  - [Resources](#resources)
  - [License](#license)

  ## Installation

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

  ## Operations

  The following are the options:

  | Name          | Operation      | Description                                                                                                                  | Action                      | Documentation Link                                                                              |
  | ------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------- |
  | Create        | `create`       | Creates a PDF file with JSON data and your template.                                                                         | Create a PDF                | [Link](https://craftmypdf.com/docs/index.html#tag/PDF-Generation-API/operation/create)          |
  | Create Image  | `create-image` | Creates an image file with JSON data and your template.                                                                      | Create an image             | [Link](https://craftmypdf.com/docs/index.html#tag/Image-Generation-API/operation/create-image)  |
  | Create Async  | `createAsync`  | Creates a PDF file asynchronously with JSON data and your template. The API returns immediately, and will retry for 3 times. | Create a PDF asynchronously | [Link](https://craftmypdf.com/docs/index.html#tag/PDF-Generation-API/operation/create-async)    |
  | Merge         | `merge`        | Merges multiple PDF URLs.                                                                                                    | Merge multiple PDF files    | [Link](https://craftmypdf.com/docs/index.html#tag/PDF-Manipulation-API/operation/merge-pdfs)    |
  | Add Watermark | `addWatermark` | Adds a watermark to a PDF.                                                                                                   | Add watermark               | [Link](https://craftmypdf.com/docs/index.html#tag/PDF-Manipulation-API/operation/add-watermark) |

  ## Credentials

  You only need a CraftMyPDF API Key for this, you can get it in the API Integration tab in the web portal.

  ## Compatibility

  Compatible with n8n@1.60.0 or later

  ## Usage

  Please check out the [CraftMyPDF API Reference](https://craftmypdf.com/docs/index.html) for more information on how to use the integration.

  Please check out the [N8n integration tutorial](https://craftmypdf.com/blog/automate-pdf-generation-with-n8n-and-craftmypdf/) for more information.

  ## License

  CraftMyPDF/n8n-nodes-craftmypdf is licensed under the [MIT License](LICENSE.md).

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [CraftMyPDF API Reference](https://craftmypdf.com/docs/index.html)

ai_documentation_summary:
  {"purpose":"Generates PDF documents and images from reusable templates using the CraftMyPDF API, supporting both synchronous and asynchronous operations.","capabilities":["Create PDF files from JSON data and templates","Create image files from JSON data and templates","Generate PDFs asynchronously with automatic retry logic","Merge multiple PDF files","Add watermarks to PDFs","Access drag-and-drop template editor for invoice, certificate, receipt, and contract templates"],"authentication":"API key required","commonUseCases":["Automated invoice generation","Certificate creation and distribution","Receipt generation for e-commerce","Contract document assembly","Bulk document processing with retry logic"],"limitations":["Requires valid CraftMyPDF API key","Compatible only with n8n version 1.60.0 or later"],"relatedNodes":["n8n-nodes-craftmypdf.craftMyPdf"]}


node_type: n8n-nodes-cronlytic.cronlyticTrigger
package_name: n8n-nodes-cronlytic
display_name: Cronlytic Trigger
description: Trigger workflows using Cronlytic advanced cron scheduling
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: cronlytic
author_github_url: https://github.com/Cronlytic/
npm_package_name: n8n-nodes-cronlytic
npm_version: 0.1.4
community_fetched_at: 2026-07-14T14:40:33.149Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-cronlytic

  An n8n community node for integrating with [Cronlytic](https://cronlytic.com), providing advanced cron scheduling capabilities for n8n workflows through webhook triggers.

  ![n8n](https://img.shields.io/badge/n8n-community%20node-FF6D5A)
  ![npm](https://img.shields.io/npm/v/n8n-nodes-cronlytic)
  ![License](https://img.shields.io/npm/l/n8n-nodes-cronlytic)

  ## What is Cronlytic?

  Cronlytic is an advanced cron scheduling service that provides:
  - Robust, reliable cron job execution
  - Detailed execution logs and monitoring
  - Advanced scheduling features beyond basic cron
  - API-based job management
  - Webhook-based triggers for external systems

  ## Features

  This n8n node provides:

  - **Cronlytic Trigger**: Create scheduled workflows using Cronlytic's advanced cron scheduler
  - **Webhook Integration**: Automatically sets up webhooks between Cronlytic and n8n
  - **Advanced Scheduling**: Support for complex cron expressions
  - **Automatic Job Management**: Creates, updates, and deletes Cronlytic jobs as needed
  - **Custom Headers & Payloads**: Configure webhook requests with custom data

  ## Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes** in your n8n instance
  2. Click **Install**
  3. Enter `n8n-nodes-cronlytic`
  4. Click **Install**

  ### Manual Installation

  ```bash
  # In your n8n installation directory
  npm install n8n-nodes-cronlytic

  # Restart your n8n instance
  ```

  ## Setup

  ### 1. Get Cronlytic API Credentials

  1. Sign up for a [Cronlytic account](https://cronlytic.com)
  2. Navigate to **API Keys** in your dashboard
  3. Click **Generate New API Key**
  4. Copy your **API Key** and **User ID**

  ### 2. Configure Credentials in n8n

  1. In n8n, go to **Credentials**
  2. Click **Create New Credential**
  3. Search for and select **Cronlytic API**
  4. Enter your **API Key** and **User ID**
  5. Test the connection and save

  ## Usage

  ### Cronlytic Trigger Node

  The Cronlytic Trigger node creates scheduled jobs on Cronlytic that trigger your n8n workflows via webhooks.

  #### Configuration Options:

  - **Job Name**: Unique identifier for the cron job (alphanumeric, hyphens, underscores only)
  - **Cron Expression**: 5-field cron expression (minute hour day month day-of-week)
  - **Webhook Body**: Optional JSON payload to send with the webhook
  - **Additional Headers**: Custom headers for webhook requests

  #### Example Cron Expressions:

  - `*/5 * * * *` - Every 5 minutes
  - `0 9 * * 1-5` - 9 AM on weekdays
  - `0 0 1 * *` - First day of every month
  - `30 14 * * 0` - 2:30 PM every Sunday

  ### Example Workflow

  1. Add a **Cronlytic Trigger** node to your workflow
  2. Configure credentials
  3. Set job name: `daily-report-generator`
  4. Set cron expression: `0 9 * * *` (daily at 9 AM)
  5. Add webhook body: `{"source": "cronlytic", "type": "daily_report"}`
  6. Connect to your processing nodes
  7. Activate the workflow

  When activated, this creates a job on Cronlytic that will trigger your workflow daily at 9 AM.

  ## Advanced Features

  ### Custom Webhook Payloads

  Include dynamic data in your webhook triggers:

  ```json
  {
    "trigger_time": "{{timestamp}}",
    "source": "cronlytic",
    "workflow_id": "daily-backup",
    "environment": "production"
  }
  ```

  ### Error Handling

  The node includes built-in error handling:
  - API connection retries with exponential backoff
  - Automatic lambda warming for reliable execution
  - Detailed error messages for troubleshooting

  ### Job Management

  Jobs are automatically managed by n8n:
  - **Created** when workflow is activated
  - **Updated** when node configuration changes
  - **Deleted** when workflow is deactivated or node is removed

  ## API Reference

  This node uses the [Cronlytic Programmatic API](https://api.cronlytic.com/prog/). For advanced usage, refer to the complete API documentation.

  ## Troubleshooting

  ### Common Issues

  1. **Authentication Failed**
     - Verify API Key and User ID are correct
     - Check that credentials are properly configured in n8n

  2. **Invalid Cron Expression**
     - Use 5-field format: `minute hour day month day-of-week`

  3. **Webhook Not Triggering**
     - Ensure workflow is activated
     - Check Cronlytic dashboard for job status and logs
     - Verify webhook URL is accessible

  4. **Job Limit Exceeded**
     - Check your Cronlytic plan limits
     - Delete unused jobs or upgrade your plan

  ### Support

  - **Node Issues**: [GitHub Issues](https://github.com/Cronlytic/n8n-nodes-cronlytic)
  - **Cronlytic API**: saleh@cronlytic.com
  - **n8n Community**: [n8n Community Forum](https://community.n8n.io/)

  ## Development

  ### Requirements

  - Node.js ≥ 20.15
  - n8n development environment

  ### Setup

  ```bash
  # Clone the repository
  git clone https://github.com/Cronlytic/n8n-nodes-cronlytic.git
  cd n8n-nodes-cronlytic

  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Link for local testing
  npm link
  n8n start
  ```

  ### Scripts

  - `npm run build` - Build the node
  - `npm run dev` - Build in watch mode
  - `npm run lint` - Run linter
  - `npm run format` - Format code

  ## Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Run linting and formatting
  6. Submit a pull request

  ## License

  [MIT](LICENSE.md)

  ## Author

  **Saleh Alsaihati**
  - GitHub: [@Cronlytic](https://github.com/Cronlytic/n8n-nodes-cronlytic)
  - Email: saleh@cronlytic.com

  ---

  *Built with ❤️ for the n8n community*

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows using Cronlytic's advanced cron scheduling service via webhook integration.","capabilities":["Create scheduled workflows using advanced cron expressions","Configure custom webhook payloads and headers","Automatic job creation, update, and deletion management","Support for complex cron scheduling (e.g., weekdays, specific times)","Built-in error handling with API retries"],"authentication":"API Key required (Cronlytic API Key and User ID)","commonUseCases":["Automated daily/weekly report generation","Scheduled data backups","Time-based automation tasks","Complex recurring job scheduling beyond basic cron"],"limitations":["Requires separate Cronlytic account and API credentials","Subject to Cronlytic plan limits on job count","Requires manual setup of Cronlytic credentials in n8n"],"relatedNodes":["Cron Trigger","Webhook","Credentials"]}


node_type: n8n-nodes-velatir.velatir
package_name: n8n-nodes-velatir
display_name: Velatir
description: Human approval gate with decision routing - routes workflow based on approval decision
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main",
  "main",
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: velatir
author_github_url: https://github.com/velatir/
npm_package_name: n8n-nodes-velatir
npm_version: 2.0.1
community_fetched_at: 2026-07-14T14:40:33.150Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-velatir

  ![Velatir](https://img.shields.io/badge/Velatir-Human--Approval--Gate-blue?style=flat-square)
  ![n8n-community-node-package](https://img.shields.io/badge/n8n-community--node-ff6d5a?style=flat-square)
  ![npm version](https://img.shields.io/npm/v/n8n-nodes-velatir?style=flat-square)
  ![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)

  **Human approval gate for n8n workflows with decision routing.** This community node integrates [Velatir](https://velatir.com) to pause your workflow until a human makes a decision, then routes the data to different outputs based on that decision.

  ## What does it do?

  The Velatir node provides **smart decision routing**:

  1. **Data flows in** → Gets sent to Velatir for human review
  2. **Workflow pauses** → Waits for human decision
  3. **Routes to different outputs** based on approval decision:
     - **Output 1**: Approved requests
     - **Output 2**: Declined requests
     - **Output 3**: Change requests with feedback

  This gives you maximum flexibility to handle each decision type differently in your workflow.

  ## Installation

  ### Option 1: Community Nodes Panel (Recommended)
  1. Go to **Settings > Community Nodes** in n8n
  2. Select **Install**
  3. Enter `n8n-nodes-velatir`
  4. Select **Install**

  ### Option 2: Manual Installation
  ```bash
  npm install n8n-nodes-velatir
  ```

  ## Setup

  ### 1. Get your Velatir API Key
  - Sign up at [velatir.com](https://velatir.com)
  - Get your API key from the dashboard

  ### 2. Add Credentials in n8n
  - Go to **Settings > Credentials**
  - Create new **Velatir API** credential
  - Enter your API key
  - Save

  ## Usage

  ### Basic Usage
  Drag the **Velatir** node into your workflow and connect nodes to the outputs you need:

  ```
  Trigger → [Your Data] → **Velatir** → [Approved: Process Data]
                                    → [Declined: Send Rejection Email]  
                                    → [Change Requested: Request More Info]
  ```

  **The node will:**
  - Automatically use your input data as the approval context
  - Show the node name and description to approvers  
  - Route data to different outputs based on the approval decision
  - Include decision metadata in all outputs

  ### Simple Example
  If you only care about approved requests, just connect the first output:

  ```
  Trigger → [Your Data] → **Velatir** → [Process Approved Data]
  ```

  ### Configuration Options

  | Field | Description | Default |
  |-------|-------------|---------|
  | **Function Name** | Name shown to approvers | Node name |
  | **Description** | What this step does | Empty |
  | **Polling Interval** | Check frequency (seconds) | 5 |
  | **Timeout** | Max wait time (minutes) | 10 |
  | **LLM Explanation** | AI context for approval decision | Empty |

  ## Examples

  ### Example 1: Content Review Workflow
  ```
  Webhook → **Velatir** → [Approved: Publish Content]
                        → [Declined: Archive Content]
                        → [Changes Requested: Send to Editor]
  ```

  ### Example 2: User Registration with Feedback  
  ```
  Form Submit → **Velatir** → [Approved: Create Account + Welcome Email]
                            → [Declined: Send Rejection Email]
                            → [Changes Requested: Request Additional Info]
  ```

  ### Example 3: Invoice Processing
  ```
  New Invoice → **Velatir** → [Approved: Auto-Pay Invoice]
                            → [Declined: Mark as Disputed]  
                            → [Changes Requested: Request Clarification]
  ```

  ### Example 4: Simple Approval Gate
  If you only need to process approved requests:
  ```
  Manual Trigger → Set (Campaign Data) → **Velatir** → [Send Email]
  ```
  Just connect the first output and leave the others unconnected.

  ## What Approvers See

  When a request needs approval, your team will see:

  - **Function Name**: "Send Email Campaign" (or whatever you set)
  - **Description**: "Send marketing email to 1,500 customers" 
  - **Arguments**: All the input data from your workflow
  - **LLM Explanation**: AI context about why approval is needed (if provided)
  - **Metadata**: Workflow context (ID, execution, behavior mode, etc.)

  ## Data Output

  All outputs include the original data plus `_velatir` metadata:

  ```json
  {
    "originalData": "your workflow data",
    "_velatir": {
      "reviewTaskId": "uuid-of-review-task",
      "state": "approved|declined|change_requested",
      "requestedChange": "feedback from approver (if any)"
    }
  }
  ```

  ## Best Practices

  ### ✅ Do:
  - Use descriptive node names (they become the function name)
  - Add helpful descriptions for complex operations
  - Place approval gates before critical/irreversible actions
  - Set appropriate timeouts for your team's response time
  - Provide LLM explanations for better approval context
  - Connect the outputs you need (you don't have to use all three)
  - Use the change requested output to implement feedback loops

  ### ❌ Don't:
  - Put approval gates in loops (can create many approval requests)
  - Set very short timeouts for non-urgent operations
  - Forget that unconnected outputs will lose their data
  - Ignore the `_velatir` metadata when processing decisions

  ## Error Handling

  The node uses **decision routing** for all scenarios:

  - **If approved**: Data flows to "Approved" output (Output 1)
  - **If declined**: Data flows to "Declined" output (Output 2)  
  - **If changes requested**: Data flows to "Change Requested" output (Output 3) with feedback
  - **If timeout**: Workflow stops after the configured timeout
  - **If API error**: With "Continue on Fail" enabled, errors flow to "Declined" output
  - **If API error**: With "Continue on Fail" disabled, workflow stops with error message

  ## Workflow Patterns

  ### Pattern 1: Simple Approval
  ```
  Data → **Velatir** → [Approved: Process Data]
  ```
  Only connect the approved output for basic approval gates.

  ### Pattern 2: Full Decision Handling
  ```
  Data → **Velatir** → [Approved: Process Data]
                     → [Declined: Log Rejection]
                     → [Changes: Request Info]
  ```
  Handle all three decision types differently.

  ### Pattern 3: Feedback Loop
  ```
  Data → **Velatir** → [Approved: Process]
                     → [Declined: Archive]
                     → [Changes: Edit] → **Velatir** (New Review)
  ```
  Use change requests to improve and resubmit.

  ### Pattern 4: Escalation Workflow
  ```
  Data → **Velatir** → [Approved: Execute]
                     → [Declined: End]
                     → [Changes: Escalate] → Senior **Velatir** → Execute
  ```
  Escalate change requests to higher approval levels.

  ### Pattern 5: Conditional Approval
  ```
  Data → IF (high_value?) → **Velatir** → [Process]
                          → Direct Process
  ```
  Only require approval for certain conditions.

  ## Troubleshooting

  | Issue | Solution |
  |-------|----------|
  | "Request timeout" | Increase timeout or check if approvers are available |
  | "API key invalid" | Verify credential configuration in n8n |
  | "Request declined" | Data flows to declined output - check approver feedback |
  | Node doesn't appear | Restart n8n after installation |
  | "Unexpected state" | Update to latest node version (API may have changed) |
  | Data not flowing to expected output | Check the `_velatir.state` field in your data |
  | Missing data on outputs | Connect only the outputs you need, unconnected outputs lose data |

  ## Minimal Examples

  ### Simple Approval
  1. **Manual Trigger** 
  2. **Set** node with: `{"message": "Hello World"}`
  3. **Velatir** node (default settings)
  4. **No Op** node connected to "Approved" output

  When you run this:
  - Your approver sees: Function "Velatir" needs approval with args `{"message": "Hello World"}`
  - If approved: Data flows to No Op with `_velatir` metadata
  - If declined/changed: Data flows to unconnected outputs (lost)

  ### Full Decision Routing
  1. **Manual Trigger**
  2. **Set** node with: `{"message": "Hello World"}`
  3. **Velatir** node 
  4. **No Op** node connected to "Approved" output
  5. **Set** node connected to "Declined" output with message "Request declined"
  6. **Set** node connected to "Change Requested" output with message "Changes needed"

  When you run this, the workflow routes to different paths based on the approval decision, and you can handle each case appropriately.

  ## Support

  - 📖 [Velatir Documentation](https://www.velatir.com/docs)
  - 💬 [n8n Community Forum](https://community.n8n.io)
  - 🐛 [Report Issues](https://github.com/velatir/n8n-nodes-velatir/issues)
  - 📧 [Contact Support](mailto:hello@velatir.com)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"A community n8n node that integrates with Velatir to pause workflows for human approval and route data to different outputs based on the decision (approved, declined, or change requested).","capabilities":["Pauses workflow execution for human review","Routes data to three distinct outputs based on approval decision","Supports configurable polling intervals and timeout limits","Includes optional LLM-generated explanations for approvers","Adds metadata to output data including review task ID and decision state","Handles API errors with configurable continue-on-fail behavior"],"authentication":"API key required (Velatir API key)","commonUseCases":["Content moderation and review workflows","User registration approval with feedback loops","Invoice and payment dispute management","Marketing campaign approval gates","Simple binary approval switches"],"limitations":["Not suitable for approval loops (can create infinite approval requests)","Unconnected outputs will lose their data","Requires external Velatir account setup","Workflow stops if timeout is reached"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-manualTrigger","n8n-nodes-set","n8n-nodes-ai","n8n-nodes-conditionalBranches"]}


node_type: @globalping/n8n-nodes-globalping.globalping
package_name: @globalping/n8n-nodes-globalping
display_name: Globalping
description: Consume the Globalping API
category: Development
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: jimaek
author_github_url: https://github.com/jsdelivr/n8n-nodes-globalping.git
npm_package_name: @globalping/n8n-nodes-globalping
npm_version: 1.0.5
community_fetched_at: 2026-07-14T14:40:33.151Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "measurements",
      "options": [
        {
          "name": "Measurement",
          "value": "measurements"
        },
        {
          "name": "Probe",
          "value": "probes"
        },
        {
          "name": "Limit",
          "value": "limits"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "Returns a list of all probes currently online and their metadata such as location and assigned tags for advanced use cases"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "probes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "Returns rate limits for the current user if authenticated or IP address if not authenticated"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "limits"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Ping",
          "value": "measurementPing",
          "action": "PING. Raw output, latency data, max 16 packets."
        },
        {
          "name": "Traceroute",
          "value": "measurementTraceroute",
          "action": "Traceroute. Raw output, latency data, all protocols and ports."
        },
        {
          "name": "DNS",
          "value": "measurementDns",
          "action": "DNS resolve. All types, latency data and optional tracing."
        },
        {
          "name": "MTR",
          "value": "measurementMtr",
          "action": "MTR trace. Raw output, latency data, all protocols."
        },
        {
          "name": "HTTP",
          "value": "measurementHttp",
          "action": "HTTP Request. GET or HEAD, raw output, latency and TLS data. Limited to 10kb."
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "measurements"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "List",
      "value": "list",
      "action": "Returns a list of all probes currently online and their metadata such as location and assigned tags for advanced use cases",
      "resource": "probes"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "probes"
    },
    {
      "name": "List",
      "value": "list",
      "action": "Returns rate limits for the current user if authenticated or IP address if not authenticated",
      "resource": "limits"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "limits"
    },
    {
      "name": "Ping",
      "value": "measurementPing",
      "action": "PING. Raw output, latency data, max 16 packets.",
      "resource": "measurements"
    },
    {
      "name": "Traceroute",
      "value": "measurementTraceroute",
      "action": "Traceroute. Raw output, latency data, all protocols and ports.",
      "resource": "measurements"
    },
    {
      "name": "DNS",
      "value": "measurementDns",
      "action": "DNS resolve. All types, latency data and optional tracing.",
      "resource": "measurements"
    },
    {
      "name": "MTR",
      "value": "measurementMtr",
      "action": "MTR trace. Raw output, latency data, all protocols.",
      "resource": "measurements"
    },
    {
      "name": "HTTP",
      "value": "measurementHttp",
      "action": "HTTP Request. GET or HEAD, raw output, latency and TLS data. Limited to 10kb.",
      "resource": "measurements"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "measurements"
    }
  ]

npm_readme:
  # @globalping/n8n-nodes-globalping
  This is an n8n community node. It lets you use [Globalping](https://globalping.io/) in your n8n workflows.

  The Globalping node allows you to perform network measurements such as `ping`, `traceroute`, `mtr`, `http` and `DNS` lookups from a specified location. 
  You can use this node to test network connections, do latency checks or troubleshoot connectivity issues from various regions.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)
  [Usage](#usage) 

  ## Installation

  1. Go to n8n Settings in bottom left
  2. Select "Community nodes"
  3. Enter `@globalping/n8n-nodes-globalping` and install

  <img width="673" alt="n8n globalping" src="https://github.com/user-attachments/assets/1772ec9d-e5a5-47f8-983f-31e8f33a9c9a">


  ## Operations

  - All measurements support both IPv4 and IPv6 endpoints, as long as you manually enable it per measurement.
  - The location field is smart enough to accept many different types of inputs. [Learn more about the magic location field](https://github.com/jsdelivr/globalping?tab=readme-ov-file#test-with-magic-).
  - While the Globalping network is large and is constantly expanding we can't guarantee a probe in every single location. [Explore our online probes on our website](https://globalping.io/network)

   	### Measurements:
   	- `Ping` - Ping an endpoint using ICMP. Default 3 packets.
   	- `Traceroute` - Traceroute an endpoint using ICMP, TCP or UDP on any port. 
   	- `DNS` - Resolve a DNS record of any type. By default the local resolver is used but a different one can be provided. For troubleshooting purposes the `trace` function can be enabled.
   	- `MTR` - MTR an endpoint using ICMP, TCP or UDP on any port. 
   	- `HTTP` - Make an HTTP GET or HEAD request to any URL. Responses are limited to first 10kb. Note that the `Host` and `User-Agent` headers are reserved and internally overridden.

  	 ### Probes:
   	- `List` - returns a list of all probes currently online and their metadata such as location and assigned tags.

  	 ### Limits:
   	- `List` - returns rate limits for the current user if authenticated or IP address if not authenticated.

  ## Credentials

  Globalping is free to use, and doesn't require authentication. However, it implements rate limits to ensure fair usage and reliability. 
  Sign up on the [Globalping Dashboard](https://dash.globalping.io/) to enjoy higher limits. [Learn more about limits](https://globalping.io/credits).

  To take advantage of the higher limits you need to generate a token in the dashboard and store it in n8n by setting ```Access token``` in ```Credentials``` of your workflow.

  ## Usage

   Create a workflow and add Globalping node with operation you need. Make sure to enable "Authentication" in each step if you have provided your token and want to use it.

   <img width="1920" alt="globalping n8n usage" src="https://github.com/user-attachments/assets/09021705-4e78-4973-866d-92291b659fd4">

ai_documentation_summary:
  {"purpose":"A community n8n node that enables network measurements and connectivity testing from various global locations.","capabilities":["Ping endpoints using ICMP","Traceroute using ICMP, TCP, or UDP","DNS resolution for any record type","MTR (My Traceroute) analysis","HTTP GET and HEAD requests","List available probes and their metadata","Retrieve rate limit information","Support for both IPv4 and IPv6 endpoints"],"authentication":"Optional - Free tier available without authentication; Access token required for higher rate limits","commonUseCases":["Testing network connectivity from specific geographic regions","Measuring latency between locations","Troubleshooting DNS resolution issues","Verifying HTTP endpoint availability","Monitoring global network performance"],"limitations":["Probe availability not guaranteed in every location","HTTP responses limited to first 10kb","Host and User-Agent headers are reserved and overridden","Rate limits apply to free tier users"],"relatedNodes":["HTTP Request","DNS Lookup","Ping","Traceroute","MTR"]}


node_type: @apify/n8n-nodes-apify.apify
package_name: @apify/n8n-nodes-apify
display_name: Apify
description: Access Apify tools for web scraping, data extraction, and automation.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: mtrunkat
author_github_url: https://github.com/apify/n8n-nodes-apify.git
npm_package_name: @apify/n8n-nodes-apify
npm_version: 0.6.10
community_fetched_at: 2026-07-14T14:40:33.151Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "Actors",
      "options": [
        {
          "name": "Actor",
          "value": "Actors"
        },
        {
          "name": "Actor Task",
          "value": "Actor tasks"
        },
        {
          "name": "Actor Run",
          "value": "Actor runs"
        },
        {
          "name": "Dataset",
          "value": "Datasets"
        },
        {
          "name": "Key-Value Store",
          "value": "Key-Value Stores"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Run actor",
      "options": [
        {
          "name": "Run an Actor",
          "value": "Run actor",
          "action": "Run an Actor",
          "description": "Runs an Actor. You can override the Actor’s input configuration by providing a custom body, which will override the prefilled input values."
        },
        {
          "name": "Run an Actor and Get Dataset",
          "value": "Run actor and get dataset",
          "action": "Run an Actor and get dataset",
          "description": "Runs an Actor, waits for it to finish, and finally returns the dataset items"
        },
        {
          "name": "Scrape Single URL",
          "value": "Scrape single URL",
          "action": "Scrape single URL",
          "description": "Scrape a single URL using the Apify Website Content Crawler Actor and get its content as text, markdown, and HTML"
        },
        {
          "name": "Get Last Run",
          "value": "Get last run",
          "action": "Get last run",
          "description": "Retrieves the most recent run of an Actor. This endpoint is useful for quickly accessing the latest run details, including its status and storages, without needing to specify a run ID."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Actors"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Run task",
      "options": [
        {
          "name": "Run Task",
          "value": "Run task",
          "action": "Run task",
          "description": "Runs an Actor Task and return all associated details. You can optionally override the Actor’s input configuration by providing a custom body."
        },
        {
          "name": "Run Task and Get Dataset",
          "value": "Run task and get dataset",
          "action": "Run task and get dataset",
          "description": "Runs an Actor task, waits for it to finish, and finally returns the dataset items. You can optionally override the Actor’s input configuration by providing a custom body."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Actor tasks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get user runs list",
      "options": [
        {
          "name": "Get User Runs List",
          "value": "Get user runs list",
          "action": "Get user runs list",
          "description": "Gets a list of Actor runs for the user. This endpoint is useful for retrieving a history of runs, their statuses, and other data."
        },
        {
          "name": "Get run",
          "value": "Get run",
          "action": "Get run",
          "description": "Gets the details of a specific Actor run by its ID. This endpoint is useful for retrieving information about a run, such as its status, storages, and other metadata."
        },
        {
          "name": "Get runs",
          "value": "Get runs",
          "action": "Get runs",
          "description": "Gets a list of Actor runs. This endpoint is useful for retrieving a history of runs, their statuses, and other data."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Actor runs"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get items",
      "options": [
        {
          "name": "Get Items",
          "value": "Get items",
          "action": "Get dataset items",
          "description": "Retrieves items from a dataset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Datasets"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get Key-Value Store Record",
      "options": [
        {
          "name": "Get Key-Value Store Record",
          "value": "Get Key-Value Store Record",
          "action": "Get key-value store record",
          "description": "Gets a value stored in the key-value store under a specific key"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Key-Value Stores"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Run an Actor",
      "value": "Run actor",
      "action": "Run an Actor",
      "description": "Runs an Actor. You can override the Actor’s input configuration by providing a custom body, which will override the prefilled input values.",
      "resource": "Actors"
    },
    {
      "name": "Run an Actor and Get Dataset",
      "value": "Run actor and get dataset",
      "action": "Run an Actor and get dataset",
      "description": "Runs an Actor, waits for it to finish, and finally returns the dataset items",
      "resource": "Actors"
    },
    {
      "name": "Scrape Single URL",
      "value": "Scrape single URL",
      "action": "Scrape single URL",
      "description": "Scrape a single URL using the Apify Website Content Crawler Actor and get its content as text, markdown, and HTML",
      "resource": "Actors"
    },
    {
      "name": "Get Last Run",
      "value": "Get last run",
      "action": "Get last run",
      "description": "Retrieves the most recent run of an Actor. This endpoint is useful for quickly accessing the latest run details, including its status and storages, without needing to specify a run ID.",
      "resource": "Actors"
    },
    {
      "name": "Run Task",
      "value": "Run task",
      "action": "Run task",
      "description": "Runs an Actor Task and return all associated details. You can optionally override the Actor’s input configuration by providing a custom body.",
      "resource": "Actor tasks"
    },
    {
      "name": "Run Task and Get Dataset",
      "value": "Run task and get dataset",
      "action": "Run task and get dataset",
      "description": "Runs an Actor task, waits for it to finish, and finally returns the dataset items. You can optionally override the Actor’s input configuration by providing a custom body.",
      "resource": "Actor tasks"
    },
    {
      "name": "Get User Runs List",
      "value": "Get user runs list",
      "action": "Get user runs list",
      "description": "Gets a list of Actor runs for the user. This endpoint is useful for retrieving a history of runs, their statuses, and other data.",
      "resource": "Actor runs"
    },
    {
      "name": "Get run",
      "value": "Get run",
      "action": "Get run",
      "description": "Gets the details of a specific Actor run by its ID. This endpoint is useful for retrieving information about a run, such as its status, storages, and other metadata.",
      "resource": "Actor runs"
    },
    {
      "name": "Get runs",
      "value": "Get runs",
      "action": "Get runs",
      "description": "Gets a list of Actor runs. This endpoint is useful for retrieving a history of runs, their statuses, and other data.",
      "resource": "Actor runs"
    },
    {
      "name": "Get Items",
      "value": "Get items",
      "action": "Get dataset items",
      "description": "Retrieves items from a dataset",
      "resource": "Datasets"
    },
    {
      "name": "Get Key-Value Store Record",
      "value": "Get Key-Value Store Record",
      "action": "Get key-value store record",
      "description": "Gets a value stored in the key-value store under a specific key",
      "resource": "Key-Value Stores"
    }
  ]

npm_readme:
  # n8n Nodes - Apify integration

  This is an n8n community node that integrates [Apify](https://apify.com) with your n8n workflows, so you can run Apify Actors, extract structured data from websites, and automate complex web scraping tasks.

  [Apify](https://apify.com) is a platform for developers to build, deploy, and publish web automation tools, while [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) tool for AI workflow automation that allows you to connect various services.

  ## Table of contents

  - [Installation on self hosted instance](#installation-self-hosted)
  - [Installation on n8n cloud](#installation-n8n-cloud)
  - [Installation for development and contributing](#installation-development-and-contributing)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [Usage](#usage)
  - [Resources](#resources)
  - [Release](#releasing-a-new-version)
  - [Version History](#version-history)
  - [Troubleshooting](#troubleshooting)

  ## Installation (self-hosted)

  To install the Apify community node directly from the n8n Editor UI:

  1. Open your n8n instance.
  2. Go to **Settings > Community Nodes**
  3. Select **Install**.
  4. Enter the npm package name: `@apify/n8n-nodes-apify` to install the latest version. To install a specific version (e.g 0.6.4) enter `@apify/n8n-nodes-apify@0.6.4`. All versions are available [here](https://www.npmjs.com/package/@apify/n8n-nodes-apify?activeTab=versions)
  5. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes and select **Install**
  6. The node is now available to use in your workflows.

  ## Installation (n8n Cloud)

  If you're using n8n Cloud, installing community nodes is even simpler:

  1. Go to the **Canvas** and open the **nodes panel**.
  2. Search for **Apify** in the community node registry.
  3. Click **Install node** to add the Apify node to your instance.

  > On n8n cloud users can choose not to show verified community nodes. Instance owners can toggle this in the Cloud Admin Panel. To install the Apify node, make sure the installation of verified community nodes is enabled.

  ## Installation (development and contributing)

  ### ⚙️ Prerequisites

  - **Node.js**: 22.x or higher (required)
  - **npm**: 10.8.2 or higher (required)

  Verify your versions:

  ```bash
  node --version  # Should be v22.x.x or higher
  npm --version   # Should be 10.8.2 or higher
  ```

  If you use `nvm`, the project includes a `.nvmrc` file. Simply run:

  ```bash
  nvm use
  ```

  ### 1. Clone and Install Dependencies

  Clone the repository and install dependencies:

  ```bash
  git clone https://github.com/apify/n8n-nodes-apify.git
  cd n8n-nodes-apify
  npm install
  ```

  ### 2. Build the Node Package

  ```bash
  npm run build
  ```

  ### 3. Start Development Server

  Start the n8n development server with your node linked:

  ```bash
  npm run dev
  ```

  ---

  ### 🔁 Making changes

  If you make any changes to your custom node locally, remember to rebuild and restart:

  ```bash
  npm run build
  ```

  ---

  ## Self-hosted n8n: Public webhook URL for triggers

  This configuration is required for our service's trigger functionality to work correctly.

  By default, when running locally n8n generates webhook URLs using `localhost`, which external services cannot reach. To fix this:

  1. **Set your webhook URL**  
     In the same shell or Docker environment where n8n runs, export the `WEBHOOK_URL` to a publicly-accessible address. For example:

  ```bash
  export WEBHOOK_URL="https://your-tunnel.local"
  ```

  2. **Restart n8n**

  ```bash
  npm run dev
  ```

  ## Operations

  This node supports a wide range of Apify operations, organized by resource type:

  ### Actors

  - **Run Actor**: Execute an Actor with optional input parameters
    - Default behavior: Uses predefined input values
    - Custom input: Provide JSON object to override any or all default parameters
    - Configurable timeout and memory limits
    - Build version selection
  - **Run Actor and get dataset items**: Execute an Actor, wait for it to finish, and return the dataset items
  - **Scrape Single URL**: Quick scraping of a single URL
  - **Get Last Run**: Retrieve information about the most recent Actor run

  ### Actor tasks

  - **Run Task**: Execute a predefined Actor task
    - Supports custom input JSON
    - Configurable timeout
    - Task-specific settings
  - **Run task and get dataset items**: Execute a task, wait for it to finish, and return the dataset items

  ### Actor runs

  - **Get User Runs List**: List all runs for a user
    - Pagination support
    - Sorting options
    - Status filtering
  - **Get run**: Retrieve detailed information about a specific run

  ### Datasets

  - **Get Items**: Fetch items from a dataset

  ### Key-Value Stores

  - **Get Key-Value Store Record**: Retrieve a specific record by key

  ### Triggers

  Automatically start an n8n workflow whenever an Actor or task finishes execution

  - Can be configured to trigger on success, failure, abort, timeout or any combination of these states
  - Includes run metadata in the output
  - Available triggers:
    - **Actor Run Finished**: Start a workflow when an Actor run completes
    - **Task Run Finished**: Start a workflow when a task run completes

  ### AI Tools

  All Apify node operations can be combined with n8n's AI tools to create powerful workflows.
  For example, you can scrape data from a website using an Actor and then use an AI model to analyze or summarize the extracted information.

  ## Credentials

  The node supports two authentication methods:

  1. **API key authentication**
     - Configure your Apify API key in the n8n credentials section under `apifyApi`

  2. **OAuth2 authentication** (available only in n8n cloud)
     - Configure OAuth2 credentials in the n8n credentials section under `apifyOAuth2Api`

  ![auth](./docs/auth.png)

  ## Compatibility

  - **n8n**: Version 1.57.0 and higher
  - **Node.js**: 22.x or higher
  - **npm**: 10.8.2 or higher

  ## Usage

  1. **Create an Actor**: Set up a new Actor on [Apify](https://apify.com).
  2. **Set up a workflow**: Create a new workflow in n8n.
  3. **Add the Apify node**: Insert the Apify node into your workflow.
  4. **Configure credentials**: Enter your Apify API key and Actor ID.
  5. **Select an operation**: Choose the desired operation for the node.
  6. **Execute the workflow**: Run the workflow to execute the Apify operation.

  ![workflow](./docs/workflow.png)

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Apify API Documentation](https://docs.apify.com)

  # Releasing a New Version

  This project uses a GitHub Actions workflow to automate the release process, including publishing to npm. Here's how to trigger a new release.

  **Prerequisites (for all methods):**

  - Ensure your target branch on GitHub is up-to-date with all changes you want to include in the release.
  - Decide on the new version number, following semantic versioning (e.g., `vX.Y.Z`).
  - Prepare your release notes detailing the changes.
  - If you're using CLI to release, make sure you have the [GitHub CLI (`gh`)](https://cli.github.com/) installed and authenticated (`gh auth login`).

  ---

  ## Method 1: Using the GitHub Web UI (Recommended for ease of use)

  1.  **Navigate to GitHub Releases:**
      - Go to your repository's "Releases" tab

  2.  **Draft a New Release:**
      - Click the **"Draft a new release"** button.

  3.  **Create or Choose a Tag:**
      - In the "Choose a tag" dropdown:
        - **Type your new tag name** (e.g., `v1.2.3`).
        - If the tag doesn't exist, GitHub will prompt you with an option like **"Create new tag: v1.2.3 on publish."** Click this.
        - Ensure the **target branch** selected for creating the new tag is correct. This tag will point to the latest commit on this target branch.

  4.  **Set Release Title and Notes:**
      - Set the "Release title" (e.g., `vX.Y.Z` or a more descriptive title).
      - For the release notes in the description field, you have a few options:
        - **Write your prepared release notes.**
        - **Click the "Generate release notes" button:** GitHub will attempt to automatically create release notes based on merged pull requests since the last release. You can then review and edit these auto-generated notes.

  5.  **Publish the Release:**
      - Click the **"Publish release"** button.

        _Upon publishing, GitHub creates the tag from your specified branch and then creates the release. This "published" release event triggers the automated workflow._

  ---

  ## Method 2: Fully CLI-Driven Release

  This method uses the GitHub CLI (`gh`) for all steps, including tag creation.

  1.  **Ensure your local target branch is synced and changes are pushed:**
      `bash
  git checkout master
  git pull origin master
  `

  2.  **Create the Release (which also creates and pushes the tag):**
      Replace `vX.Y.Z` with your desired tag/version. The command will create this tag from the latest commit of your specified `--target` branch (defaults to repository's default branch, if `--target` is omitted and the branch is up to date).

      ```bash
      gh release create vX.Y.Z \
          --target master \
          --title "vX.Y.Z" \
          --notes "Your detailed release notes here.
          - Feature X
          - Bugfix Y"

      # Or, to use notes from a file:
      gh release create vX.Y.Z \
          --target master \
          --title "vX.Y.Z" \
          --notes-file ./RELEASE_NOTES.md

      # Or, to generate notes from pull requests (commits must follow conventional commit format for best results):
      gh release create vX.Y.Z \
          --target master \
          --title "vX.Y.Z"
          --generate-notes
      ```

      - `vX.Y.Z`: The tag and release name.
      - `--target <branch>`: Specifies which branch the tag should be created from (e.g., `master`). If the tag `vX.Y.Z` doesn't exist, `gh` will create it based on the HEAD of this target branch and push it.
      - `--title "<title>"`: The title for your release.
      - `--notes "<notes>"` or `--notes-file <filepath>` or `--generate-notes`: Your release notes.

        _This command will create the tag, push it to GitHub, and then publish the release. This "published" release event triggers the automated workflow._

  ---

  ## Post-Release: Automated Workflow & Verification (Common to all methods)

  Regardless of how you create and publish the GitHub Release:

  1.  **Automated Workflow Execution:**
      - The "Release & Publish" GitHub Actions workflow will automatically trigger.
      - It will perform:
        1.  Code checkout.
        2.  Version extraction (`X.Y.Z`) from the release tag.
        3.  Build and test processes.
        4.  Update `package.json` and `package-lock.json` to version `X.Y.Z`.
        5.  Commit these version changes back to the branch the release was targeted from with a message like `chore(release): set version to X.Y.Z [skip ci]`.
        6.  Publish the package `@apify/n8n-nodes-apify@X.Y.Z` to npm.

  2.  **Verify the Package on npm:**
      After the workflow successfully completes (check the "Actions" tab in your GitHub repository): - Verify the new version on npm:
      `bash
  npm view @apify/n8n-nodes-apify version
  `
      This should print `X.Y.Z`.

  ## Version history

  Track changes and updates to the node here.

  ## Troubleshooting

  ### Common issues

  1. **Authentication errors**
     - Verify your API key is correct

  2. **Resource Not Found**
     - Verify the resource ID format
     - Check if the resource exists in your Apify account
     - Ensure you have access to the resource

  3. **Operation failures**
     - Check the input parameters
     - Verify resource limits (memory, timeout)
     - Review Apify Console for detailed error messages

  ### Getting help

  If you encounter issues:

  1. Check the [Apify API documentation](https://docs.apify.com)
  2. Review the [n8n Community Nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  3. Open an issue in the [GitHub repository](https://github.com/apify/n8n-nodes-apify)

ai_documentation_summary:
  {"purpose":"This n8n community node integrates Apify for web scraping, data extraction, and automation by allowing users to run Apify Actors, manage datasets, and trigger workflows on completion.","capabilities":["Run Apify Actors with custom input parameters","Execute predefined Actor tasks","Scrape single URLs","Retrieve dataset items","Access Key-Value Store records","List and retrieve Actor run information","Trigger workflows on Actor or task completion (success, failure, abort, timeout)","Support pagination and sorting for run lists","Combine with n8n AI tools for data analysis"],"authentication":"API key required (apifyApi) or OAuth2 (apifyOAuth2Api, n8n Cloud only)","commonUseCases":["Automated web scraping and data extraction","Building data pipelines from external websites","Triggering n8n workflows based on external actor execution status","Integrating AI models with scraped data"],"limitations":["Requires Node.js 22.x or higher","Requires npm 10.8.2 or higher","n8n version 1.57.0 or higher required","OAuth2 authentication only available in n8n Cloud","Self-hosted instances require public WEBHOOK_URL configuration for triggers"],"relatedNodes":["n8n HTTP Request","n8n Code","n8n AI Model","n8n Webhook"]}


node_type: @thelifeofrishi/n8n-nodes-orshot.orshot
package_name: @thelifeofrishi/n8n-nodes-orshot
display_name: Orshot
description: Automated Image Generation for Marketing
category: Community
development_style: declarative
version: 3
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: thelifeofrishi
author_github_url: https://github.com/rishimohan/orshot-n8n.git
npm_package_name: @thelifeofrishi/n8n-nodes-orshot
npm_version: 0.5.0
community_fetched_at: 2026-07-14T14:40:33.152Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "https://api.orshot.com/v1/generate/images",
      "options": [
        {
          "name": "Generate Image From a Library Template",
          "value": "https://api.orshot.com/v1/generate/images",
          "action": "Generate an image from a library template",
          "description": "Endpoint: https://api.orshot.com/v1/generate/images"
        },
        {
          "name": "Generate Image From an Orshot Studio Template",
          "value": "https://api.orshot.com/v1/studio/render",
          "action": "Generate an image from a studio template",
          "description": "Endpoint: https://api.orshot.com/v1/studio/render"
        }
      ],
      "required": true,
      "description": "Orshot API Endpoint URL(ref: https://orshot.com/docs/api-reference)",
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Image From a Library Template",
      "value": "https://api.orshot.com/v1/generate/images",
      "action": "Generate an image from a library template",
      "description": "Endpoint: https://api.orshot.com/v1/generate/images"
    },
    {
      "name": "Generate Image From an Orshot Studio Template",
      "value": "https://api.orshot.com/v1/studio/render",
      "action": "Generate an image from a studio template",
      "description": "Endpoint: https://api.orshot.com/v1/studio/render"
    }
  ]

npm_readme:
  # n8n-nodes-orshot

  This is an n8n community node. It lets you use [Orshot](https://orshot.com)'s Image Generation API in your n8n workflows.

  Orshot is an Image Generation API which lets you generate dynamic images from pre-designed and AI generated templates via API and Integrations.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials) <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage) <!-- delete if not using this section -->  
  [Resources](#resources)  
  [Version history](#version-history) <!-- delete if not using this section -->

  ## Installation

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

  ## Operations

  - Generate Images from a Library Template
  - Generate Images from a Orshot Studio Templates

  ## Credentials

  - You need an API Key for this integration to work
  - You can get an free API Key by signing up on [Orshot](https://orshot.com)
  - After signing up, you can head to your Workspace > Settings > API Key to get your API Key
  - You can use that API Key in the "Token" field in the n8n Integration

  ## Compatibility

  - Works on n8n > 1.00
  - Created on n8n v1.94.1

  ## Usage

  You can refer to [Orshot API Docs](https://orshot.com/docs) to refer to the APIs and their usage along with definitions, examples etc.

  ## Resources

  - [API Docs](https://orshot.com/docs)
  - [Library Templates](https://orshot.com/templates)
  - [Creating a custom API template using Orshot Studio](https://orshot.com/features/orshot-studio)
  - [Creating a template using AI Template Generator](https://orshot.com/features/ai-template-generator)
  - [Integrations](https://orshot.com/integrations)

  ## Version history

  #### 0.5.0

  - Added support for Video generation (`mp4`, `webm`, `gif`) for studio templates
  - Added support for PDF options (`dpi`, `margin`, `colorMode`, `pageRange`)
  - Added support for Video options (`loop`, `muted`, `trimStart`, `trimEnd`)

  #### 0.4.1

  - Added support for `includePages` param for studio templates

  #### 0.4.0

  - Added support for `customFileName` and `scale` params for studio templates

  #### 0.3.5

  - Fixes image generation for "binary" response types

  #### 0.3.0

  - Add correct link to n8n Ingegration doc
  - Show descriptions in studio templates dropdown list

  #### 0.2.5

  - Automatically show dropdown of user's studio templates(previously user needed to enter it manually)

  #### 0.2.0

  - Make repo public and trigger vertification check

  #### 0.1.0

  - Initial Release
  - Actions for rendering from a library and studio template

ai_documentation_summary:
  {"purpose":"This n8n community node enables automated image and video generation using Orshot's API, allowing users to create dynamic visuals from pre-designed library templates or custom AI-generated studio templates.","capabilities":["Generate images from library templates","Generate images from Orshot Studio templates","Generate video content (mp4, webm, gif) from studio templates","Apply PDF options (dpi, margin, colorMode, pageRange)","Apply video options (loop, muted, trimStart, trimEnd)","Use includePages parameter for studio templates","Use customFileName and scale parameters for studio templates"],"authentication":"API Key required (obtained from Orshot workspace settings)","commonUseCases":["Automated marketing image creation","Dynamic social media content generation","Custom video production for campaigns","Batch image generation from templates"],"limitations":["Community node (may require manual updates if n8n changes structure)","Requires separate Orshot account and API key setup","Video generation requires Orshot Studio templates"],"relatedNodes":["HTTP Request","Code","Trigger Webhook"]}


node_type: @langfuse/n8n-nodes-langfuse.langfuse
package_name: @langfuse/n8n-nodes-langfuse
display_name: Langfuse
description: Fetches a prompt from Langfuse Prompt Management
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: mdeichmann
author_github_url: https://github.com/langfuse/n8n-nodes-langfuse.git
npm_package_name: @langfuse/n8n-nodes-langfuse
npm_version: 0.2.3
community_fetched_at: 2026-07-14T14:40:33.153Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "prompt",
      "options": [
        {
          "name": "Prompt",
          "value": "prompt"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a prompt",
          "routing": {
            "request": {
              "url": "=/api/public/v2/prompts/{{$parameter[\"promptName\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a prompt by name"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a prompt",
      "routing": {
        "request": {
          "url": "=/api/public/v2/prompts/{{$parameter[\"promptName\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a prompt by name",
      "resource": "prompt"
    }
  ]

npm_readme:
  # n8n-nodes-langfuse

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

  [Langfuse](https://langfuse.com) is an open-source LLM engineering platform that provides observability, metrics, evaluations, prompt management and a playground.

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

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

  ## Installation

  ### Self-hosted n8n

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

  ```bash
  npm install @langfuse/n8n-nodes-langfuse
  ```

  ### n8n Cloud

  This is a verified community node. Search for `Langfuse` to use this node in n8n Cloud.

  ## Operations

  ### Get Prompt

  This node can be used to get a prompt from [Langfuse Prompt Management](https://langfuse.com/docs/prompts).

  Steps

  1. Enter the `name` of the prompt
  2. Enter the `label` that identifies the prompt version that you want to fetch. Defaults to "production". Learn more about prompt labels in Langfuse [here](https://langfuse.com/docs/prompts/get-started#labels).

  _Example workflow that retrieves the system prompt for the agent from Langfuse:_

  ![n8n-changelog](https://github.com/user-attachments/assets/4d224c2f-86b6-4ad4-a64a-45c7fe6e3595)

  ## Credentials

  To use this node, you need to authenticate with Langfuse. You'll need:

  1. A Langfuse account, either [Langfuse Cloud](https://cloud.langfuse.com) or [self-hosted](https://langfuse.com/self-hosting).
  2. API credentials from your Langfuse project settings: hostname, public key, secret key

  ## Development

  ### Prerequisites

  You need the following installed on your development machine:

  - [git](https://git-scm.com/downloads)
  - Node.js and npm. Minimum version Node 20. You can find instructions on how to install both using nvm (Node Version Manager) for Linux, Mac, and WSL [here](https://github.com/nvm-sh/nvm). For Windows users, refer to Microsoft's guide to [Install NodeJS on Windows](https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows).
  - Install n8n with:
    ```
    npm install n8n -g
    ```
  - Recommended: follow n8n's guide to [set up your development environment](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/).

  ### Build new version

  ```bash
  npm run build
  npm link
  ```

  ### Test in local n8n

  ```bash
  cd ~/.n8n/custom
  npm link n8n-nodes-langfuse
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Langfuse documentation](https://langfuse.com/docs)
  - [Langfuse Prompt Management](https://langfuse.com/docs/prompts)

  ## License

  [MIT](https://github.com/langfuse/n8n-nodes-langfuse/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"Retrieves prompts from Langfuse Prompt Management within n8n workflows.","capabilities":["Fetch prompts by name","Select specific prompt versions using labels (defaults to 'production')"],"authentication":"API key required (hostname, public key, secret key)","commonUseCases":["Retrieving system prompts for AI agents","Accessing versioned prompts from Langfuse"],"limitations":[],"relatedNodes":[]}


node_type: @mendable/n8n-nodes-firecrawl.firecrawl
package_name: @mendable/n8n-nodes-firecrawl
display_name: Firecrawl
description: Scrape, crawl, map, search, and extract structured data from websites using Firecrawl API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs: "={{[\"main\"]}}"
updated_at: 2026-07-14 14:40:33
author_name: cpeffer
author_github_url: https://github.com/mendableai/n8n-nodes-firecrawl.git
npm_package_name: @mendable/n8n-nodes-firecrawl
npm_version: 2.1.2
community_fetched_at: 2026-07-14T14:40:33.154Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "Scraping",
      "options": [
        {
          "name": "Account",
          "value": "Account"
        },
        {
          "name": "Agent",
          "value": "Agent"
        },
        {
          "name": "Browser",
          "value": "Browser"
        },
        {
          "name": "Crawling",
          "value": "Crawling"
        },
        {
          "name": "Extract (Legacy)",
          "value": "Extract"
        },
        {
          "name": "Interact",
          "value": "Interact"
        },
        {
          "name": "Map & Search",
          "value": "MapSearch"
        },
        {
          "name": "Scraping",
          "value": "Scraping"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "/scrape",
          "value": "scrape",
          "action": "/scrape",
          "routing": {
            "request": {
              "url": "=/scrape",
              "method": "POST"
            }
          }
        },
        {
          "name": "Batch scrape multiple URLs simultaneously",
          "value": "batchScrape",
          "action": "Batch scrape multiple URLs simultaneously",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "setKeyValue",
                  "properties": {
                    "data": "={{$response.body}}"
                  }
                }
              ]
            },
            "request": {
              "url": "/batch/scrape",
              "method": "POST"
            }
          }
        },
        {
          "name": "Get batch scrape status",
          "value": "batchScrapeStatus",
          "action": "Get batch scrape status",
          "routing": {
            "request": {
              "method": "GET"
            }
          }
        },
        {
          "name": "Get batch scrape errors",
          "value": "batchScrapeErrors",
          "action": "Get batch scrape errors",
          "routing": {
            "request": {
              "method": "GET"
            }
          }
        },
        {
          "name": "Cancel batch scrape job",
          "value": "cancelBatchScrape",
          "action": "Cancel batch scrape job",
          "routing": {
            "request": {
              "method": "DELETE"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Scraping"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "crawl",
      "options": [
        {
          "name": "Crawl a website and scrape all pages",
          "value": "crawl",
          "action": "Crawl a website and scrape all pages",
          "routing": {
            "request": {
              "url": "=/crawl",
              "method": "POST"
            }
          }
        },
        {
          "name": "Get crawl status",
          "value": "getCrawlStatus",
          "action": "Get crawl status",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "setKeyValue",
                  "properties": {
                    "data": "={{$response.body}}"
                  }
                }
              ]
            },
            "request": {
              "method": "GET"
            }
          }
        },
        {
          "name": "Cancel a crawl job",
          "value": "cancelCrawl",
          "action": "Cancel a crawl job",
          "routing": {
            "request": {
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Get crawl errors",
          "value": "getCrawlErrors",
          "action": "Get crawl errors",
          "routing": {
            "request": {
              "method": "GET"
            }
          }
        },
        {
          "name": "List active crawls",
          "value": "crawlActive",
          "action": "List active crawls",
          "routing": {
            "request": {
              "url": "=/crawl/active",
              "method": "GET"
            }
          }
        },
        {
          "name": "Preview crawl params from prompt",
          "value": "crawlParamsPreview",
          "action": "Preview crawl params from prompt",
          "routing": {
            "request": {
              "url": "=/crawl/params-preview"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Crawling"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "agent",
      "options": [
        {
          "name": "Agent - AI-powered web data extraction (waits for completion)",
          "value": "agent",
          "action": "Agent - AI-powered web data extraction (waits for completion)",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/agent",
              "method": "POST"
            }
          }
        },
        {
          "name": "Agent (Async) - Returns job ID for manual polling",
          "value": "agentAsync",
          "action": "Agent (Async) - Returns job ID for manual polling",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "setKeyValue",
                  "properties": {
                    "data": "={{$response.body}}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/agent",
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Agent Status",
          "value": "getAgentStatus",
          "action": "Get Agent Status",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "setKeyValue",
                  "properties": {
                    "data": "={{$response.body}}"
                  }
                }
              ]
            },
            "request": {
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "map",
      "options": [
        {
          "name": "/map",
          "value": "map",
          "action": "/map",
          "routing": {
            "request": {
              "url": "=/map",
              "method": "POST"
            }
          }
        },
        {
          "name": "/search",
          "value": "search",
          "action": "/search",
          "routing": {
            "request": {
              "url": "=/search",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "MapSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "browserContext",
      "options": [
        {
          "name": "Browser context",
          "value": "browserContext",
          "action": "Browser context",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/browser",
              "method": "GET"
            }
          }
        },
        {
          "name": "Create browser session",
          "value": "browserCreate",
          "action": "Create browser session",
          "routing": {
            "request": {
              "url": "=/browser",
              "method": "POST"
            }
          }
        },
        {
          "name": "Execute browser code",
          "value": "browserExecute",
          "action": "Execute browser code",
          "routing": {
            "request": {
              "method": "POST"
            }
          }
        },
        {
          "name": "List browser sessions",
          "value": "browserList",
          "action": "List browser sessions",
          "routing": {
            "request": {
              "url": "=/browser",
              "method": "GET"
            }
          }
        },
        {
          "name": "Delete browser session",
          "value": "browserDelete",
          "action": "Delete browser session",
          "routing": {
            "request": {
              "method": "DELETE"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Browser"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "interactContext",
      "options": [
        {
          "name": "Interact context",
          "value": "interactContext",
          "action": "Interact context",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/browser",
              "method": "GET"
            }
          }
        },
        {
          "name": "Execute interaction",
          "value": "interact",
          "action": "Execute interaction",
          "routing": {
            "request": {
              "method": "POST"
            }
          }
        },
        {
          "name": "Stop interaction",
          "value": "interactStop",
          "action": "Stop interaction",
          "routing": {
            "request": {
              "method": "DELETE"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Interact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "teamCreditUsage",
      "options": [
        {
          "name": "Get team credit usage",
          "value": "teamCreditUsage",
          "action": "Get team credit usage",
          "routing": {
            "request": {
              "url": "=/team/credit-usage",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get historical credit usage",
          "value": "creditUsageHistorical",
          "action": "Get historical credit usage",
          "routing": {
            "request": {
              "url": "=/team/credit-usage/historical",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get team token usage",
          "value": "teamTokenUsage",
          "action": "Get team token usage",
          "routing": {
            "request": {
              "url": "=/team/token-usage",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get historical token usage",
          "value": "teamTokenUsageHistorical",
          "action": "Get historical token usage",
          "routing": {
            "request": {
              "url": "=/team/token-usage/historical",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get team queue status",
          "value": "teamQueueStatus",
          "action": "Get team queue status",
          "routing": {
            "request": {
              "url": "=/team/queue-status",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "extract",
      "options": [
        {
          "name": "Extract structured data from websites using AI",
          "value": "extract",
          "action": "Extract structured data from websites using AI",
          "routing": {
            "request": {
              "url": "=/extract",
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Extract Status",
          "value": "getExtractStatus",
          "action": "Get Extract Status",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "setKeyValue",
                  "properties": {
                    "data": "={{$response.body}}"
                  }
                }
              ]
            },
            "request": {
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Extract"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /scrape",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Scraping"
          ],
          "operation": [
            "scrape"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /batchScrape",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Scraping"
          ],
          "operation": [
            "batchScrape"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /batchScrapeStatus",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Scraping"
          ],
          "operation": [
            "batchScrapeStatus"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /batchScrapeErrors",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Scraping"
          ],
          "operation": [
            "batchScrapeErrors"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /cancelBatchScrape",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Scraping"
          ],
          "operation": [
            "cancelBatchScrape"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /crawl",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Crawling"
          ],
          "operation": [
            "crawl"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /getCrawlStatus",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Crawling"
          ],
          "operation": [
            "getCrawlStatus"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /cancelCrawl",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Crawling"
          ],
          "operation": [
            "cancelCrawl"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /getCrawlErrors",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Crawling"
          ],
          "operation": [
            "getCrawlErrors"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /crawlActive",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Crawling"
          ],
          "operation": [
            "crawlActive"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /crawlParamsPreview",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Crawling"
          ],
          "operation": [
            "crawlParamsPreview"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /agent",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Agent"
          ],
          "operation": [
            "agent"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /agentAsync",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Agent"
          ],
          "operation": [
            "agentAsync"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /getAgentStatus",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Agent"
          ],
          "operation": [
            "getAgentStatus"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /map",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "MapSearch"
          ],
          "operation": [
            "map"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /search",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "MapSearch"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /teamCreditUsage",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Account"
          ],
          "operation": [
            "teamCreditUsage"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /creditUsageHistorical",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Account"
          ],
          "operation": [
            "creditUsageHistorical"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /teamTokenUsage",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Account"
          ],
          "operation": [
            "teamTokenUsage"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /teamTokenUsageHistorical",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Account"
          ],
          "operation": [
            "teamTokenUsageHistorical"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /teamQueueStatus",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Account"
          ],
          "operation": [
            "teamQueueStatus"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /browserCreate",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Browser"
          ],
          "operation": [
            "browserCreate"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /browserExecute",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Browser"
          ],
          "operation": [
            "browserExecute"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /browserList",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Browser"
          ],
          "operation": [
            "browserList"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /browserDelete",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Browser"
          ],
          "operation": [
            "browserDelete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /interact",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Interact"
          ],
          "operation": [
            "interact"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /interactStop",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Interact"
          ],
          "operation": [
            "interactStop"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /extract",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Extract"
          ],
          "operation": [
            "extract"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /getExtractStatus",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Extract"
          ],
          "operation": [
            "getExtractStatus"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "name": "/scrape",
      "value": "scrape",
      "action": "/scrape",
      "routing": {
        "request": {
          "url": "=/scrape",
          "method": "POST"
        }
      },
      "resource": "Scraping"
    },
    {
      "name": "Batch scrape multiple URLs simultaneously",
      "value": "batchScrape",
      "action": "Batch scrape multiple URLs simultaneously",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "setKeyValue",
              "properties": {
                "data": "={{$response.body}}"
              }
            }
          ]
        },
        "request": {
          "url": "/batch/scrape",
          "method": "POST"
        }
      },
      "resource": "Scraping"
    },
    {
      "name": "Get batch scrape status",
      "value": "batchScrapeStatus",
      "action": "Get batch scrape status",
      "routing": {
        "request": {
          "method": "GET"
        }
      },
      "resource": "Scraping"
    },
    {
      "name": "Get batch scrape errors",
      "value": "batchScrapeErrors",
      "action": "Get batch scrape errors",
      "routing": {
        "request": {
          "method": "GET"
        }
      },
      "resource": "Scraping"
    },
    {
      "name": "Cancel batch scrape job",
      "value": "cancelBatchScrape",
      "action": "Cancel batch scrape job",
      "routing": {
        "request": {
          "method": "DELETE"
        }
      },
      "resource": "Scraping"
    },
    {
      "name": "Crawl a website and scrape all pages",
      "value": "crawl",
      "action": "Crawl a website and scrape all pages",
      "routing": {
        "request": {
          "url": "=/crawl",
          "method": "POST"
        }
      },
      "resource": "Crawling"
    },
    {
      "name": "Get crawl status",
      "value": "getCrawlStatus",
      "action": "Get crawl status",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "setKeyValue",
              "properties": {
                "data": "={{$response.body}}"
              }
            }
          ]
        },
        "request": {
          "method": "GET"
        }
      },
      "resource": "Crawling"
    },
    {
      "name": "Cancel a crawl job",
      "value": "cancelCrawl",
      "action": "Cancel a crawl job",
      "routing": {
        "request": {
          "method": "DELETE"
        }
      },
      "resource": "Crawling"
    },
    {
      "name": "Get crawl errors",
      "value": "getCrawlErrors",
      "action": "Get crawl errors",
      "routing": {
        "request": {
          "method": "GET"
        }
      },
      "resource": "Crawling"
    },
    {
      "name": "List active crawls",
      "value": "crawlActive",
      "action": "List active crawls",
      "routing": {
        "request": {
          "url": "=/crawl/active",
          "method": "GET"
        }
      },
      "resource": "Crawling"
    },
    {
      "name": "Preview crawl params from prompt",
      "value": "crawlParamsPreview",
      "action": "Preview crawl params from prompt",
      "routing": {
        "request": {
          "url": "=/crawl/params-preview"
        }
      },
      "resource": "Crawling"
    },
    {
      "name": "Agent - AI-powered web data extraction (waits for completion)",
      "value": "agent",
      "action": "Agent - AI-powered web data extraction (waits for completion)",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/agent",
          "method": "POST"
        }
      },
      "resource": "Agent"
    },
    {
      "name": "Agent (Async) - Returns job ID for manual polling",
      "value": "agentAsync",
      "action": "Agent (Async) - Returns job ID for manual polling",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "setKeyValue",
              "properties": {
                "data": "={{$response.body}}"
              }
            }
          ]
        },
        "request": {
          "url": "=/agent",
          "method": "POST"
        }
      },
      "resource": "Agent"
    },
    {
      "name": "Get Agent Status",
      "value": "getAgentStatus",
      "action": "Get Agent Status",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "setKeyValue",
              "properties": {
                "data": "={{$response.body}}"
              }
            }
          ]
        },
        "request": {
          "method": "GET"
        }
      },
      "resource": "Agent"
    },
    {
      "name": "/map",
      "value": "map",
      "action": "/map",
      "routing": {
        "request": {
          "url": "=/map",
          "method": "POST"
        }
      },
      "resource": "MapSearch"
    },
    {
      "name": "/search",
      "value": "search",
      "action": "/search",
      "routing": {
        "request": {
          "url": "=/search",
          "method": "POST"
        }
      },
      "resource": "MapSearch"
    },
    {
      "name": "Browser context",
      "value": "browserContext",
      "action": "Browser context",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/browser",
          "method": "GET"
        }
      },
      "resource": "Browser"
    },
    {
      "name": "Create browser session",
      "value": "browserCreate",
      "action": "Create browser session",
      "routing": {
        "request": {
          "url": "=/browser",
          "method": "POST"
        }
      },
      "resource": "Browser"
    },
    {
      "name": "Execute browser code",
      "value": "browserExecute",
      "action": "Execute browser code",
      "routing": {
        "request": {
          "method": "POST"
        }
      },
      "resource": "Browser"
    },
    {
      "name": "List browser sessions",
      "value": "browserList",
      "action": "List browser sessions",
      "routing": {
        "request": {
          "url": "=/browser",
          "method": "GET"
        }
      },
      "resource": "Browser"
    },
    {
      "name": "Delete browser session",
      "value": "browserDelete",
      "action": "Delete browser session",
      "routing": {
        "request": {
          "method": "DELETE"
        }
      },
      "resource": "Browser"
    },
    {
      "name": "Interact context",
      "value": "interactContext",
      "action": "Interact context",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/browser",
          "method": "GET"
        }
      },
      "resource": "Interact"
    },
    {
      "name": "Execute interaction",
      "value": "interact",
      "action": "Execute interaction",
      "routing": {
        "request": {
          "method": "POST"
        }
      },
      "resource": "Interact"
    },
    {
      "name": "Stop interaction",
      "value": "interactStop",
      "action": "Stop interaction",
      "routing": {
        "request": {
          "method": "DELETE"
        }
      },
      "resource": "Interact"
    },
    {
      "name": "Get team credit usage",
      "value": "teamCreditUsage",
      "action": "Get team credit usage",
      "routing": {
        "request": {
          "url": "=/team/credit-usage",
          "method": "GET"
        }
      },
      "resource": "Account"
    },
    {
      "name": "Get historical credit usage",
      "value": "creditUsageHistorical",
      "action": "Get historical credit usage",
      "routing": {
        "request": {
          "url": "=/team/credit-usage/historical",
          "method": "GET"
        }
      },
      "resource": "Account"
    },
    {
      "name": "Get team token usage",
      "value": "teamTokenUsage",
      "action": "Get team token usage",
      "routing": {
        "request": {
          "url": "=/team/token-usage",
          "method": "GET"
        }
      },
      "resource": "Account"
    },
    {
      "name": "Get historical token usage",
      "value": "teamTokenUsageHistorical",
      "action": "Get historical token usage",
      "routing": {
        "request": {
          "url": "=/team/token-usage/historical",
          "method": "GET"
        }
      },
      "resource": "Account"
    },
    {
      "name": "Get team queue status",
      "value": "teamQueueStatus",
      "action": "Get team queue status",
      "routing": {
        "request": {
          "url": "=/team/queue-status",
          "method": "GET"
        }
      },
      "resource": "Account"
    },
    {
      "name": "Extract structured data from websites using AI",
      "value": "extract",
      "action": "Extract structured data from websites using AI",
      "routing": {
        "request": {
          "url": "=/extract",
          "method": "POST"
        }
      },
      "resource": "Extract"
    },
    {
      "name": "Get Extract Status",
      "value": "getExtractStatus",
      "action": "Get Extract Status",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "setKeyValue",
              "properties": {
                "data": "={{$response.body}}"
              }
            }
          ]
        },
        "request": {
          "method": "GET"
        }
      },
      "resource": "Extract"
    }
  ]

npm_readme:
  # n8n-nodes-firecrawl 🔥

  This is an n8n community node. It lets you use **[Firecrawl](https://firecrawl.dev)** in your n8n workflows.

  > 🔥 Turn entire websites into LLM-ready markdown or structured data. Scrape, crawl and extract with a single API.

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

  [Installation](#installation)
  [Operations](#operations)
  [AI Agent Tool Usage](#ai-agent-tool-usage)
  [Credentials](#credentials)
  [Compatibility](#compatibility)
  [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

  The **Firecrawl** node supports the following operations:

  ### Search
  - Search and optionally scrape search results

  ### Map
  - Input a website and get all the website urls

  ### Scrape
  - Scrapes a URL and get its content in LLM-ready format (markdown, structured data via LLM Extract, screenshot, html)

  ### Crawl
  - Scrapes all the URLs of a web page and return content in LLM-ready format

  ### Batch Scrape
  - Start a batch job to scrape multiple URLs at once

  ### Batch Scrape Status
  - Get the status/result of a batch scrape job by ID

  ### Batch Scrape Errors
  - Retrieve errors for a batch scrape job by ID

  ### Crawl Active
  - List all currently active crawl jobs for your team

  ### Crawl Params Preview
  - Preview crawl parameters generated from a natural-language prompt

  ### Cancel Crawl
  - Cancel a running crawl job by ID

  ### Get Crawl Errors
  - Retrieve errors for a crawl job by ID

  ### Get Crawl Status
  - Check the current status of a crawl job

  ### Extract Data
  - Get structured data from single page, multiple pages or entire websites with AI

  ### Get Extract Status
  - Get the current status of an extraction job

  ### Team Token Usage
  - Get remaining and plan tokens for the authenticated team

  ### Team Credit Usage
  - Get remaining and plan credits for the authenticated team

  ### Historical Credit Usage
  - Get historical credit usage for your team

  ### Historical Token Usage
  - Get historical token usage for your team

  ### Team Queue Status
  - Get your team's current queue load (waiting, active, max concurrency)

  ## AI Agent Tool Usage

  This node can be used as a tool with n8n's AI Agent node, allowing AI agents to scrape, crawl, and extract data from websites dynamically.

  ### Requirements

  - **n8n version 1.79.0 or higher** is required for AI tool support
  - Set the environment variable `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true` to enable community nodes as AI tools

  ### Docker Configuration

  ```yaml
  version: '3'
  services:
    n8n:
      image: n8nio/n8n
      environment:
        - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
      ports:
        - "5678:5678"
      volumes:
        - ~/.n8n:/home/node/.n8n
  ```

  ### Using with AI Agents

  1. Add the **AI Agent** node to your workflow
  2. Connect the **Firecrawl** node as a tool input to the AI Agent
  3. The AI agent can now dynamically decide when and how to use Firecrawl operations

  ### Dynamic Parameters with $fromAI()

  When using Firecrawl as an AI tool, you can let the AI agent decide parameter values dynamically using the `$fromAI()` function. Click the "Let the model define this parameter" button next to any field to enable this feature.

  Example expressions:
  ```javascript
  // Let AI decide the URL to scrape
  {{ $fromAI("url", "The URL to scrape", "string") }}

  // Let AI decide the search query
  {{ $fromAI("query", "Search query for finding relevant pages", "string") }}

  // Let AI decide whether to include subdomains
  {{ $fromAI("includeSubdomains", "Whether to include subdomains", "boolean", false) }}
  ```

  ### Best Practices for AI Tool Usage

  1. **Use clear operation names**: The AI agent uses operation descriptions to decide when to use each tool
  2. **Provide context in prompts**: When using the Extract operation, provide clear prompts to guide data extraction
  3. **Set reasonable limits**: Configure default limits to prevent excessive API usage
  4. **Use the Map operation first**: For unknown sites, use Map to discover URLs before scraping

  ## Credentials

  To use the Firecrawl node, you need to:

  1. Sign up for a Firecrawl account at [https://firecrawl.dev](https://firecrawl.dev)
  2. Get your API key from the Firecrawl dashboard
  3. In n8n, add your Firecrawl API key to the node's credentials

  > [!CAUTION]  
  > The API key should be kept secure and never shared publicly

  ## Compatibility

  - **Minimum n8n version: 1.79.0** (required for AI tool support)
  - Tested against n8n versions: 1.79.0+
  - Node.js version: 18 or higher

  > **Note**: If you don't need AI tool support, earlier versions of n8n may work, but 1.79.0+ is recommended.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Firecrawl Documentation](https://firecrawl.dev/docs)
  * [Firecrawl API Reference](https://docs.firecrawl.dev/api-reference/introduction)

  ## Version history

  ### 1.1.0
  - **AI Agent Tool Support**: Node can now be used as a tool with n8n's AI Agent node
    - Added `usableAsTool: true` to enable tool mode
    - Enhanced all field descriptions for better AI context understanding
    - Supports `$fromAI()` function for dynamic parameter values
  - Updated minimum n8n version requirement to 1.79.0
  - Improved operation descriptions for clearer AI agent decision making

  ### 1.0.6
  - Add support for additional Firecrawl endpoints:
    - Batch Scrape (start/status/errors)
    - Crawl Active
    - Crawl Params Preview
    - Cancel Crawl 
    - Get Crawl Errors
    - Team Token Usage
    - Team Credit Usage
    - Historical Credit Usage
    - Historical Token Usage
    - Team Queue Status
  - Wire new operations into the node and align with Firecrawl API v2

  ### 1.0.5
  - API version updated to [/v2](https://docs.firecrawl.dev/migrate-to-v2)
  - Unified sitemap configuration parameters in Map operation
  - Replaced `ignoreSitemap` and `sitemapOnly` with unified `sitemap` parameter
  - `sitemap` parameter now accepts: "include" (default), "only", or "skip"

  ### 1.0.4
  - Add additional fields property for custom data in Firecrawl API nodes

  ### 1.0.2
  - Add integration parameter in all endpoint calls

  ### 1.0.1
  - Support for Search operation

  ### 1.0.0
  - Initial release
  - Support for all basic Firecrawl operations:
    - Map URLs
    - Scrape URL
    - Crawl Website
    - Get Crawl Status
    - Extract Data
    - Get Extract Status
  - Basic error handling and response processing
  - Support for custom body options

  ## More information

  Refer to our [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building your own nodes.

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the Firecrawl API to scrape, crawl, map, search, and extract structured data from websites, including support for AI agent tool usage.","capabilities":["Search and scrape search results","Map website URLs","Scrape single URLs in LLM-ready format (markdown, structured data, screenshot, HTML)","Crawl entire websites","Batch scrape multiple URLs","Monitor batch scrape job status and errors","Manage crawl jobs (active, status, errors, cancellation)","Extract structured data from pages or websites using AI","Monitor team token and credit usage","Check team queue status"],"authentication":"API key required (Firecrawl API key)","commonUseCases":["Web scraping for content aggregation","Website mapping and URL discovery","Structured data extraction for AI workflows","Full website crawling for documentation or analysis","AI agent-driven dynamic web data collection"],"limitations":["Requires n8n version 1.79.0 or higher for AI tool support","AI tool usage requires environment variable N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true","Minimum Node.js version 18 required","Community node (may have different update frequency than official nodes)"],"relatedNodes":["AI Agent node","HTTP Request node","Code node"]}


node_type: n8n-nodes-simplified.simplified
package_name: n8n-nodes-simplified
display_name: Simplified
description: Simplified
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: jacksimplified
author_github_url: https://github.com/celeryhq/
npm_package_name: n8n-nodes-simplified
npm_version: 1.0.5
community_fetched_at: 2026-07-14T14:40:33.155Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "social-media",
      "options": [
        {
          "name": "Social Media",
          "value": "social-media"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createPost",
      "options": [
        {
          "name": "Get Connected Accounts",
          "value": "getAccounts",
          "action": "Get connected accounts",
          "description": "Retrieve all connected social media accounts"
        },
        {
          "name": "Create Post",
          "value": "createPost",
          "action": "Create a new post",
          "description": "Create a new social media post"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "social-media"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Connected Accounts",
      "value": "getAccounts",
      "action": "Get connected accounts",
      "description": "Retrieve all connected social media accounts",
      "resource": "social-media"
    },
    {
      "name": "Create Post",
      "value": "createPost",
      "action": "Create a new post",
      "description": "Create a new social media post",
      "resource": "social-media"
    }
  ]

npm_readme:
  # n8n-nodes-simplified

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

  **Simplified** is a content creation and marketing platform that helps teams generate, schedule, and manage social media content using AI.

  [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

  Option 1: Install via n8n UI
  1. Go to Settings > Community Nodes
  2. Click on Install
  3. Enter n8n-nodes-simplified in the npm Package Name field
  4. Click on Install

  Option 2: Install the node from npm:

  ```bash
  npm install n8n-nodes-simplified
  ```

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

  ---

  ## Operations

  ### 1. Get Social Accounts

  Retrieve all social media accounts connected to your Simplified workspace.

  **Use case**: Useful for previewing accounts or selecting the correct ID for post publishing.

  **Output**:  
  Returns a list of connected account objects, including platform, ID, name, and more.

  ---

  ### 2. Create Post

  Create a new social media post for one of your connected accounts.

  **Input Parameters**:

  | Field              | Type                                | Required | Description |
  |--------------------|-------------------------------------|----------|-------------|
  | Action             | Options: Add as Draft, Schedule, Add to Queue | ✅ Yes | Defines how the post should be handled:<br>• Add as Draft – Save the post without publishing.<br>• Schedule – Publish at a specified date/time.<br>• Add to Queue – Add to your platform's posting queue. |
  | Network Type       | Options (Facebook, LinkedIn, etc.)  | ✅ Yes   | Target social media platform. |
  | Account ID         | Dropdown (auto-loaded)              | ✅ Yes   | Connected account to publish the post to. |
  | Message            | String (text area)                  | ❌ No    | The text content of the post. Optional if the post is media-only. |
  | Schedule Date      | DateTime                            | ❌ No    | Required only if Action is Schedule. Defines when the post will be published. |
  | Media              | List of URLs or Asset IDs           | ❌ No    | Attach media to the post (URLs or Simplified asset IDs). |
  | Platform Settings  | Object                              | ❌ No    | Optional advanced configuration for the selected platform. |

  **Output**:  
  Returns an array containing the post or draft IDs that were created.

  ```json
  [
    {
      "ids": [
        "685d4e9f5cdd5047220f6a43"
      ]
    }
  ]
  ```

  **Usage in expressions**:
  ```scss
  {{$json["ids"][0]}}
  ```

  ---

  ## Credentials

  This node requires authentication with Simplified. You will need an API key to connect your account.

  🔗 [Simplified Authentication Documentation](https://simplified.readme.io/reference/authentication)

  ---

  ## Compatibility

  - Requires **n8n v1.40.0 or higher**
  - Developed and tested with Node.js 20+
  - No known incompatibilities at this time.

  ---

  ## Usage

  Use this node to prepare and publish AI-generated content to all your connected social media accounts directly from n8n.

  Examples:
  - Prepare content with ChatGPT or OpenAI node.
  - Use this node to **schedule or queue** posts for Simplified-connected platforms.
  - Retrieve and display connected accounts before publishing.

  ---

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Simplified API documentation](https://simplified.readme.io/reference/authentication)
  - [Simplified App](https://simplified.com)

  ---

  ## Version history

  ### 1.0.0
  - Initial release
  - Supports:
    - Get Social Accounts
    - Create Post with scheduling, media upload, and advanced platform settings

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with Simplified, a content creation platform, to retrieve social media accounts and create, schedule, or queue posts across various networks.","capabilities":["Retrieve connected social media accounts","Create new social media posts","Schedule posts for future publication","Add posts to the Simplified queue","Attach media (URLs or asset IDs) to posts","Configure advanced platform-specific settings"],"authentication":"API key required","commonUseCases":["Automating social media content publishing workflows","Scheduling AI-generated posts across multiple platforms","Retrieving account IDs for post creation","Managing content queues for social media teams"],"limitations":["Requires Simplified API key configuration","Requires n8n version 1.40.0 or higher","Node is a community package and may not have official support"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.code","n8n-nodes-openai.openai"]}


node_type: n8n-nodes-fullenrich.fullEnrich
package_name: n8n-nodes-fullenrich
display_name: FullEnrich
description: Start a FullEnrich bulk enrichment request
category: Community
development_style: declarative
version: 2
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: fullenrich
author_github_url: https://github.com/fullenrich/
npm_package_name: n8n-nodes-fullenrich
npm_version: 0.2.1
community_fetched_at: 2026-07-14T14:40:33.156Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "enrichment",
      "options": [
        {
          "name": "Enrichment",
          "value": "enrichment"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "startEnrichment",
      "options": [
        {
          "name": "Start Enrichment",
          "value": "startEnrichment",
          "action": "Start enrichment",
          "description": "Start an enrichment task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "enrichment"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Start Enrichment",
      "value": "startEnrichment",
      "action": "Start enrichment",
      "description": "Start an enrichment task",
      "resource": "enrichment"
    }
  ]

npm_readme:
  # n8n-nodes-fullenrich

  This is an n8n community node that lets you use FullEnrich in your n8n workflows.

  **FullEnrich** is a contact enrichment service that takes minimal input (such as first name, last name, company domain, or Professional Network URL) and returns enriched contact data like emails, phone numbers, and company information.
  This node enables you to **start asynchronous enrichment requests** and **receive enriched results via webhook**, all within n8n.


  [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.

  Example:

  ```bash
  npm install n8n-nodes-fullenrich
  ```

  Then restart your n8n instance.

  ---

  ## Operations

  This package provides two nodes, both available in version `1` (legacy) and version `2` (current, default):

  ### FullEnrich — Start Enrichment
  - Accepts one or multiple contacts from previous nodes (e.g., Sheets, forms, or manual input).
  - Supports additional custom fields per contact (e.g. `row_id`, `user_id`).
  - Sends each contact to FullEnrich's API enrichment endpoint.
  - Available as an AI Agent tool (`usableAsTool: true`) for use in LangChain workflows.

  ### FullEnrich Trigger — Receive Enrichment Result (Webhook)
  - Acts as a webhook endpoint.
  - Listens for enrichment results returned via `webhook_url` from FullEnrich.
  - Outputs enriched contact data in a format usable by other nodes like Google Sheets, Airtable, or CRMs.
  - In version `1`, the V2 API response is automatically translated to the legacy V1 shape for backward compatibility with existing workflows.

  ---

  ## Credentials

  The node uses **Bearer token** authentication via your FullEnrich API key.

  - Go to **n8n → Credentials → New**.
  - Choose **FullEnrich API**.
  - Paste your API key (generated from your FullEnrich dashboard).

  The credential automatically sets the `Authorization: Bearer <apiKey>` header on every request.

  ---

  ## Compatibility

  - Minimum **n8n version**: `1.22.0`
  - Tested on: `1.22.0`, `1.25.1`, `1.28.0`
  - Requires the FullEnrich API V2 (used by both node versions).

  ---

  ## Usage

  - The **FullEnrich** node supports contacts from:
    - Previous nodes (e.g., Google Sheets, Airtable, Manual Trigger).
    - Manual input from the UI form (via structured fields).
  - You can pass **custom fields** (e.g. `user_id`) per contact to track each request in your workflow — values are forwarded under the `custom` object and echoed back in the webhook payload.
  - The **FullEnrich Trigger** node acts as a webhook and must be connected to the URL you provide to FullEnrich (auto-generated by n8n in most cases).

  **Example Use Case:**
  1. Load leads from a Google Sheet.
  2. Send them to **FullEnrich** (Start Enrichment).
  3. Receive enriched data via **FullEnrich Trigger**.
  4. Update the same Google Sheet.

  ---

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [FullEnrich API V2 documentation](https://docs.fullenrich.com/api/v2/general/introduction)

  ---

  ## Version history

  ### 0.2.0
  - Migrated to the FullEnrich API V2 under the hood.
  - Added node version `2` (default) for both the action node and the webhook trigger.
  - Version `1` still works: the V2 response is translated back to the legacy V1 payload shape for backward compatibility with existing workflows.
  - Added `usableAsTool: true` so the action node can be used in n8n AI Agent workflows.
  - Switched the build, lint, and release pipeline to `@n8n/node-cli` with eslint 9.

  ### 0.1.x
  - Initial public releases on the FullEnrich API V1.

ai_documentation_summary:
  {"purpose":"This n8n community node initiates asynchronous contact enrichment requests via FullEnrich and retrieves results through a webhook trigger, enabling workflow automation for lead data enhancement.","capabilities":["Start asynchronous enrichment requests for single or multiple contacts","Accept inputs from previous nodes (Sheets, forms, manual input)","Support custom fields per contact (e.g., row_id, user_id)","Provide webhook endpoint to receive enriched results","Output enriched data compatible with Google Sheets, Airtable, or CRMs"],"authentication":"HTTP Basic Auth (API key required)","commonUseCases":["Enriching lead data from Google Sheets or Airtable","Automating contact information updates in CRMs","Processing LinkedIn URLs or email domains for full contact details"],"limitations":["Enrichment is asynchronous; results are received via webhook, not immediately","Requires FullEnrich-compatible API (self-hosted or cloud-based)","Minimum n8n version 1.22.0 required"],"relatedNodes":["Webhook node","Google Sheets node","Airtable node","Manual trigger node"]}


node_type: n8n-nodes-autobound.autobound
package_name: n8n-nodes-autobound
display_name: Autobound
description: Generate AI-powered personalized sales content and retrieve insights using Autobound
category: Community
development_style: declarative
version: 3.1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: autobound
author_github_url: https://github.com/jasonhowie/
npm_package_name: n8n-nodes-autobound
npm_version: 2.3.3
community_fetched_at: 2026-07-14T14:40:33.157Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "content",
      "options": [
        {
          "name": "Content",
          "value": "content",
          "description": "Generate personalized sales content"
        },
        {
          "name": "Insight",
          "value": "insights",
          "description": "Retrieve insights for contacts and companies"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateEmail",
      "options": [
        {
          "name": "Generate Email",
          "value": "generateEmail",
          "action": "Generate an email",
          "description": "Generate personalized email content"
        },
        {
          "name": "Generate LinkedIn Message",
          "value": "generateLinkedIn",
          "action": "Generate a linkedin message",
          "description": "Generate personalized LinkedIn message"
        },
        {
          "name": "Generate Cold Call Script",
          "value": "generateColdCall",
          "action": "Generate a cold call script",
          "description": "Generate a cold call script"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "content"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInsights",
      "options": [
        {
          "name": "Get Insights",
          "value": "getInsights",
          "action": "Get insights",
          "description": "Retrieve insights for a contact or company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "insights"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Email",
      "value": "generateEmail",
      "action": "Generate an email",
      "description": "Generate personalized email content",
      "resource": "content"
    },
    {
      "name": "Generate LinkedIn Message",
      "value": "generateLinkedIn",
      "action": "Generate a linkedin message",
      "description": "Generate personalized LinkedIn message",
      "resource": "content"
    },
    {
      "name": "Generate Cold Call Script",
      "value": "generateColdCall",
      "action": "Generate a cold call script",
      "description": "Generate a cold call script",
      "resource": "content"
    },
    {
      "name": "Get Insights",
      "value": "getInsights",
      "action": "Get insights",
      "description": "Retrieve insights for a contact or company",
      "resource": "insights"
    }
  ]

npm_readme:
  # n8n-nodes-autobound

  <img src="https://github.com/jasonhowie/n8n-nodes-autobound/raw/main/nodes/Autobound/autobound-logo.svg" alt="Autobound Logo" width="300" />

  An n8n community node for Autobound's AI-powered sales content generation and insights API.

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

  ## 🚀 Features

  - **AI-Powered Content Generation**: Create personalized emails, LinkedIn messages, and cold call scripts
  - **Insights Retrieval**: Access detailed prospect and company insights
  - **Multi-Language Support**: Generate content in 10+ languages
  - **Advanced Personalization**: Leverage 350+ insight types for hyper-targeted content
  - **Email Sequences**: Generate multi-step email campaigns
  - **Content Rewriting**: Improve existing content with AI

  ## 📦 Installation

  ### Prerequisites

  - An [Autobound](https://autobound.ai) API key

  ### Self-hosted n8n

  In a self-hosted n8n instance, you can install community nodes directly:

  1. Navigate to **Settings** → **Community Nodes**
  2. Click **Install**
  3. Enter `n8n-nodes-autobound` and click **Install**
  4. The node will be available immediately

  Alternatively, you can install via npm:

  ```bash
  # Install globally for global n8n installations
  npm install -g n8n-nodes-autobound

  # Or install locally in your n8n project
  npm install n8n-nodes-autobound
  ```

  After npm installation, restart your n8n instance to load the new node.

  ### n8n Cloud

  For n8n cloud users:

  1. Go to **Settings** → **Community Nodes**
  2. Click **Install**
  3. Enter `n8n-nodes-autobound` and click **Install**
  4. The node will be installed automatically

  > **Note**: Community nodes are available on n8n cloud for Pro and Enterprise plans.

  ## 🔧 Configuration

  1. **Add Credentials**:
     - In n8n, go to **Settings → Credentials**
     - Click **Add Credential**
     - Search for "Autobound API"
     - Enter your Autobound API key

  2. **Get Your API Key**:
     - Sign up at [Autobound](https://autobound.ai)
     - Navigate to Settings → API Keys
     - Generate a new API key

  ## 🎯 Usage

  ### Content Generation

  The Autobound node supports three types of content generation:

  #### 1. Email Generation

  ```json
  {
  	"resource": "content",
  	"operation": "generateEmail",
  	"contactEmail": "prospect@company.com",
  	"userEmail": "you@company.com",
  	"additionalContext": "Prospect showed interest in cybersecurity solutions",
  	"tone": "professional",
  	"writingStyle": "consultative",
  	"wordCount": 150
  }
  ```

  #### 2. LinkedIn Messages

  ```json
  {
  	"resource": "content",
  	"operation": "generateLinkedIn",
  	"contactEmail": "prospect@company.com",
  	"userEmail": "you@company.com",
  	"messageType": "connection_request",
  	"tone": "friendly",
  	"wordCount": 100
  }
  ```

  #### 3. Cold Call Scripts

  ```json
  {
  	"resource": "content",
  	"operation": "generateColdCall",
  	"contactEmail": "prospect@company.com",
  	"userEmail": "you@company.com",
  	"callDuration": "60_seconds",
  	"tone": "professional"
  }
  ```

  ### Insights Retrieval (v1.4)

  Get detailed insights about prospects and companies:

  ```json
  {
  	"resource": "insights",
  	"contactEmail": "prospect@company.com",
  	"insightSubtype": "companyMarketTrends, financialEarningsCall"
  }
  ```

  ## 🔥 Advanced Features

  ### Email Sequences

  Generate multi-step email campaigns:

  ```json
  {
  	"resource": "content",
  	"operation": "generateEmail",
  	"contactEmail": "prospect@company.com",
  	"userEmail": "you@company.com",
  	"sequenceNumberOfEmails": 3,
  	"writingStyle": "challenger_sale"
  }
  ```

  ### Content Rewriting

  Improve existing content:

  ```json
  {
  	"resource": "content",
  	"operation": "generateEmail",
  	"contactEmail": "prospect@company.com",
  	"userEmail": "you@company.com",
  	"contentToRewrite": "Your existing email content here..."
  }
  ```

  ### Multiple Variations

  Generate multiple content variations:

  ```json
  {
  	"resource": "content",
  	"operation": "generateEmail",
  	"contactEmail": "prospect@company.com",
  	"userEmail": "you@company.com",
  	"n": 3
  }
  ```

  ### Insight Control

  Fine-tune which insights to include or exclude:

  ```json
  {
  	"resource": "content",
  	"operation": "generateEmail",
  	"contactEmail": "prospect@company.com",
  	"userEmail": "you@company.com",
  	"enabledInsights": "companyMarketTrends, newsEvents, jobOpenings",
  	"disabledInsights": "personalInterests, schoolMascot"
  }
  ```

  ## 📋 Available Parameters

  ### Required Fields

  - `contactEmail` or `contactLinkedinUrl`: Prospect identifier
  - `userEmail` or `userLinkedinUrl`: Seller identifier (for content generation)

  ### Optional Fields

  - `additionalContext`: Custom context or intent signals
  - `tone`: Content tone (professional, casual, friendly, etc.)
  - `language`: Content language (10+ supported)
  - `wordCount`: Target word count
  - `n`: Number of variations to generate
  - `enabledInsights`: Comma-separated insight types to include
  - `disabledInsights`: Comma-separated insight types to exclude
  - `valueProposition`: Your company's value proposition
  - `salesAsset`: Sales collateral to reference

  ## 🎨 Writing Styles (Email)

  - **Challenger Sale**: Challenge prospect's thinking with insights
  - **Consultative**: Advisory approach with expert positioning
  - **CXO Pitch**: Direct, strategic communication for executives
  - **Data-Driven**: Focus on metrics and ROI
  - **Problem-Solver**: Identify and solve specific challenges
  - **Storyteller**: Use narratives and case studies
  - **Value-Based**: Emphasize business value and outcomes

  ## 🌍 Supported Languages

  - English, Spanish, French, German, Italian
  - Portuguese, Dutch, Russian, Chinese, Japanese

  ## 💡 Example Workflows

  ### Lead Qualification + Content Generation

  1. **HTTP Request** → Get prospect data from CRM
  2. **Autobound** → Generate personalized email
  3. **Send Email** → Deliver via your email service
  4. **CRM Update** → Log the outreach

  ### Multi-Channel Outreach

  1. **Autobound** → Generate email content
  2. **Autobound** → Generate LinkedIn message
  3. **Autobound** → Generate call script
  4. **Parallel execution** → Send via multiple channels

  ### Content A/B Testing

  1. **Autobound** → Generate 3 email variations (`n: 3`)
  2. **Function** → Randomly select version
  3. **Send Email** → Deliver selected variation
  4. **Track** → Monitor response rates

  ## 🔧 Troubleshooting

  ### Common Issues

  1. **Node not appearing**: Restart n8n after installation
  2. **Credential errors**: Verify API key in Autobound dashboard
  3. **Rate limits**: Implement delays between requests
  4. **Large responses**: Consider using pagination for insights

  ### Debug Mode

  Enable debug logging to see request/response details:

  ```json
  {
  	"debug": true
  }
  ```

  ## 📊 API Limits

  - **Rate Limits**: Respect Autobound's API rate limits
  - **Content Length**: Max 500 words for generated content
  - **Variations**: Max 5 variations per request
  - **Sequences**: Max 10 emails per sequence

  ## 🤝 Contributing

  This is a community node. Contributions are welcome!

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

  ## 📄 License

  MIT License - see [LICENSE](LICENSE) file for details.

  ## 🔗 Links

  - [Autobound Website](https://autobound.ai)
  - [Autobound API Documentation](https://autobound-api.readme.io/)
  - [n8n Documentation](https://docs.n8n.io/)
  - [Community Nodes Guide](https://docs.n8n.io/integrations/community-nodes/)

  ## 📞 Support

  - **Issues**: [GitHub Issues](https://github.com/jasonhowie/n8n-nodes-autobound/issues)
  - **Autobound Help Center**: [https://help.autobound.ai/en](https://help.autobound.ai/en)
  - **n8n Community**: [n8n Community Forum](https://community.n8n.io/)

  ## 📋 Changelog

  ### v2.3.2 (Latest)

  - **Fixed**: Email sequences now properly parse and return individual emails as separate items
    - When generating an email sequence, each email is now returned as its own item with proper structure
    - Each item includes the email subject, body, and metadata (insights used, value props, etc.)
    - Items are numbered (1 of 3, 2 of 3, etc.) for easy identification

  ### v2.3.1

  - Fixed credential test configuration
  - Updated Insights API from v1.2 to v1.4
  - Updated installation documentation for cloud users

  ### v2.2.1

  - Fixed npm package logo display

  ### v2.0.0

  - Renamed package from `n8n-node-autobound` to `n8n-nodes-autobound`
  - Added Generate Insights API support (v1.2)
  - Multi-resource node structure
  - 350+ insight types support

  ---

  Made with ❤️ by the n8n community and [Autobound](https://autobound.ai)

ai_documentation_summary:
  {"purpose":"Generates AI-powered personalized sales content (emails, LinkedIn messages, cold call scripts) and retrieves prospect/company insights using Autobound's API.","capabilities":["Generate personalized email campaigns","Generate LinkedIn connection requests and messages","Generate cold call scripts","Retrieve prospect and company insights","Generate multi-step email sequences","Rewrite existing content","Generate multiple content variations","Filter insights by inclusion/exclusion rules","Support 10+ languages","Apply 7+ writing styles"],"authentication":"API key required (Autobound API key)","commonUseCases":["Automated cold outreach campaigns","Personalized email sequences for sales teams","LinkedIn prospecting automation","Lead qualification with insight retrieval","Content optimization and rewriting"],"limitations":["Community node (requires n8n Pro/Enterprise plan for n8n Cloud)","Requires valid Autobound API key","Self-hosted n8n requires manual installation and restart"],"relatedNodes":["HTTP Request","Wait","Switch","Set","Split In Batches"]}


node_type: n8n-nodes-featherless.featherless
package_name: n8n-nodes-featherless
display_name: Featherless
description: Interact with Featherless API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs: "={{[\"main\"]}}"
updated_at: 2026-07-14 14:40:33
author_name: darinverheijke
author_github_url: https://github.com/featherlessai/
npm_package_name: n8n-nodes-featherless
npm_version: 0.1.6
community_fetched_at: 2026-07-14T14:40:33.158Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Chat",
          "value": "chat",
          "action": "Send a chat message",
          "description": "Send a chat message"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Chat",
      "value": "chat",
      "action": "Send a chat message",
      "description": "Send a chat message"
    }
  ]

npm_readme:
  # n8n-nodes-featherless

  This is an n8n community node for Featherless API integration. It allows you to interact with various AI models through the Featherless AI platform directly from your n8n workflows.

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

  [Featherless](https://featherless.ai/) is a platform that provides access to over 10,000+ open-weight models through a unified API.

  ## Features

  - Interact with multiple AI models through a single node
  - Send chat messages to AI models
  - Customize model parameters such as temperature, max tokens, frequency penalty, and presence penalty
  - View truncated model descriptions in the model selector
  - Easy integration with n8n workflows

  ## Installation

  ### Community Node (Recommended)

  To install this node as a community node in n8n, follow these steps:

  1. Open your n8n instance
  2. Go to "Settings" > "Community Nodes"
  3. Select "Install"
  4. Enter `n8n-nodes-featherless` in the "Enter npm package name" field
  5. Agree to the risks of using community nodes (if prompted)
  6. Click "Install"

  After installation, the node will be available in the "Featherless" category in the node palette.

  ### Manual Installation (Advanced)

  If you prefer manual installation or are using a custom n8n setup:

  1. Open your n8n installation directory
  2. Navigate to the `nodes` subdirectory
  3. Run the following command:
     ```
     npm install n8n-nodes-featherless
     ```
  4. Restart your n8n instance

  **Note:** If you're using Docker or a server deployment, you may need to rebuild your container or restart your server for the changes to take effect.

  ### Troubleshooting

  If you encounter issues with the node not updating to new versions correctly or not displaying changes inside n8n, try the following:

  1. Clear your browser cache
  2. Restart your n8n instance
  3. If using Docker, rebuild and restart your container:
     ```
     docker-compose down
     docker-compose build
     docker-compose up -d
     ```
  4. For server deployments, restart the n8n service:
     ```
     sudo systemctl restart n8n
     ```

  ## Usage

  1. Add the Featherless node to your workflow
  2. Configure the Featherless API credentials (see Configuration section)
  3. Select the desired operation (currently only 'Chat' is available)
  4. Enter the model ID you want to use (click "View Available Models" button to see options)
  5. (Optional) Provide a system prompt to set the behavior of the AI
  6. Enter your message
  7. Adjust additional parameters as needed (temperature, max tokens, etc.)
  8. Execute the node to receive the AI's response

  ## Model Selection

  Enter the model ID directly in the "Model Name or ID" field. Use the "View Available Models" button next to the input field to open the [Featherless Models page](https://featherless.ai/models) in a new tab, where you can browse and copy the model IDs of available models.

  ## Configuration

  ### Featherless API Credentials

  To use this node, you need to set up Featherless API credentials:

  1. Sign up for an account at [Featherless](https://featherless.ai/)
  2. Generate an API key in your Featherless dashboard
  3. In n8n, create a new credential of type 'Featherless API'
  4. Enter your API key

  ### Node Parameters

  - **Operation**: Currently, only 'Chat' is available
  - **Model**: Enter the model ID you want to use (e.g., "meta-llama/Meta-Llama-3.1-8B-Instruct")
  - **System Prompt**: (Optional) Set the behavior or role of the AI assistant
  - **Message**: The user's input message to the AI
  - **Temperature**: Controls the randomness of the AI's output (0.0 to 1.0)
  - **Additional Fields**: 
    - **Frequency Penalty**: Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far.
    - **Max Tokens**: The maximum number of tokens to generate in the chat completion.
    - **Presence Penalty**: Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far.
    - **Top P**: An alternative to sampling with temperature, called nucleus sampling. Top_p of 0.1 means only the tokens comprising the top 10% probability mass are considered.

  ## Examples

  ### Basic Chat Workflow

  1. Add a "Manual" trigger node
  2. Connect an Featherless node
  3. Configure the Featherless node:
     - Operation: Chat
     - Model: Enter a model ID (e.g., "deepseek-ai/DeepSeek-V3-0324")
     - Message: "Hello, can you explain what n8n is?"
  4. Execute the workflow
  5. The Featherless node will return the AI's response explaining n8n

  ### Dynamic System Prompt

  1. Start with a "Manual" trigger node
  2. Add a "Set" node to define a variable for the system prompt
  3. Connect a Featherless node
  4. Configure the Featherless node:
     - Operation: Chat
     - Model: Enter a model ID (use the "View Available Models" button to see options)
     - System Prompt: {{$node["Set"].json["systemPrompt"]}}
     - Message: "What's your primary function?"
  5. Execute the workflow
  6. The AI will respond based on the system prompt set in the "Set" node

  ## Support

  If you encounter any issues or have questions about this node, please [open an issue](https://github.com/darinverheijke/n8n-nodes-featherless/issues) on the GitHub repository.

  ## Contributing

  Contributions to improve this node are welcome. Please follow these steps:

  1. Fork the repository
  2. Create a new branch for your feature
  3. Commit your changes
  4. Push to the branch
  5. Create a new Pull Request

  ## License

  This project is licensed under the [MIT License](LICENSE.md).

  ## About n8n
  n8n is a free and open [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation tool. It can be self-hosted, easily extended, and used to automate workflows across various services and applications. n8n enables you to connect anything to everything.

  ## About Featherless
  Featherless AI is a serverless AI inference platform that offers access to over 10,000+ open-source models. Our goal is to make all AI models available for serverless inference. We provide inference via API to a continually expanding library of open-weight models.

  ## Changelog

  For a full list of changes, please refer to the [CHANGELOG.md](CHANGELOG.md) file.

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with Featherless AI's API to send chat messages to over 10,000+ open-weight models.","capabilities":["Send chat messages to AI models","Select from multiple open-weight models via API","Customize generation parameters (temperature, max tokens, frequency penalty, presence penalty, top p)","Set system prompts to define AI behavior","View available models through integrated browser interface"],"authentication":"API key required (Featherless API credentials)","commonUseCases":["Integrating open-weight LLMs into n8n workflows","Building chatbot applications with customizable models","Automating text generation tasks with dynamic system prompts"],"limitations":["Currently supports only 'Chat' operation type","Community node requires manual installation or community node setup","Model selection requires manual ID entry or browser lookup"],"relatedNodes":["Manual Trigger","Set","Code","HTTP Request"]}


node_type: n8n-nodes-jigsawstack.jigsawStack
package_name: n8n-nodes-jigsawstack
display_name: JigsawStack
description: Use JigsawStack API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  {
  "type": "main"
  }
  ]

updated_at: 2026-07-14 14:40:33
author_name: yoeven
author_github_url: https://github.com/JigsawStack/n8n-integration.git
npm_package_name: n8n-nodes-jigsawstack
npm_version: 0.0.10
community_fetched_at: 2026-07-14T14:40:33.159Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "translate-text",
      "options": [
        {
          "name": "AI Scrape",
          "value": "ai-scrape"
        },
        {
          "name": "Analyze Sentiment",
          "value": "analyze-sentiment"
        },
        {
          "name": "Convert to SQL",
          "value": "convert-to-sql"
        },
        {
          "name": "Generate Embedding",
          "value": "generate-embedding"
        },
        {
          "name": "HTML to Any",
          "value": "html-to-any"
        },
        {
          "name": "Image Generation",
          "value": "image-generation"
        },
        {
          "name": "Make Prediction",
          "value": "make-prediction"
        },
        {
          "name": "NSFW Detection",
          "value": "nsfw-detection"
        },
        {
          "name": "Object Detection",
          "value": "object-detection"
        },
        {
          "name": "Process Image",
          "value": "process-image"
        },
        {
          "name": "Profanity Detection",
          "value": "profanity-detection"
        },
        {
          "name": "Search Web",
          "value": "search-web"
        },
        {
          "name": "Spam Detection",
          "value": "spam-detection"
        },
        {
          "name": "Speech to Text",
          "value": "speech-to-text"
        },
        {
          "name": "Spell Check",
          "value": "spell-check"
        },
        {
          "name": "Summary",
          "value": "summary"
        },
        {
          "name": "Text to Speech",
          "value": "text-to-speech"
        },
        {
          "name": "Translate",
          "value": "translate-text"
        },
        {
          "name": "Translate Image",
          "value": "translate-image"
        },
        {
          "name": "Web Suggestion",
          "value": "web-suggestion"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "translate-text",
      "options": [
        {
          "name": "Translate Text",
          "value": "translate-text",
          "action": "Translate text",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/translate\"}}",
              "body": {
                "text": "={{$parameter.text}}",
                "target_language": "={{$parameter.target_language}}"
              },
              "method": "POST"
            }
          },
          "description": "Translate text from one language to another"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "translate-text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search-web",
      "options": [
        {
          "name": "Search Web",
          "value": "search-web",
          "action": "Search the web",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/web/search\"}}",
              "body": {
                "query": "={{$parameter.query}}",
                "byo_urls": "={{$parameter.byo_urls}}",
                "ai_overview": "={{$parameter.ai_overview}}",
                "safe_search": "={{$parameter.safe_search}}",
                "spell_check": "={{$parameter.spell_check}}",
                "deep_research": "={{$parameter.deep_research}}",
                "deep_research_config": "={{$parameter.deep_research_config}}"
              },
              "method": "POST"
            }
          },
          "description": "Search the web using JigsawStack AI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search-web"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate-embedding",
      "options": [
        {
          "name": "Generate Embedding",
          "value": "generate-embedding",
          "action": "Generate embedding",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/embedding\"}}",
              "body": {
                "url": "={{$parameter.url ? $parameter.url : undefined}}",
                "text": "={{$parameter.text}}",
                "type": "={{$parameter.type}}",
                "file_content": "={{$parameter.file_content}}",
                "file_store_key": "={{$parameter.file_store_key ? $parameter.file_store_key : undefined}}",
                "token_overflow_mode": "={{$parameter.token_overflow_mode}}"
              },
              "method": "POST"
            }
          },
          "description": "Generate vector embeddings from various content types including text, images, audio, and PDF files"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "generate-embedding"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "analyze-sentiment",
      "options": [
        {
          "name": "Analyze Sentiment",
          "value": "analyze-sentiment",
          "action": "Analyze sentiment",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/sentiment\"}}",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          },
          "description": "Perform line by line sentiment analysis on any text with detailed emotion detection"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "analyze-sentiment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "text-to-speech",
      "options": [
        {
          "name": "Text to Speech",
          "value": "text-to-speech",
          "action": "Convert text to speech",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/tts\"}}",
              "body": {
                "text": "={{$parameter.text}}",
                "accent": "={{$parameter.accent === \"other\" ? $parameter.accent_custom : $parameter.accent}}",
                "voice_id": "={{$parameter.voice_id}}",
                "return_type": "={{$parameter.return_type}}"
              },
              "method": "POST"
            }
          },
          "description": "Transform text into natural-sounding human-like AI voices"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "text-to-speech"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "speech-to-text",
      "options": [
        {
          "name": "Speech to Text",
          "value": "speech-to-text",
          "action": "Transcribe video and audio to text",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/transcribe\"}}",
              "body": {
                "url": "={{$parameter.audioSource === \"url\" ? $parameter.url : undefined}}",
                "language": "={{$parameter.language && $parameter.language !== \"\" ? $parameter.language : undefined}}",
                "translate": "={{$parameter.translate !== undefined ? $parameter.translate : undefined}}",
                "batch_size": "={{$parameter.batch_size && $parameter.batch_size > 0 ? $parameter.batch_size : undefined}}",
                "by_speaker": "={{$parameter.by_speaker !== undefined ? $parameter.by_speaker : undefined}}",
                "webhook_url": "={{$parameter.webhook_url && $parameter.webhook_url !== \"\" ? $parameter.webhook_url : undefined}}",
                "file_store_key": "={{$parameter.audioSource === \"file_store_key\" ? $parameter.file_store_key : undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Transcribe video and audio files with ease leveraging Whisper large V3 AI model"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "speech-to-text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "image-generation",
      "options": [
        {
          "name": "Image Generation",
          "value": "image-generation",
          "action": "Generate image",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/image_generation\"}}",
              "body": {
                "url": "={{$parameter.url ? $parameter.url : undefined}}",
                "steps": "={{$parameter.steps}}",
                "width": "={{$parameter.width}}",
                "height": "={{$parameter.height}}",
                "prompt": "={{$parameter.prompt}}",
                "return_type": "={{$parameter.return_type}}",
                "aspect_ratio": "={{$parameter.aspect_ratio}}",
                "output_format": "={{$parameter.output_format}}",
                "advance_config": "={{JSON.parse($parameter.advance_config)}}",
                "file_store_key": "={{$parameter.file_store_key}}"
              },
              "method": "POST"
            }
          },
          "description": "Generate an image using JigsawStack AI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image-generation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "nsfw-detection",
      "options": [
        {
          "name": "NSFW Detection",
          "value": "nsfw-detection",
          "action": "NSFW Detection",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/validate/nsfw\"}}",
              "body": {
                "url": "={{$parameter.url}}"
              },
              "method": "POST"
            }
          },
          "description": "Detect if the text or content is NSFW"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "nsfw-detection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "profanity-detection",
      "options": [
        {
          "name": "Profanity Detection",
          "value": "profanity-detection",
          "action": "Profanity detection",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/validate/profanity\"}}",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          },
          "description": "Detect if the text or content is profane"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "profanity-detection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "spell-check",
      "options": [
        {
          "name": "Spell Check",
          "value": "spell-check",
          "action": "Spell check",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/validate/spell_check\"}}",
              "body": {
                "text": "={{$parameter.text}}",
                "language_code": "={{$parameter.language_code}}"
              },
              "method": "POST"
            }
          },
          "description": "Check the spelling of the text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "spell-check"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "spam-detection",
      "options": [
        {
          "name": "Spam Detection",
          "value": "spam-detection",
          "action": "Spam detection",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/validate/spam_check\"}}",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          },
          "description": "Detect if the text or content is spam"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "spam-detection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "summary",
      "options": [
        {
          "name": "Summary",
          "value": "summary",
          "action": "Summary",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/summary\"}}",
              "body": {
                "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
                "text": "={{$parameter.text}}",
                "type": "={{$parameter.type}}",
                "max_points": "={{$parameter.max_points}}",
                "file_store_key": "={{$parameter.file_store_key && $parameter.file_store_key !== \"\" ? $parameter.file_store_key : undefined}}",
                "max_characters": "={{$parameter.max_characters}}"
              },
              "method": "POST"
            }
          },
          "description": "Generate concise, intelligent summaries of text or documents with AI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "summary"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "make-prediction",
      "options": [
        {
          "name": "Make Prediction",
          "value": "make-prediction",
          "action": "Make prediction",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/prediction\"}}",
              "body": {
                "steps": "={{$parameter.steps}}",
                "dataset": "={{JSON.parse($parameter.dataset)}}"
              },
              "method": "POST"
            }
          },
          "description": "Forecast a wide range of time series data in seconds with one simple API and no data training"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "make-prediction"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "convert-to-sql",
      "options": [
        {
          "name": "Convert to SQL",
          "value": "convert-to-sql",
          "action": "Convert natural language to SQL",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/sql\"}}",
              "body": {
                "prompt": "={{$parameter.prompt}}",
                "database": "={{$parameter.database}}",
                "sql_schema": "={{$parameter.sql_schema}}",
                "file_store_key": "={{$parameter.file_store_key}}"
              },
              "method": "POST"
            }
          },
          "description": "Convert natural language to SQL queries for various database types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "convert-to-sql"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "web-suggestion",
      "options": [
        {
          "name": "Web Suggestion",
          "value": "web-suggestion",
          "action": "Web suggestion",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/web/search/suggest?query=\" + $parameter.query}}",
              "method": "GET"
            }
          },
          "description": "Get web suggestions for a given query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "web-suggestion"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "ai-scrape",
      "options": [
        {
          "name": "AI Scrape",
          "value": "ai-scrape",
          "action": "Scrape website with AI",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/scrape\"}}",
              "body": {
                "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
                "html": "={{$parameter.html && $parameter.html !== \"\" ? $parameter.html : undefined}}",
                "scale": "={{$parameter.scale && $parameter.scale >= 1 ? $parameter.scale : undefined}}",
                "width": "={{$parameter.width && $parameter.width > 0 ? $parameter.width : undefined}}",
                "height": "={{$parameter.height && $parameter.height > 0 ? $parameter.height : undefined}}",
                "cookies": "={{$parameter.cookies && $parameter.cookies !== \"\" ? JSON.parse($parameter.cookies) : undefined}}",
                "wait_for": "={{$parameter.wait_for && $parameter.wait_for !== \"\" ? JSON.parse($parameter.wait_for) : undefined}}",
                "byo_proxy": "={{$parameter.byo_proxy && $parameter.byo_proxy !== \"\" ? JSON.parse($parameter.byo_proxy) : undefined}}",
                "is_mobile": "={{$parameter.is_mobile !== undefined ? $parameter.is_mobile : undefined}}",
                "size_preset": "={{$parameter.size_preset && $parameter.size_preset !== \"\" ? $parameter.size_preset : undefined}}",
                "goto_options": "={{$parameter.goto_options && $parameter.goto_options !== \"\" ? JSON.parse($parameter.goto_options) : undefined}}",
                "http_headers": "={{$parameter.http_headers && $parameter.http_headers !== \"\" ? JSON.parse($parameter.http_headers) : undefined}}",
                "page_position": "={{$parameter.page_position && $parameter.page_position > 0 ? $parameter.page_position : undefined}}",
                "advance_config": "={{$parameter.advance_config && $parameter.advance_config !== \"\" ? JSON.parse($parameter.advance_config) : undefined}}",
                "element_prompts": "={{$parameter.element_prompts && $parameter.element_prompts.length > 0 ? $parameter.element_prompts : undefined}}",
                "force_rotate_proxy": "={{$parameter.force_rotate_proxy !== undefined ? $parameter.force_rotate_proxy : undefined}}",
                "root_element_selector": "={{$parameter.root_element_selector && $parameter.root_element_selector !== \"\" ? $parameter.root_element_selector : undefined}}",
                "reject_request_pattern": "={{$parameter.reject_request_pattern && $parameter.reject_request_pattern.length > 0 ? $parameter.reject_request_pattern : undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Scrape any website instantly and get consistent structured data in seconds without writing any CSS selector code"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ai-scrape"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "html-to-any",
      "options": [
        {
          "name": "HTML to Any",
          "value": "html-to-any",
          "action": "Convert HTML/URL to image or PDF",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/web/html_to_any\"}}",
              "body": {
                "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
                "html": "={{$parameter.html && $parameter.html !== \"\" ? $parameter.html : undefined}}",
                "type": "={{$parameter.type}}",
                "scale": "={{$parameter.scale && $parameter.scale >= 1 ? $parameter.scale : undefined}}",
                "width": "={{$parameter.width && $parameter.width > 0 ? $parameter.width : undefined}}",
                "height": "={{$parameter.height && $parameter.height > 0 ? $parameter.height : undefined}}",
                "quality": "={{$parameter.quality && $parameter.quality > 0 ? $parameter.quality : undefined}}",
                "dark_mode": "={{$parameter.dark_mode !== undefined ? $parameter.dark_mode : undefined}}",
                "full_page": "={{$parameter.full_page !== undefined ? $parameter.full_page : undefined}}",
                "is_mobile": "={{$parameter.is_mobile !== undefined ? $parameter.is_mobile : undefined}}",
                "return_type": "={{$parameter.return_type}}",
                "size_preset": "={{$parameter.size_preset && $parameter.size_preset !== \"\" ? $parameter.size_preset : undefined}}",
                "goto_options": "={{$parameter.goto_options && $parameter.goto_options !== \"\" ? JSON.parse($parameter.goto_options) : undefined}}",
                "pdf_page_range": "={{$parameter.pdf_page_range && $parameter.pdf_page_range !== \"\" ? $parameter.pdf_page_range : undefined}}",
                "omit_background": "={{$parameter.omit_background !== undefined ? $parameter.omit_background : undefined}}",
                "pdf_print_background": "={{$parameter.pdf_print_background !== undefined ? $parameter.pdf_print_background : undefined}}",
                "use_graphic_renderer": "={{$parameter.use_graphic_renderer !== undefined ? $parameter.use_graphic_renderer : undefined}}",
                "pdf_display_header_footer": "={{$parameter.pdf_display_header_footer !== undefined ? $parameter.pdf_display_header_footer : undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Capture screenshots of a website, convert HTML to both image and PDF formats"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "html-to-any"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "process-image",
      "options": [
        {
          "name": "Process Image",
          "value": "process-image",
          "action": "Process image with v ocr",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/vocr\"}}",
              "body": {
                "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
                "prompt": "={{$parameter.prompt && $parameter.prompt !== \"\" ? $parameter.prompt : undefined}}",
                "page_range": "={{$parameter.page_range && $parameter.page_range !== \"\" ? JSON.parse($parameter.page_range) : undefined}}",
                "file_store_key": "={{$parameter.file_store_key && $parameter.file_store_key !== \"\" ? $parameter.file_store_key : undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Process an image using vOCR to recognize and extract data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "process-image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "translate-image",
      "options": [
        {
          "name": "Translate Image",
          "value": "translate-image",
          "action": "Translate image",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/translate/image\"}}",
              "body": {
                "url": "={{$parameter.url ? $parameter.url : undefined }}",
                "return_type": "={{$parameter.return_type}}",
                "file_store_key": "={{$parameter.file_store_key ? $parameter.file_store_key : undefined}}",
                "target_language": "={{$parameter.target_language}}"
              },
              "method": "POST"
            }
          },
          "description": "Translate image from one language to another"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "translate-image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "object-detection",
      "options": [
        {
          "name": "Object Detection",
          "value": "object-detection",
          "action": "Object detection",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/object_detection\"}}",
              "body": {
                "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
                "file_store_key": "={{$parameter.file_store_key && $parameter.file_store_key !== \"\" ? $parameter.file_store_key : undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Detect objects in an image"
        }
      ],
      "displayName": "Operation Object Detection",
      "displayOptions": {
        "show": {
          "resource": [
            "object-detection"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Translate Text",
      "value": "translate-text",
      "action": "Translate text",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/ai/translate\"}}",
          "body": {
            "text": "={{$parameter.text}}",
            "target_language": "={{$parameter.target_language}}"
          },
          "method": "POST"
        }
      },
      "description": "Translate text from one language to another",
      "resource": "translate-text"
    },
    {
      "name": "Search Web",
      "value": "search-web",
      "action": "Search the web",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/web/search\"}}",
          "body": {
            "query": "={{$parameter.query}}",
            "byo_urls": "={{$parameter.byo_urls}}",
            "ai_overview": "={{$parameter.ai_overview}}",
            "safe_search": "={{$parameter.safe_search}}",
            "spell_check": "={{$parameter.spell_check}}",
            "deep_research": "={{$parameter.deep_research}}",
            "deep_research_config": "={{$parameter.deep_research_config}}"
          },
          "method": "POST"
        }
      },
      "description": "Search the web using JigsawStack AI",
      "resource": "search-web"
    },
    {
      "name": "Generate Embedding",
      "value": "generate-embedding",
      "action": "Generate embedding",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/embedding\"}}",
          "body": {
            "url": "={{$parameter.url ? $parameter.url : undefined}}",
            "text": "={{$parameter.text}}",
            "type": "={{$parameter.type}}",
            "file_content": "={{$parameter.file_content}}",
            "file_store_key": "={{$parameter.file_store_key ? $parameter.file_store_key : undefined}}",
            "token_overflow_mode": "={{$parameter.token_overflow_mode}}"
          },
          "method": "POST"
        }
      },
      "description": "Generate vector embeddings from various content types including text, images, audio, and PDF files",
      "resource": "generate-embedding"
    },
    {
      "name": "Analyze Sentiment",
      "value": "analyze-sentiment",
      "action": "Analyze sentiment",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/ai/sentiment\"}}",
          "body": {
            "text": "={{$parameter.text}}"
          },
          "method": "POST"
        }
      },
      "description": "Perform line by line sentiment analysis on any text with detailed emotion detection",
      "resource": "analyze-sentiment"
    },
    {
      "name": "Text to Speech",
      "value": "text-to-speech",
      "action": "Convert text to speech",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/ai/tts\"}}",
          "body": {
            "text": "={{$parameter.text}}",
            "accent": "={{$parameter.accent === \"other\" ? $parameter.accent_custom : $parameter.accent}}",
            "voice_id": "={{$parameter.voice_id}}",
            "return_type": "={{$parameter.return_type}}"
          },
          "method": "POST"
        }
      },
      "description": "Transform text into natural-sounding human-like AI voices",
      "resource": "text-to-speech"
    },
    {
      "name": "Speech to Text",
      "value": "speech-to-text",
      "action": "Transcribe video and audio to text",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/ai/transcribe\"}}",
          "body": {
            "url": "={{$parameter.audioSource === \"url\" ? $parameter.url : undefined}}",
            "language": "={{$parameter.language && $parameter.language !== \"\" ? $parameter.language : undefined}}",
            "translate": "={{$parameter.translate !== undefined ? $parameter.translate : undefined}}",
            "batch_size": "={{$parameter.batch_size && $parameter.batch_size > 0 ? $parameter.batch_size : undefined}}",
            "by_speaker": "={{$parameter.by_speaker !== undefined ? $parameter.by_speaker : undefined}}",
            "webhook_url": "={{$parameter.webhook_url && $parameter.webhook_url !== \"\" ? $parameter.webhook_url : undefined}}",
            "file_store_key": "={{$parameter.audioSource === \"file_store_key\" ? $parameter.file_store_key : undefined}}"
          },
          "method": "POST"
        }
      },
      "description": "Transcribe video and audio files with ease leveraging Whisper large V3 AI model",
      "resource": "speech-to-text"
    },
    {
      "name": "Image Generation",
      "value": "image-generation",
      "action": "Generate image",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/ai/image_generation\"}}",
          "body": {
            "url": "={{$parameter.url ? $parameter.url : undefined}}",
            "steps": "={{$parameter.steps}}",
            "width": "={{$parameter.width}}",
            "height": "={{$parameter.height}}",
            "prompt": "={{$parameter.prompt}}",
            "return_type": "={{$parameter.return_type}}",
            "aspect_ratio": "={{$parameter.aspect_ratio}}",
            "output_format": "={{$parameter.output_format}}",
            "advance_config": "={{JSON.parse($parameter.advance_config)}}",
            "file_store_key": "={{$parameter.file_store_key}}"
          },
          "method": "POST"
        }
      },
      "description": "Generate an image using JigsawStack AI",
      "resource": "image-generation"
    },
    {
      "name": "NSFW Detection",
      "value": "nsfw-detection",
      "action": "NSFW Detection",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/validate/nsfw\"}}",
          "body": {
            "url": "={{$parameter.url}}"
          },
          "method": "POST"
        }
      },
      "description": "Detect if the text or content is NSFW",
      "resource": "nsfw-detection"
    },
    {
      "name": "Profanity Detection",
      "value": "profanity-detection",
      "action": "Profanity detection",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/validate/profanity\"}}",
          "body": {
            "text": "={{$parameter.text}}"
          },
          "method": "POST"
        }
      },
      "description": "Detect if the text or content is profane",
      "resource": "profanity-detection"
    },
    {
      "name": "Spell Check",
      "value": "spell-check",
      "action": "Spell check",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/validate/spell_check\"}}",
          "body": {
            "text": "={{$parameter.text}}",
            "language_code": "={{$parameter.language_code}}"
          },
          "method": "POST"
        }
      },
      "description": "Check the spelling of the text",
      "resource": "spell-check"
    },
    {
      "name": "Spam Detection",
      "value": "spam-detection",
      "action": "Spam detection",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/validate/spam_check\"}}",
          "body": {
            "text": "={{$parameter.text}}"
          },
          "method": "POST"
        }
      },
      "description": "Detect if the text or content is spam",
      "resource": "spam-detection"
    },
    {
      "name": "Summary",
      "value": "summary",
      "action": "Summary",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/ai/summary\"}}",
          "body": {
            "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
            "text": "={{$parameter.text}}",
            "type": "={{$parameter.type}}",
            "max_points": "={{$parameter.max_points}}",
            "file_store_key": "={{$parameter.file_store_key && $parameter.file_store_key !== \"\" ? $parameter.file_store_key : undefined}}",
            "max_characters": "={{$parameter.max_characters}}"
          },
          "method": "POST"
        }
      },
      "description": "Generate concise, intelligent summaries of text or documents with AI",
      "resource": "summary"
    },
    {
      "name": "Make Prediction",
      "value": "make-prediction",
      "action": "Make prediction",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/ai/prediction\"}}",
          "body": {
            "steps": "={{$parameter.steps}}",
            "dataset": "={{JSON.parse($parameter.dataset)}}"
          },
          "method": "POST"
        }
      },
      "description": "Forecast a wide range of time series data in seconds with one simple API and no data training",
      "resource": "make-prediction"
    },
    {
      "name": "Convert to SQL",
      "value": "convert-to-sql",
      "action": "Convert natural language to SQL",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/ai/sql\"}}",
          "body": {
            "prompt": "={{$parameter.prompt}}",
            "database": "={{$parameter.database}}",
            "sql_schema": "={{$parameter.sql_schema}}",
            "file_store_key": "={{$parameter.file_store_key}}"
          },
          "method": "POST"
        }
      },
      "description": "Convert natural language to SQL queries for various database types",
      "resource": "convert-to-sql"
    },
    {
      "name": "Web Suggestion",
      "value": "web-suggestion",
      "action": "Web suggestion",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/web/search/suggest?query=\" + $parameter.query}}",
          "method": "GET"
        }
      },
      "description": "Get web suggestions for a given query",
      "resource": "web-suggestion"
    },
    {
      "name": "AI Scrape",
      "value": "ai-scrape",
      "action": "Scrape website with AI",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/ai/scrape\"}}",
          "body": {
            "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
            "html": "={{$parameter.html && $parameter.html !== \"\" ? $parameter.html : undefined}}",
            "scale": "={{$parameter.scale && $parameter.scale >= 1 ? $parameter.scale : undefined}}",
            "width": "={{$parameter.width && $parameter.width > 0 ? $parameter.width : undefined}}",
            "height": "={{$parameter.height && $parameter.height > 0 ? $parameter.height : undefined}}",
            "cookies": "={{$parameter.cookies && $parameter.cookies !== \"\" ? JSON.parse($parameter.cookies) : undefined}}",
            "wait_for": "={{$parameter.wait_for && $parameter.wait_for !== \"\" ? JSON.parse($parameter.wait_for) : undefined}}",
            "byo_proxy": "={{$parameter.byo_proxy && $parameter.byo_proxy !== \"\" ? JSON.parse($parameter.byo_proxy) : undefined}}",
            "is_mobile": "={{$parameter.is_mobile !== undefined ? $parameter.is_mobile : undefined}}",
            "size_preset": "={{$parameter.size_preset && $parameter.size_preset !== \"\" ? $parameter.size_preset : undefined}}",
            "goto_options": "={{$parameter.goto_options && $parameter.goto_options !== \"\" ? JSON.parse($parameter.goto_options) : undefined}}",
            "http_headers": "={{$parameter.http_headers && $parameter.http_headers !== \"\" ? JSON.parse($parameter.http_headers) : undefined}}",
            "page_position": "={{$parameter.page_position && $parameter.page_position > 0 ? $parameter.page_position : undefined}}",
            "advance_config": "={{$parameter.advance_config && $parameter.advance_config !== \"\" ? JSON.parse($parameter.advance_config) : undefined}}",
            "element_prompts": "={{$parameter.element_prompts && $parameter.element_prompts.length > 0 ? $parameter.element_prompts : undefined}}",
            "force_rotate_proxy": "={{$parameter.force_rotate_proxy !== undefined ? $parameter.force_rotate_proxy : undefined}}",
            "root_element_selector": "={{$parameter.root_element_selector && $parameter.root_element_selector !== \"\" ? $parameter.root_element_selector : undefined}}",
            "reject_request_pattern": "={{$parameter.reject_request_pattern && $parameter.reject_request_pattern.length > 0 ? $parameter.reject_request_pattern : undefined}}"
          },
          "method": "POST"
        }
      },
      "description": "Scrape any website instantly and get consistent structured data in seconds without writing any CSS selector code",
      "resource": "ai-scrape"
    },
    {
      "name": "HTML to Any",
      "value": "html-to-any",
      "action": "Convert HTML/URL to image or PDF",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/web/html_to_any\"}}",
          "body": {
            "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
            "html": "={{$parameter.html && $parameter.html !== \"\" ? $parameter.html : undefined}}",
            "type": "={{$parameter.type}}",
            "scale": "={{$parameter.scale && $parameter.scale >= 1 ? $parameter.scale : undefined}}",
            "width": "={{$parameter.width && $parameter.width > 0 ? $parameter.width : undefined}}",
            "height": "={{$parameter.height && $parameter.height > 0 ? $parameter.height : undefined}}",
            "quality": "={{$parameter.quality && $parameter.quality > 0 ? $parameter.quality : undefined}}",
            "dark_mode": "={{$parameter.dark_mode !== undefined ? $parameter.dark_mode : undefined}}",
            "full_page": "={{$parameter.full_page !== undefined ? $parameter.full_page : undefined}}",
            "is_mobile": "={{$parameter.is_mobile !== undefined ? $parameter.is_mobile : undefined}}",
            "return_type": "={{$parameter.return_type}}",
            "size_preset": "={{$parameter.size_preset && $parameter.size_preset !== \"\" ? $parameter.size_preset : undefined}}",
            "goto_options": "={{$parameter.goto_options && $parameter.goto_options !== \"\" ? JSON.parse($parameter.goto_options) : undefined}}",
            "pdf_page_range": "={{$parameter.pdf_page_range && $parameter.pdf_page_range !== \"\" ? $parameter.pdf_page_range : undefined}}",
            "omit_background": "={{$parameter.omit_background !== undefined ? $parameter.omit_background : undefined}}",
            "pdf_print_background": "={{$parameter.pdf_print_background !== undefined ? $parameter.pdf_print_background : undefined}}",
            "use_graphic_renderer": "={{$parameter.use_graphic_renderer !== undefined ? $parameter.use_graphic_renderer : undefined}}",
            "pdf_display_header_footer": "={{$parameter.pdf_display_header_footer !== undefined ? $parameter.pdf_display_header_footer : undefined}}"
          },
          "method": "POST"
        }
      },
      "description": "Capture screenshots of a website, convert HTML to both image and PDF formats",
      "resource": "html-to-any"
    },
    {
      "name": "Process Image",
      "value": "process-image",
      "action": "Process image with v ocr",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/vocr\"}}",
          "body": {
            "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
            "prompt": "={{$parameter.prompt && $parameter.prompt !== \"\" ? $parameter.prompt : undefined}}",
            "page_range": "={{$parameter.page_range && $parameter.page_range !== \"\" ? JSON.parse($parameter.page_range) : undefined}}",
            "file_store_key": "={{$parameter.file_store_key && $parameter.file_store_key !== \"\" ? $parameter.file_store_key : undefined}}"
          },
          "method": "POST"
        }
      },
      "description": "Process an image using vOCR to recognize and extract data",
      "resource": "process-image"
    },
    {
      "name": "Translate Image",
      "value": "translate-image",
      "action": "Translate image",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/ai/translate/image\"}}",
          "body": {
            "url": "={{$parameter.url ? $parameter.url : undefined }}",
            "return_type": "={{$parameter.return_type}}",
            "file_store_key": "={{$parameter.file_store_key ? $parameter.file_store_key : undefined}}",
            "target_language": "={{$parameter.target_language}}"
          },
          "method": "POST"
        }
      },
      "description": "Translate image from one language to another",
      "resource": "translate-image"
    },
    {
      "name": "Object Detection",
      "value": "object-detection",
      "action": "Object detection",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/ai/object_detection\"}}",
          "body": {
            "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
            "file_store_key": "={{$parameter.file_store_key && $parameter.file_store_key !== \"\" ? $parameter.file_store_key : undefined}}"
          },
          "method": "POST"
        }
      },
      "description": "Detect objects in an image",
      "resource": "object-detection"
    }
  ]

npm_readme:
  <img width="1024" alt="Screenshot 2025-06-18 at 1 43 10 AM" src="https://github.com/user-attachments/assets/234f078b-641d-411f-bba2-4a7781f699b3" />

  # JigsawStack n8n Node

  This n8n node provides integration with JigsawStack's powerful AI and data processing APIs. It allows you to easily incorporate various AI capabilities into your n8n workflows.

  ## Features

  The JigsawStack node supports the following operations:

  - **Text Processing**
    - Translate text between languages
    - Generate text embeddings (supports text, images, audio, and PDF files)
    - Analyze sentiment
    - Check spelling
    - Detect profanity
    - Generate text summaries
    - Convert natural language to SQL queries

  - **Speech & Audio**
    - Text to Speech conversion
    - Speech to Text conversion with Whisper V3 (supports multiple languages, speaker identification, translation, and batch processing)

  - **Image Processing**
    - Generate images from text descriptions
    - Process images with AI-powered analysis
    - Detect objects in images
    - NSFW content detection
    - Visual OCR (VOCR) for extracting text and data from images
    - Translate text within images
    - Support for multi-page document processing

  - **Web & Data**
    - Web search with AI-powered results
    - AI-powered web scraping
    - HTML to Any conversion (screenshots, images, PDFs)
    - Web suggestions
    - Spam detection

  - **AI & Machine Learning**
    - Make predictions using trained models
    - Generate embeddings from multiple content types (text, images, audio, PDF)
    - Token overflow handling for large content

  ## Prerequisites

  - n8n instance (self-hosted or cloud)
  - Node.js >=20.15
  - JigsawStack API key

  ## Installation

  1. Install the node in your n8n instance:
     ```bash
     npm install n8n-node-jigsawstack
     ```

  2. Restart your n8n instance

  ## Authentication

  To use this node, you need to:

  1. Sign up for a JigsawStack account at [jigsawstack.com](https://jigsawstack.com)
  2. Get your API key from the JigsawStack dashboard
  3. In n8n, add your JigsawStack credentials:
     - Go to Settings > Credentials
     - Click "New"
     - Select "JigsawStack API"
     - Enter your API key
      
  ## Usage

  1. Add the JigsawStack node to your workflow
  2. Select the desired operation from the Resource dropdown
  3. Configure the operation-specific parameters
  4. Connect the node to other nodes in your workflow

  ## Available Resources

  - **Translate Text** - Translate text between different languages
  - **Translate Image** - Translate text within images
  - **Search Web** - Perform web searches
  - **Generate Embedding** - Create text embeddings for AI applications
  - **Analyze Sentiment** - Analyze the sentiment of text
  - **Text to Speech** - Convert text to speech
  - **Speech to Text** - Convert speech to text
  - **Image Generation** - Generate images from text descriptions
  - **NSFW Detection** - Detect inappropriate content in images
  - **Profanity Detection** - Detect profane language in text
  - **Spell Check** - Check and correct spelling in text
  - **Spam Detection** - Detect spam content
  - **Summary** - Generate text summaries
  - **Make Prediction** - Make predictions using AI models
  - **Convert to SQL** - Convert natural language to SQL queries
  - **Web Suggestion** - Get web search suggestions
  - **AI Scrape** - Scrape websites using AI
  - **HTML to Any** - Convert HTML/URLs to images (PNG, JPEG, WebP) or PDFs with screenshots
  - **Process Image** - Process and manipulate images
  - **Object Detection** - Detect objects in images
  - **Visual OCR (VOCR)** - Extract text from images

  ## Resources

  - [JigsawStack Documentation](https://docs.jigsawstack.com)
  - [n8n Documentation](https://docs.n8n.io)
  - [n8n Community](https://community.n8n.io)

  ## Support

  For support with this node:
  - Open an issue on [GitHub](https://github.com/JigsawStack/n8n-integration)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n node integrates with JigsawStack's API to perform diverse AI and data processing tasks including text analysis, speech conversion, image generation, and web scraping.","capabilities":["Translate text between languages","Generate text embeddings (text, images, audio, PDF)","Analyze sentiment","Check spelling","Detect profanity","Generate text summaries","Convert natural language to SQL queries","Text to Speech conversion","Speech to Text conversion with Whisper V3","Generate images from text descriptions"],"authentication":"API key required (configured via n8n Credentials > JigsawStack API)","commonUseCases":["Multi-language text translation workflows","Document processing and summarization","Image analysis and content moderation","Speech-to-text transcription","AI-powered web scraping and data extraction"],"limitations":[],"relatedNodes":["HTTP Request","Code","Wait Until","Split In Batches"]}


node_type: @rogerrogerio/n8n-nodes-rogerroger.rogerRoger
package_name: @rogerrogerio/n8n-nodes-rogerroger
display_name: RogerRoger
description: Interact with RogerRoger API for Person, Organization and Task resources
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: royrr
author_github_url: https://github.com/RogerRogerHQ/n8n-nodes-rogerroger.git
npm_package_name: @rogerrogerio/n8n-nodes-rogerroger
npm_version: 1.10.0
community_fetched_at: 2026-07-14T14:40:33.161Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Person",
          "value": "person"
        },
        {
          "name": "Organization",
          "value": "organization"
        },
        {
          "name": "Task",
          "value": "task"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get person",
          "description": "Get person"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many persons",
          "description": "Get many persons"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create person",
          "description": "Create person"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update person",
          "description": "Update person"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete person",
          "description": "Delete person"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "person"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get organization",
          "description": "Get organization"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many organizations",
          "description": "Get many organizations"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create organization",
          "description": "Create organization"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update organization",
          "description": "Update organization"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete organization",
          "description": "Delete organization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "organization"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get task",
          "description": "Get task"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many tasks",
          "description": "Get many tasks"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create task",
          "description": "Create task"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update task",
          "description": "Update task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete task",
          "description": "Delete task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get tag",
          "description": "Get tag"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many tags",
          "description": "Get many tags"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create tag",
          "description": "Create tag"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update tag",
          "description": "Update tag"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete tag",
          "description": "Delete tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get segment",
          "description": "Get segment"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many segments",
          "description": "Get many segments"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create segment",
          "description": "Create segment"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update segment",
          "description": "Update segment"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete segment",
          "description": "Delete segment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "segment"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get person",
      "description": "Get person",
      "resource": "person"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many persons",
      "description": "Get many persons",
      "resource": "person"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create person",
      "description": "Create person",
      "resource": "person"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update person",
      "description": "Update person",
      "resource": "person"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete person",
      "description": "Delete person",
      "resource": "person"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get organization",
      "description": "Get organization",
      "resource": "organization"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many organizations",
      "description": "Get many organizations",
      "resource": "organization"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create organization",
      "description": "Create organization",
      "resource": "organization"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update organization",
      "description": "Update organization",
      "resource": "organization"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete organization",
      "description": "Delete organization",
      "resource": "organization"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get task",
      "description": "Get task",
      "resource": "task"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many tasks",
      "description": "Get many tasks",
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create task",
      "description": "Create task",
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update task",
      "description": "Update task",
      "resource": "task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete task",
      "description": "Delete task",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get tag",
      "description": "Get tag",
      "resource": "tag"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many tags",
      "description": "Get many tags",
      "resource": "tag"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create tag",
      "description": "Create tag",
      "resource": "tag"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update tag",
      "description": "Update tag",
      "resource": "tag"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete tag",
      "description": "Delete tag",
      "resource": "tag"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get segment",
      "description": "Get segment",
      "resource": "segment"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many segments",
      "description": "Get many segments",
      "resource": "segment"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create segment",
      "description": "Create segment",
      "resource": "segment"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update segment",
      "description": "Update segment",
      "resource": "segment"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete segment",
      "description": "Delete segment",
      "resource": "segment"
    }
  ]

npm_readme:
  # n8n-nodes-rogerroger

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

  RogerRoger is a collaborative task and communication platform designed to streamline workflows by turning emails and chats into actionable tasks for teams.

  [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.

  ## Operations

  The node supports the following operations:

  - Person
    - Get
    - Get many
    - Create
    - Update
    - Delete
  - Organization
    - Get
    - Get many
    - Create
    - Update
    - Delete
  - Task
    - Get
    - Get many
    - Create
    - Update
    - Delete

  ## Credentials

  The node supports the API Key authentication method that is required to authenticate with the RogerRoger API.

  ## Compatibility

  Tested against n8n version 1.95.3.

  ## Usage

  1. **Generate an API Key**: Visit the [RogerRoger API Admin](https://app.rogerroger.io/admin/api) to create your API key.

  2. **Set Up Credentials in n8n**:
     - Navigate to the RogerRoger node in your n8n workflow.
     - Create a new credential and enter the API key you generated.

  3. **Select a Resource**:
     - Choose one of the available resources you want to interact with: Person, Organization, or Task.

  4. **Choose an Operation**:
     - Select the operation you wish to perform (e.g., Get, Create, Update, Delete).
     - Provide the necessary data for the selected operation.

  5. **Execute the Node**:
     - Run the node to perform the selected operations on the RogerRoger platform.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [RogerRoger documentation](https://developer.rogerroger.io)

  ## Version history

  - 1.0.0: Initial release
  - 1.0.1: README updated
  - 1.0.2:
  	- Updated README
  	- Chore: Moved repository to public Github
  	- Text changes to improve consistancy between RogerRoger and N8N
  	- Add fields "dueDate" and "organizations" to task resource
  - 1.0.3:
  	- Wrong path specified for node in package.json
  - 1.0.4:
  	- Wrong path to credentials file specified in package.json 
  - 1.0.5:
  	- Add credential test code
  - 1.0.6:
  	- Fix X-API-KEY header
  - 1.0.7:
  	- Update test endpoint
  - 1.0.8:
  	- Provide rules for credential test
  - 1.0.9
  	- Bump version
  - 1.10.0
      - Added a resource locator to more easily find individual people, organizations, or tasks
      - Improved error reporting by using not only toast notifications but also the output window of n8n
      - Restructured and modularized the code to improve maintainability
      - Get many will now use "return all" and "limit" to provide a list of items

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the RogerRoger API to manage Person, Organization, and Task resources within automated workflows.","capabilities":["Retrieve single Person records","Retrieve multiple Person records","Create Person records","Update Person records","Delete Person records","Retrieve single Organization records","Retrieve multiple Organization records","Create Organization records","Update Organization records","Delete Organization records"],"authentication":"API Key required","commonUseCases":["Automating team task management via email and chat conversion","Syncing organizational data between systems","Tracking and managing person-related workflows"],"limitations":["Community node (may have less support than official nodes)","Requires manual API key generation from RogerRoger admin panel"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code"]}


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

updated_at: 2026-07-14 14:40:33
author_name: richswier
author_github_url: https://github.com/raia-ai/n8n-node.git
npm_package_name: n8n-nodes-raia
npm_version: 1.0.12
community_fetched_at: 2026-07-14T14:40:33.162Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # 📡 n8n-nodes-raia

  **Custom n8n Node** to interact with the **Raia** platform for managing AI-powered and human-led conversations via SMS, Email, or Voice.

  ## 🚀 Features

  This node allows you to:
  - Start new conversations (SMS, Email)
  - Chat or prompt an agent
  - Use Raia's platform in a single, unified node

  ## 🔧 Node Actions

  | Action                     | Description                                                  |
  |---------------------------|--------------------------------------------------------------|
  | Start SMS Conversation    | Initiate a conversation via SMS                              |
  | Start Email Conversation  | Initiate a conversation via Email                            |
  | Prompt an Agent           | Send a prompt to an agent                                    |

  ## 🧩 Node Parameters

  ### Common Parameters (used in most actions)
  - **First Name**
  - **Last Name**
  - **Context** (e.g., "Support")
  - **Source** (e.g., "crm")
  - **fkId**
  - **fkUserId**

  ### Channel-Specific Parameters

  #### SMS
  - **Phone Number**
  - **SMS Introduction** (for SMS)

  #### Email
  - **Email Address**
  - **Email Subject**
  - **Email Introduction**
  - **Include Signature in Email** (boolean)

  ### Prompt Agent
  - **Prompt**

  ```json
  {
    "conversationId": "string",
    "messageId": "string",
    "userId": "string",
    "message": "string",
    "timestamp": "ISODate"
  }
  ```

  ## Installation

  Follow these steps to install this community node in your n8n instance:

  1. Open n8n.
  2. Go to **Settings** > **Community Nodes**.
  3. Click **Install Community Node**.
  4. Enter the name of this package: `n8n-nodes-raia`
  5. Click **Install**.

  For more details, see the [official n8n documentation](https://docs.n8n.io/integrations/community-nodes/installation/verified-install/).

  ## License

  [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the Raia API to manage AI-powered and human-led conversations across SMS, Email, and Voice channels.","capabilities":["Start new SMS conversations","Start new Email conversations","Send prompts to agents","Retrieve conversation details (conversationId, messageId, userId, message, timestamp)","Manage contact context via first name, last name, and source"],"authentication":"None (API credentials handled via node configuration)","commonUseCases":["Automated customer support via SMS","Email-based agent interactions","Integrating Raia's unified conversation platform into n8n workflows"],"limitations":[],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.email","n8n-nodes-core.sms"]}


node_type: n8n-nodes-gainium.Gainium
package_name: n8n-nodes-gainium
display_name: Gainium
description: Operates with the official Gainium API
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: aressanch
author_github_url: https://github.com/Gainium/
npm_package_name: n8n-nodes-gainium
npm_version: 0.5.3
community_fetched_at: 2026-07-14T14:40:33.163Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-gainium

  Integrate Gainium with n8n to manage bots, strategies, and deals directly in your workflows. This package lets you trigger actions, fetch data, and coordinate trading logic with the rest of your automation stack.

  ## ⚡ Gainium Overview

  [Gainium](https://gainium.io) is a platform for building and running automated trading strategies. Key features include:

  - Trading terminal
  - Grid, DCA, and Combo bots
  - Backtesting & paper trading
  - Market screener
  - Portfolio tracking
  - Risk tools & auto-compounding
  - Webhook-triggered actions

  ## 🤖 About n8n

  [n8n](https://n8n.io) is a workflow automation tool that connects APIs and services. Use these nodes to tie trading logic to alerts, signals, data sources, or messaging tools—no custom backend required.

  ---

  ## 📚 API Documentation

  📖 **Complete API Reference:** [https://api.gainium.io/api/docs/](https://api.gainium.io/api/docs/)

  > 💡 **Tip:** The interactive API documentation includes detailed endpoint descriptions, request/response examples, and a built-in testing interface to help you understand and implement each feature.

  ---

  ## 🚀 What You Can Do

  The nodes let you:

  - Trigger bots on signals or events
  - Monitor deals, positions, and PnL
  - Pause, resume, close, or adjust bots and deals
  - React to strategy alerts
  - Retrieve account and performance data
  - Combine with Telegram, Discord, TradingView, etc. for full workflows

  ---

  ## 🔧 Use Cases (Examples)

  - Rebalance: Fetch balances + external prices, adjust allocations via bot actions.
  - News / sentiment trigger: Pause or de-risk bots when negative sentiment spikes.
  - Scheduled profit taking: Cron step-down of position size or bot aggressiveness.
  - Volatility adaptation: Adjust grid/DCA parameters when volatility changes.
  - Arbitrage alerting: Compare prices across exchanges and notify or trigger a deal.
  - Chat control: Telegram command interface to pause, resume, or inspect deals.
  - Risk rules: Auto close or scale down deals at configured drawdown levels.
  - Template deployment: Create bots from stored presets (e.g. Airtable / Notion).
  - PnL logging: Push periodic performance snapshots to Sheets or Notion.

  ---

  ## 📦 Installation

  In your n8n instance or custom Docker setup:

      npm install n8n-nodes-gainium

  Then restart your n8n server.

  > This is a community node. You’ll need to enable community nodes in your `n8n` settings.

  ---

  ## 🔐 Authentication

  Set your Gainium API Key in the credentials section of the node. You can create an API key in your Gainium account settings.

  ---

  ## **🧩 Operations**

  The node groups operations by **Resource** (Bot, Deal, User, General). Where an action applies to
  multiple bot/deal types, pick the type from a **Bot Type** / **Deal Type** dropdown instead of choosing
  a separate node — e.g. one **List Bots** operation with a Grid/DCA/Combo selector.

  ### **Bot**

  - **List Bots** — paginated list by type (Grid / DCA / Combo)
  - **Start Bot**, **Stop Bot**, **Archive Bot**, **Restore Bot**
  - **Clone Bot**
  - **Update Bot** — DCA / Combo (Grid bots can't be updated)
  - **Change Bot Pairs** — add / remove / replace trading pairs

  ### **Deal**

  - **List Deals** — paginated list by type (DCA / Combo / Terminal), optional bot filter
  - **Update Deal**
  - **Start Deal** — open a new deal on a bot
  - **Close Deal** — close by market or cancel
  - **Manage Funds** — add or reduce funds on a deal

  ### **User**

  - **List Exchanges** — connected exchange accounts
  - **List Balances** — balances across exchanges

  ### **General**

  - **Crypto Screener** — query the screener (page, sort, filter model)
  - **Supported Exchanges**
  - **Custom API Call** — make an arbitrary signed call to any Gainium endpoint

  ### Paper vs live

  Account-scoped operations (Bot, Deal, User) expose a **Paper Trading** toggle. Turn it on to operate on
  your paper (demo) account instead of live.

  ---

  ## 🗂️ Versioning

  This is a **versioned node**, so existing workflows keep working when you update:

  - **v2** (default) targets the Gainium **API v2** (`/api/v2/...`) with the grouped operations above.
  - **v1** (legacy) targets the original `/api/*` endpoints. Workflows built on v1 stay on v1 untouched;
    new nodes default to v2.

  ---

  ## **🧠 Agent Tool**

  Provides a unified action/data interface for AI or rule-driven agents (OpenAI, Anthropic, LangChain, etc.) so they can inspect state and invoke supported bot or deal operations dynamically.

  ---

  ## 💡 Example Workflows

  1. TradingView signal → start bot via webhook
  2. De-risk on BTC dominance spike
  3. Profit alert when deal closes > X%
  4. Screener match → create / notify
  5. AI agent adjusts risk or pauses bots
  6. Natural language command interface (Telegram / Slack)
  7. Adaptive parameter tuning (volatility & volume)

  ---

  ## 🙋 Support

  Need help or a feature? Open an issue or visit the [community forum](https://community.gainium.io).

ai_documentation_summary:
  {"purpose":"This n8n node integrates with the Gainium trading platform to automate bot management, deal execution, and portfolio tracking within workflow automation.","capabilities":["Trigger bots on signals or events","Monitor deals, positions, and PnL","Pause, resume, close, or adjust bots and deals","React to strategy alerts","Retrieve account and performance data","Fetch grid, DCA, and combo bot configurations","Manage deal funds (add/reduce)","Access user exchanges and balances","Retrieve market screener data","Support AI agents via Agent Tool for dynamic bot/deal operations"],"authentication":"API Key required (configured in node credentials)","commonUseCases":["Rebalancing portfolio allocations via bot actions","Pausing or de-risking bots based on news/sentiment triggers","Scheduled profit taking and volatility adaptation","Arbitrage alerting and cross-exchange price comparison","Telegram/Slack command interfaces for bot control"],"limitations":["Community node requiring manual enabling in n8n settings","Some features (e.g., additional bot types) may not be fully implemented yet"],"relatedNodes":["n8n-nodes-github","n8n-nodes-telegram","n8n-nodes-discord","n8n-nodes-slack","n8n-nodes-webhook"]}


node_type: @copicake/n8n-nodes-copicake.copicake
package_name: @copicake/n8n-nodes-copicake
display_name: Copicake
description: Generate and retrieve images using Copicake API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: eragonj
author_github_url: https://github.com/Copicake/n8n-nodes-copicake.git
npm_package_name: @copicake/n8n-nodes-copicake
npm_version: 1.1.0
community_fetched_at: 2026-07-14T14:40:33.164Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "image",
      "options": [
        {
          "name": "Image",
          "value": "image"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an image",
          "description": "Create a new image from a template"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an image",
          "description": "Get an existing image by rendering ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create an image",
      "description": "Create a new image from a template",
      "resource": "image"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an image",
      "description": "Get an existing image by rendering ID",
      "resource": "image"
    }
  ]

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

  # n8n-nodes-copicake

  This is an n8n community node that lets you use [Copicake](https://copicake.com/) in your n8n workflows.

  Copicake is a data-driven image generation service that allows you to generate social media materials with just one click using templates and API calls.

  [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**.
  2. Select **Install**.
  3. Enter `n8n-nodes-copicake` in **Enter npm package name**.
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes: select **I understand the risks of installing unverified code from a public source**.
  5. Select **Install**.

  After installing the node, you can use it like any other node in your workflows.

  ### Manual Installation

  To get started install the package in your n8n root directory:

  ```bash
  npm install n8n-nodes-copicake
  ```

  For Docker-based deployments, add the following line before the font installation command in your [n8n Dockerfile](https://github.com/n8n-io/n8n/blob/master/docker/images/n8n/Dockerfile):

  ```dockerfile
  RUN cd /usr/local/lib/node_modules/n8n && npm install n8n-nodes-copicake
  ```

  ## Credentials

  You need to set up credentials to use this node:

  1. In n8n, go to **Credentials** and create new **Copicake API** credentials.
  2. Enter your Copicake API key.
     - You can get your API key from the [Copicake dashboard](https://copicake.com/).

  ## Operations

  This node supports the following operations:

  ### Image

  #### Create
  Create a new image from a template with custom changes.

  **Parameters:**
  - **Template ID** (required): The ID of the template to use for image generation
  - **Changes**: Array of changes to apply to the template elements
    - **Element Name**: The name of the element to modify
    - **Change Type**: Type of change (Text, Image, QR Code, Shape)
    - **Properties**: Specific properties based on change type:
      - **Text**: text, fill color, stroke color, text background color
      - **Image**: image URL, stroke color
      - **QR Code**: content, fill color, stroke color
      - **Shape**: fill color, stroke color
  - **Additional Options**:
    - **Format**: Output format (PNG or JPG)
    - **Max Wait Time (Seconds)**: Maximum time to wait for rendering completion (default: 60)
    - **Polling Interval (Seconds)**: How often to check rendering status (default: 2)
    - **Wait for Completion**: Whether to poll until rendering is complete (default: true)
    - **Webhook URL**: URL to receive webhook when image is ready

  **Asynchronous Processing:**
  By default, the node will automatically wait for the image rendering to complete before returning the final result. This includes polling the Copicake API every 2 seconds until the status becomes either `success` or `failed`, with a maximum wait time of 60 seconds. You can disable this behavior by setting "Wait for Completion" to false, which will return the initial response with `processing` status immediately.

  **Example:**
  ```json
  {
    "template_id": "jfwrFJdR3z1eF8BcEhSnAFyhxgOq",
    "changes": [
      {
        "name": "text-9so09m",
        "text": "hello world",
        "fill": "#ff0000"
      },
      {
        "name": "image-yeavh7",
        "src": "https://your_website.com/test.png"
      }
    ],
    "options": {
      "format": "png",
      "webhook_url": "https://your_website.com/webhook_url"
    }
  }
  ```

  #### Get
  Retrieve an existing image by its rendering ID.

  **Parameters:**
  - **Rendering ID** (required): The rendering ID of the image to retrieve

  **Example:**
  ```json
  {
    "rendering_id": "ki9ImK39lPRwb1oOpKbROkNWumFz"
  }
  ```

  ## Response Format

  ### Create Image Response
  ```json
  {
    "rendering_id": "xc17NtfyMaxPDCtz0ZjEZ4guBmiC",
    "status": "processing",
    "created_at": "2023-01-01T00:00:00Z"
  }
  ```

  ### Get Image Response
  ```json
  {
    "rendering_id": "xc17NtfyMaxPDCtz0ZjEZ4guBmiC",
    "status": "success",
    "permanent_url": "https://copicake.s3.ap-northeast-1.amazonaws.com/renderings/xc17NtfyMaxPDCtz0ZjEZ4guBmiC.png",
    "created_at": "2023-01-01T00:00:00Z",
    "completed_at": "2023-01-01T00:00:05Z"
  }
  ```

  ## Example Workflows

  ### Basic Image Generation
  1. **Manual Trigger** → **Copicake (Create Image)** → **HTTP Request** (to download image)

  ### Automated Social Media Posts
  1. **Schedule Trigger** → **Copicake (Create Image)** → **Twitter** (post with generated image)

  ### Dynamic Content Generation
  1. **Webhook** → **Set** (prepare data) → **Copicake (Create Image)** → **Email** (send with generated image)

  ## Resources

  - [Copicake API Documentation](https://docs.copicake.com/)
  - [Copicake Website](https://copicake.com/)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## Version History

  ### 0.1.0
  - Initial release
  - Support for Create Image and Get Image operations
  - Full support for all Copicake API features including text, image, QR code, and shape modifications

  ## License

  [MIT](https://github.com/copicake/n8n-nodes-copicake/blob/main/LICENSE.md)

ai_documentation_summary:
  {"purpose":"Generates and retrieves images using the Copicake API, allowing users to create social media materials with templates and custom modifications.","capabilities":["Create images from templates with custom text, images, QR codes, and shapes","Retrieve existing images by rendering ID","Support for PNG and JPG output formats","Asynchronous image generation with configurable polling intervals and wait times","Webhook support for receiving images when ready","Customization of text, images, QR codes, and shapes within templates"],"authentication":"API key required","commonUseCases":["Automated social media post generation","Dynamic content creation for marketing materials","Email campaigns with personalized images","Social media management workflows"],"limitations":["Community node (unverified code from public source)","Requires Copicake API key from external dashboard","Maximum wait time for image generation is 60 seconds","Limited to Copicake's available templates and features"],"relatedNodes":["HTTP Request","Schedule Trigger","Twitter","Email","Webhook"]}


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-07-14 14:40:33
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-07-14T14:40:33.165Z
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",
      "resource": "companies"
    },
    {
      "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",
      "resource": "companies"
    },
    {
      "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)",
      "resource": "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",
      "resource": "enrich"
    },
    {
      "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",
      "resource": "llm"
    },
    {
      "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",
      "resource": "rag"
    },
    {
      "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",
      "resource": "rag"
    },
    {
      "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",
      "resource": "rag"
    },
    {
      "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",
      "resource": "companies_related"
    },
    {
      "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",
      "resource": "companies_related"
    },
    {
      "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",
      "resource": "advanced_data"
    },
    {
      "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",
      "resource": "advanced_data"
    },
    {
      "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",
      "resource": "advanced_data"
    },
    {
      "name": "Geocoding",
      "value": "get_geocoding",
      "action": "Geocoding",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/geocoding",
          "method": "GET"
        }
      },
      "description": "Validate and format unstructured geographic data",
      "resource": "validation"
    },
    {
      "name": "Validate BIC Number",
      "value": "get_bic",
      "action": "Validate bic number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/bic",
          "method": "GET"
        }
      },
      "description": "Validate BIC numbers",
      "resource": "validation"
    },
    {
      "name": "Validate City",
      "value": "get_city",
      "action": "Validate city",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/city",
          "method": "GET"
        }
      },
      "description": "Validate (global) cities",
      "resource": "validation"
    },
    {
      "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)",
      "resource": "validation"
    },
    {
      "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)",
      "resource": "validation"
    },
    {
      "name": "Validate IBAN Number",
      "value": "get_iban",
      "action": "Validate iban number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/iban",
          "method": "GET"
        }
      },
      "description": "Validate IBAN numbers",
      "resource": "validation"
    },
    {
      "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",
      "resource": "validation"
    },
    {
      "name": "Validate LEI Number",
      "value": "get_lei",
      "action": "Validate lei number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/lei",
          "method": "GET"
        }
      },
      "description": "Validate LEI numbers",
      "resource": "validation"
    },
    {
      "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",
      "resource": "validation"
    },
    {
      "name": "Validate Postcode",
      "value": "get_postcode",
      "action": "Validate postcode",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/postcode",
          "method": "GET"
        }
      },
      "description": "Validate (global) postcodes",
      "resource": "validation"
    },
    {
      "name": "Validate URL",
      "value": "get_url",
      "action": "Validate URL",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/url",
          "method": "GET"
        }
      },
      "description": "Validate URL's",
      "resource": "validation"
    },
    {
      "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",
      "resource": "data_misc"
    },
    {
      "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",
      "resource": "data_misc"
    },
    {
      "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",
      "resource": "data_misc"
    },
    {
      "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).",
      "resource": "data_misc"
    },
    {
      "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",
      "resource": "data_misc"
    },
    {
      "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",
      "resource": "data_misc"
    },
    {
      "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",
      "resource": "data_misc"
    },
    {
      "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",
      "resource": "data_misc"
    }
  ]

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


