# nodes

node_type: n8n-nodes-templatefox.templateFox
package_name: n8n-nodes-templatefox
display_name: TemplateFox
description: Generate PDFs from templates using TemplateFox API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: vincentventalon
author_github_url: https://github.com/TemplateFoxPDF/
npm_package_name: n8n-nodes-templatefox
npm_version: 1.1.5
community_fetched_at: 2026-04-16T09:43:36.076Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "generatePdf",
      "options": [
        {
          "name": "Generate PDF",
          "value": "generatePdf",
          "action": "Generate a PDF from a template",
          "description": "Generate a PDF from a template"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate PDF",
      "value": "generatePdf",
      "action": "Generate a PDF from a template",
      "description": "Generate a PDF from a template"
    }
  ]

npm_readme:
  # n8n-nodes-templatefox

  This is an n8n community node for [TemplateFox](https://pdftemplateapi.com) - a PDF generation API that lets you create professional PDFs from templates.

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

  **npm:**
  ```bash
  npm install n8n-nodes-templatefox
  ```

  **n8n Desktop/Cloud:**
  1. Go to **Settings** > **Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-templatefox`
  4. Agree to the risks and click **Install**

  ## Operations

  ### Generate PDF

  Generate a PDF document from a template with your data.

  **Features:**
  - **Template Dropdown**: Select from your saved templates
  - **Dynamic Fields**: Fields automatically appear based on the selected template
  - **JSON Mode**: For advanced users who prefer raw JSON input
  - **Custom Filename**: Set a custom filename for the generated PDF
  - **URL Expiration**: Configure how long the PDF URL remains valid

  ## Credentials

  To use this node, you need a TemplateFox API key:

  1. Sign up at [pdftemplateapi.com](https://pdftemplateapi.com)
  2. Go to your [API Dashboard](https://pdftemplateapi.com/dashboard/api)
  3. Copy your API key
  4. In n8n, create new **TemplateFox API** credentials and paste your key

  ## Usage

  ### Basic Example

  1. Add the **TemplateFox** node to your workflow
  2. Configure your TemplateFox API credentials
  3. Select a template from the dropdown
  4. Fill in the template fields with your data
  5. Execute the workflow to generate a PDF

  ### Using JSON Mode

  For complex data structures (arrays, nested objects):

  1. Select **JSON** as the Data Input Mode
  2. Enter your data as JSON:
  ```json
  {
    "customer_name": "John Doe",
    "invoice_number": "INV-001",
    "items": [
      {"description": "Widget A", "quantity": 2, "price": 10.00},
      {"description": "Widget B", "quantity": 1, "price": 25.00}
    ]
  }
  ```

  ### Output

  The node returns:
  - `url`: Direct URL to download the PDF
  - `filename`: The PDF filename
  - `credits_remaining`: Your remaining API credits
  - `expires_in`: Seconds until the URL expires

  ## Resources

  - [TemplateFox Documentation](https://pdftemplateapi.com/docs)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [TemplateFox API Reference](https://pdftemplateapi.com/docs/api)

  ## Support

  - **TemplateFox Support**: support@pdftemplateapi.com
  - **GitHub Issues**: [Report bugs or request features](https://github.com/TemplateFoxPDF/n8n-nodes-templatefox/issues)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"Generates professional PDF documents from TemplateFox templates by sending data to the TemplateFox API and returning a downloadable URL.","capabilities":["Generate PDFs from saved templates","Support dynamic fields based on template selection","JSON mode for advanced data structures (arrays, nested objects)","Custom filename configuration","URL expiration time configuration","Return remaining API credits and expiration time"],"authentication":"API key required","commonUseCases":["Generating invoice PDFs from customer data","Creating personalized marketing materials","Producing contract documents with variable fields","Batch generating reports with complex data structures"],"limitations":["Requires external TemplateFox account and API key","URLs have expiration time limits","Credits are consumed per generation"],"relatedNodes":["HTTP Request","Code","PDF"]}


node_type: @hyperflow-global/n8n-nodes-hyperflow-whatsapp.hyperflowWhatsAppTrigger
package_name: @hyperflow-global/n8n-nodes-hyperflow-whatsapp
display_name: Hyperflow WhatsApp Trigger
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: alexjrmatos
author_github_url: https://github.com/hyperflow-global/n8n-nodes-hyperflow-whatsapp.git
npm_package_name: @hyperflow-global/n8n-nodes-hyperflow-whatsapp
npm_version: 1.0.11
community_fetched_at: 2026-04-16T09:43:36.077Z
description:
  Start the flow when WhatsApp events occur. The HTTP response (200 OK) is automatically sent when the webhook is received - do not use the "Respond to Webhook" node in this workflow.

npm_readme:
  # n8n-nodes-hyperflow-whatsapp

  n8n community node for Hyperflow WhatsApp API integration.

  ## Installation

  ### In n8n Desktop App

  1. Go to **Settings** > **Community Nodes**
  2. Select **Install a community node**
  3. Enter `@hyperflow-global/n8n-nodes-hyperflow-whatsapp`
  4. Click **Install**

  ### Manual Installation

  ```bash
  # Navigate to your n8n installation folder
  cd ~/.n8n

  # Install the package
  npm install @hyperflow-global/n8n-nodes-hyperflow-whatsapp
  ```

  ### Development Installation (Local)

  ```bash
  # Build the project
  npm install
  npm run build

  # Link to n8n
  npm link

  # In your n8n installation
  cd ~/.n8n
  npm link @hyperflow-global/n8n-nodes-hyperflow-whatsapp
  ```

  ## Configuration

  ### Credentials: Hyperflow WhatsApp Account

  1. In n8n, go to **Credentials** > **Add Credential**
  2. Search for "Hyperflow WhatsApp Account"
  3. Configure:
    - **API Key**: Your API key for authentication

  ## Available Nodes

  ### Hyperflow WhatsApp Trigger

  Webhook trigger that starts workflows when WhatsApp events occur.

  #### Supported Events


  | Event                     | Description                                                   |
  | ------------------------- | ------------------------------------------------------------- |
  | **Message Received**      | Triggered when a message is received                          |
  | **Message Status Update** | Triggered when message status changes (sent, delivered, read) |
  | **Button Click**          | Triggered when a button is clicked                            |
  | **List Selection**        | Triggered when a list item is selected                        |
  | **Flow Response**         | Triggered when a flow response is received                    |


  #### Options

  - **Filter Numbers**: Only trigger for specific phone numbers
  - **Ignore Own Status**: Ignore status updates for messages sent by this number

  #### Webhook URL

  After activating the workflow, copy the webhook URL provided by n8n and configure it in your Hyperflow API settings.

  ---

  ### Hyperflow WhatsApp

  Send WhatsApp messages through Hyperflow API. Supports multiple message types:

  #### Message Types


  | Type               | Description                                                           |
  | ------------------ | --------------------------------------------------------------------- |
  | **Text**           | Simple text message with optional buttons (postback, URL, voice call) |
  | **Image**          | Send an image with optional caption                                   |
  | **Video**          | Send a video with optional caption                                    |
  | **Audio**          | Send an audio file                                                    |
  | **File**           | Send a document (PDF, etc.)                                           |
  | **Sticker**        | Send a WhatsApp sticker                                               |
  | **Location**       | Send a location with coordinates                                      |
  | **Contact**        | Send a contact card (vCard)                                           |
  | **List**           | Interactive list with sections                                        |
  | **Template (HSM)** | Send approved message templates                                       |
  | **Flows**          | Interactive WhatsApp Flows                                            |
  | **Generic Card**   | Card with image, title, subtitle and buttons                          |
  | **Product**        | Single product from catalog                                           |
  | **Product List**   | Multiple products from catalog                                        |


  ## API Reference

  This node integrates with the Hyperflow WhatsApp API. All requests are made to:

  ```
  POST https://messaging.hyperflowapis.global/whatsapp/send-message
  ```

  With authentication via `api-key` header.

  ## Quick Use Guide - Self-hosted Version

  ### 1. Install the package

  In n8n: **Settings** > **Community Nodes** > **Install a community node** and enter:

  `@hyperflow-global/n8n-nodes-hyperflow-whatsapp`

  Or, from the shell in your n8n data directory (usually `~/.n8n`):

  ```bash
  npm install @hyperflow-global/n8n-nodes-hyperflow-whatsapp
  ```

  Restart n8n if prompted.

  ### 2. Credentials

  **Credentials** > **Add Credential** > **Hyperflow WhatsApp Account** and set the **API Key** from Hyperflow (from the WhatsApp accounts screen in the [Hyperflow integrations portal](https://integracoes.hyperflow.global/whatsapp)).

  ### 3. Available nodes


  | Node                           | Purpose                                                  |
  | ------------------------------ | -------------------------------------------------------- |
  | **Hyperflow WhatsApp**         | Send messages (text, media, templates, lists, and more). |
  | **Hyperflow WhatsApp Trigger** | Start workflows when WhatsApp events occur.              |


  ### 4. Sending a message

  Add **Hyperflow WhatsApp**, choose the credential, enter the **phone number with country code** (digits only, e.g. `5511999999999`), and select the message type.

  ### 5. Inbound events (webhook)

  In **Hyperflow WhatsApp Trigger**, pick the events you need, **activate the workflow**, and copy the **webhook URL** n8n shows. Register that URL in your Hyperflow API settings so events reach your workflow.

  ## Support

  - **Documentation**: [https://help.hyperflow.global/docs/whatsapp-api-hyperflow/whatsapp-api-hyperflow](https://help.hyperflow.global/docs/whatsapp-api-hyperflow/whatsapp-api-hyperflow)
  - **Email**: [faleconosco@hyperflow.global](mailto:faleconosco@hyperflow.global)

  ## License

  MIT


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

updated_at: 2026-04-16 09:43:36
author_name: mhelmich-mittwald
author_github_url: https://github.com/mittwald/n8n-nodes.git
npm_package_name: n8n-nodes-mittwald
npm_version: 1.7.1
community_fetched_at: 2026-04-16T09:43:36.077Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Project",
          "value": "Project"
        },
        {
          "name": "App",
          "value": "App"
        },
        {
          "name": "Server",
          "value": "Server"
        },
        {
          "name": "Support",
          "value": "Support"
        },
        {
          "name": "Contributor",
          "value": "Contributor"
        },
        {
          "name": "Domain",
          "value": "Domain"
        },
        {
          "name": "Database",
          "value": "Database"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Create",
      "options": [
        {
          "name": "Create",
          "value": "Create",
          "action": "Create a project on a server",
          "description": "Create a new project on a server"
        },
        {
          "name": "Create SFTP User",
          "value": "Create SFTP User",
          "action": "Create an SFTP user",
          "description": "Create an SFTP user for a project"
        },
        {
          "name": "Create SSH User",
          "value": "Create SSH User",
          "action": "Create an SSH user",
          "description": "Create an SSH user for a project"
        },
        {
          "name": "Delete SFTP User",
          "value": "Delete SFTP User",
          "action": "Delete an SFTP user",
          "description": "Delete an SFTP user by ID"
        },
        {
          "name": "Delete SSH User",
          "value": "Delete SSH User",
          "action": "Delete an SSH user",
          "description": "Delete an SSH user by ID"
        },
        {
          "name": "Delete",
          "value": "Delete",
          "action": "Delete a project",
          "description": "Delete an existing project"
        },
        {
          "name": "Get",
          "value": "Get",
          "action": "Get a project",
          "description": "Get details of a specific project"
        },
        {
          "name": "List SFTP Users",
          "value": "List SFTP Users",
          "action": "List all SFTP users",
          "description": "Get a list of all SFTP users in a project"
        },
        {
          "name": "List SSH Users",
          "value": "List SSH Users",
          "action": "List all SSH users",
          "description": "Get a list of all SSH users in a project"
        },
        {
          "name": "List",
          "value": "List",
          "action": "List all projects",
          "description": "Get a list of all projects"
        },
        {
          "name": "Delete Membership",
          "value": "Delete Membership",
          "action": "Delete a project membership",
          "description": "Remove a member from a project"
        },
        {
          "name": "Get Membership",
          "value": "Get Membership",
          "action": "Get a project membership",
          "description": "Get details of a specific project membership"
        },
        {
          "name": "Accept Invite",
          "value": "Accept Invite",
          "action": "Accept an invite to a project",
          "description": "Accept a project invitation using an invitation token"
        },
        {
          "name": "Create Invite",
          "value": "Create Invite",
          "action": "Create an invite to a project",
          "description": "Create a project invitation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Install",
      "options": [
        {
          "name": "Install",
          "value": "Install",
          "action": "Install an app",
          "description": "Install an app on a project"
        },
        {
          "name": "Uninstall",
          "value": "Uninstall",
          "action": "Uninstall an app",
          "description": "Remove an app installation"
        },
        {
          "name": "List",
          "value": "List",
          "action": "List all installed apps",
          "description": "Get a list of all installed apps"
        },
        {
          "name": "Update Installation Versions",
          "value": "Update Installation Versions",
          "action": "Update software versions",
          "description": "Update the app or system software versions of an installation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "App"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get",
      "options": [
        {
          "name": "Get",
          "value": "Get",
          "action": "Get a server",
          "description": "Get details of a specific server"
        },
        {
          "name": "List",
          "value": "List",
          "action": "List all servers",
          "description": "Get a list of all servers"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Server"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Create",
      "options": [
        {
          "name": "Create",
          "value": "Create",
          "action": "Create a ticket",
          "description": "Create a support ticket in a conversation category"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Support"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "List Incoming Invoices",
      "options": [
        {
          "name": "List Incoming Invoices",
          "value": "List Incoming Invoices",
          "action": "List incoming invoices",
          "description": "Get a list of incoming invoices for an organisation"
        },
        {
          "name": "List Outgoing Invoices",
          "value": "List Outgoing Invoices",
          "action": "List outgoing invoices",
          "description": "Get a list of outgoing invoices for an organisation"
        },
        {
          "name": "List Own Extensions",
          "value": "List Own Extensions",
          "action": "List own extensions",
          "description": "Get a list of extensions owned by an organisation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Contributor"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Create",
      "options": [
        {
          "name": "Create",
          "value": "Create",
          "action": "Create and link subdomain",
          "description": "Create a subdomain and link it to an app installation"
        },
        {
          "name": "Check If Registrable",
          "value": "Check If Registrable",
          "action": "Check if domain is registrable",
          "description": "Check whether a domain name is available for registration"
        },
        {
          "name": "Set Target",
          "value": "Set Target",
          "action": "Set target installation for domain",
          "description": "Set the target app installation for a domain"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Domain"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Create Redis Database",
      "options": [
        {
          "name": "Create Redis Database",
          "value": "Create Redis Database",
          "action": "Create Redis database",
          "description": "Create a new Redis database in a project"
        },
        {
          "name": "Delete Redis Database",
          "value": "Delete Redis Database",
          "action": "Delete Redis database",
          "description": "Delete an existing Redis database"
        },
        {
          "name": "Get Redis Database",
          "value": "Get Redis Database",
          "action": "Get a Redis database",
          "description": "Get details of a specific Redis database"
        },
        {
          "name": "List Redis Databases",
          "value": "List Redis Databases",
          "action": "List all Redis databases",
          "description": "Get a list of all Redis databases in a project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Database"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "Create",
      "action": "Create a project on a server",
      "description": "Create a new project on a server",
      "resource": "Project"
    },
    {
      "name": "Create SFTP User",
      "value": "Create SFTP User",
      "action": "Create an SFTP user",
      "description": "Create an SFTP user for a project",
      "resource": "Project"
    },
    {
      "name": "Create SSH User",
      "value": "Create SSH User",
      "action": "Create an SSH user",
      "description": "Create an SSH user for a project",
      "resource": "Project"
    },
    {
      "name": "Delete SFTP User",
      "value": "Delete SFTP User",
      "action": "Delete an SFTP user",
      "description": "Delete an SFTP user by ID",
      "resource": "Project"
    },
    {
      "name": "Delete SSH User",
      "value": "Delete SSH User",
      "action": "Delete an SSH user",
      "description": "Delete an SSH user by ID",
      "resource": "Project"
    },
    {
      "name": "Delete",
      "value": "Delete",
      "action": "Delete a project",
      "description": "Delete an existing project",
      "resource": "Project"
    },
    {
      "name": "Get",
      "value": "Get",
      "action": "Get a project",
      "description": "Get details of a specific project",
      "resource": "Project"
    },
    {
      "name": "List SFTP Users",
      "value": "List SFTP Users",
      "action": "List all SFTP users",
      "description": "Get a list of all SFTP users in a project",
      "resource": "Project"
    },
    {
      "name": "List SSH Users",
      "value": "List SSH Users",
      "action": "List all SSH users",
      "description": "Get a list of all SSH users in a project",
      "resource": "Project"
    },
    {
      "name": "List",
      "value": "List",
      "action": "List all projects",
      "description": "Get a list of all projects",
      "resource": "Project"
    },
    {
      "name": "Delete Membership",
      "value": "Delete Membership",
      "action": "Delete a project membership",
      "description": "Remove a member from a project",
      "resource": "Project"
    },
    {
      "name": "Get Membership",
      "value": "Get Membership",
      "action": "Get a project membership",
      "description": "Get details of a specific project membership",
      "resource": "Project"
    },
    {
      "name": "Accept Invite",
      "value": "Accept Invite",
      "action": "Accept an invite to a project",
      "description": "Accept a project invitation using an invitation token",
      "resource": "Project"
    },
    {
      "name": "Create Invite",
      "value": "Create Invite",
      "action": "Create an invite to a project",
      "description": "Create a project invitation",
      "resource": "Project"
    },
    {
      "name": "Install",
      "value": "Install",
      "action": "Install an app",
      "description": "Install an app on a project",
      "resource": "App"
    },
    {
      "name": "Uninstall",
      "value": "Uninstall",
      "action": "Uninstall an app",
      "description": "Remove an app installation",
      "resource": "App"
    },
    {
      "name": "List",
      "value": "List",
      "action": "List all installed apps",
      "description": "Get a list of all installed apps",
      "resource": "App"
    },
    {
      "name": "Update Installation Versions",
      "value": "Update Installation Versions",
      "action": "Update software versions",
      "description": "Update the app or system software versions of an installation",
      "resource": "App"
    },
    {
      "name": "Get",
      "value": "Get",
      "action": "Get a server",
      "description": "Get details of a specific server",
      "resource": "Server"
    },
    {
      "name": "List",
      "value": "List",
      "action": "List all servers",
      "description": "Get a list of all servers",
      "resource": "Server"
    },
    {
      "name": "Create",
      "value": "Create",
      "action": "Create a ticket",
      "description": "Create a support ticket in a conversation category",
      "resource": "Support"
    },
    {
      "name": "List Incoming Invoices",
      "value": "List Incoming Invoices",
      "action": "List incoming invoices",
      "description": "Get a list of incoming invoices for an organisation",
      "resource": "Contributor"
    },
    {
      "name": "List Outgoing Invoices",
      "value": "List Outgoing Invoices",
      "action": "List outgoing invoices",
      "description": "Get a list of outgoing invoices for an organisation",
      "resource": "Contributor"
    },
    {
      "name": "List Own Extensions",
      "value": "List Own Extensions",
      "action": "List own extensions",
      "description": "Get a list of extensions owned by an organisation",
      "resource": "Contributor"
    },
    {
      "name": "Create",
      "value": "Create",
      "action": "Create and link subdomain",
      "description": "Create a subdomain and link it to an app installation",
      "resource": "Domain"
    },
    {
      "name": "Check If Registrable",
      "value": "Check If Registrable",
      "action": "Check if domain is registrable",
      "description": "Check whether a domain name is available for registration",
      "resource": "Domain"
    },
    {
      "name": "Set Target",
      "value": "Set Target",
      "action": "Set target installation for domain",
      "description": "Set the target app installation for a domain",
      "resource": "Domain"
    },
    {
      "name": "Create Redis Database",
      "value": "Create Redis Database",
      "action": "Create Redis database",
      "description": "Create a new Redis database in a project",
      "resource": "Database"
    },
    {
      "name": "Delete Redis Database",
      "value": "Delete Redis Database",
      "action": "Delete Redis database",
      "description": "Delete an existing Redis database",
      "resource": "Database"
    },
    {
      "name": "Get Redis Database",
      "value": "Get Redis Database",
      "action": "Get a Redis database",
      "description": "Get details of a specific Redis database",
      "resource": "Database"
    },
    {
      "name": "List Redis Databases",
      "value": "List Redis Databases",
      "action": "List all Redis databases",
      "description": "Get a list of all Redis databases in a project",
      "resource": "Database"
    }
  ]

npm_readme:
  # n8n-nodes-mittwald

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

  [mittwald](https://www.mittwald.de/) is a German hosting and cloud service provider. This node allows you to automate interactions with mittwald resources such as projects, Redis databases, applications, and more.

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

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

  ## Installation

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

  ## Operations

  This node provides integration with the [mittwald API v2](https://developer.mittwald.de/). The following resources and operations are available:

  ### App

  - **Install an app**: Install an app on a project
  - **List all installed apps**: Get a list of all installed apps
  - **Uninstall an app**: Remove an app installation
  - **Update software versions**: Update the app or system software versions of an installation

  ### Contributor

  - **List incoming invoices**: Get a list of incoming invoices for an organisation
  - **List outgoing invoices**: Get a list of outgoing invoices for an organisation
  - **List own extensions**: Get a list of extensions owned by an organisation

  ### Conversation

  - **Create a ticket**: Create a support ticket in a conversation category

  ### Project

  - **Create a project on a server**: Create a new project on a server
  - **Create an SSH user**: Create an SSH user for a project (parameters: Project, Name, Password, optional Expires At)
  - **Create an SFTP user**: Create an SFTP user for a project (parameters: Project, Name, Password, Access Level, Directories, optional Expires At)
  - **Delete an SSH user**: Delete an SSH user from a project (parameter: SSH User ID)
  - **Delete an SFTP user**: Delete an SFTP user from a project (parameter: SFTP User ID)
  - **Delete a project**: Delete an existing project
  - **Get a project**: Get details of a specific project
  - **List all SSH users**: Get a list of all SSH users in a project (parameter: Project)
  - **List all SFTP users**: Get a list of all SFTP users in a project (parameter: Project)
  - **List all projects**: Get a list of all projects
  - **Accept an invite to a project**: Accept a project invitation using an invitation token
  - **Create an invite to a project**: Create a project invitation
  - **Get a project membership**: Get details of a specific project membership
  - **Delete a project membership**: Remove a member from a project

  ### Database

  - **List all Redis databases**: Get a list of all Redis databases in a project
  - **Create Redis database**: Create a new Redis database in a project
  - **Delete Redis database**: Delete an existing Redis database
  - **Get a Redis database**: Get details of a specific Redis database

  ### Server

  - **Get a server**: Get details of a specific server
  - **List all servers**: Get a list of all servers

  ### Domain

  - **Create and link subdomain**: Create a subdomain and link it to an app installation
  - **Check if domain is registrable**: Check whether a domain name is available for registration
  - **Set target installation for domain**: Set the target app installation for a domain

  ## Credentials

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

  ### Prerequisites

  - A mittwald account
  - An API key generated from your mittwald account settings

  ### Setting up credentials

  1. Log in to your mittwald account
  2. Navigate to your account settings
  3. Generate an API key
  4. In n8n, create new credentials of type "Mittwald API"
  5. Enter your API key

  ## Compatibility

  This node is tested with n8n Version 2.7.4.

  ## Usage

  1. Add the "Mittwald API" node to your workflow
  2. Set up credentials using your mittwald API key (API keys can be generated in the studio [here](https://studio.mittwald.de/app/profile/api-tokens))
  3. Select the desired resource and operation
  4. Configure the required parameters for the operation
  5. Execute the workflow to interact with the mittwald API and automate your tasks

  If you aren't familiar with n8n and creating workflows, you can find help here: [Try it out](https://docs.n8n.io/try-it-out/)

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [mittwald API documentation](https://developer.mittwald.de/)
  - [mittwald API v2 Reference](https://developer.mittwald.de/docs/v2/api/intro/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of interactions with the Mittwald hosting and cloud service provider API v2, allowing management of projects, servers, databases, applications, and user accounts.","capabilities":["Install, list, and uninstall applications on projects","Update software versions for app or system installations","Manage incoming and outgoing invoices for organizations","List extensions owned by an organization","Create and manage support tickets in conversation categories","Create, list, delete, and get details of projects","Create, list, delete, and get details of SSH and SFTP users","Manage project memberships and invitations","Create, list, and delete Redis databases in projects","Get details and list servers"],"authentication":"API key required","commonUseCases":["Automating server provisioning and user management for hosting clients","Managing Redis database instances in cloud environments","Handling application deployments and version updates","Managing billing and invoice data for hosting organizations","Automating domain management and subdomain linking"],"limitations":["Requires a valid Mittwald account and API key","Only supports Mittwald API v2","Currently tested with n8n Version 2.7.4","Limited to Mittwald-specific resources (German hosting provider)"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.credentials"]}


node_type: n8n-nodes-lumify.lumify
package_name: n8n-nodes-lumify
display_name: Lumify
description: AI-powered search and research APIs from Lumify
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: lumify
author_github_url: https://github.com/lumifyai/
npm_package_name: n8n-nodes-lumify
npm_version: 0.1.5
community_fetched_at: 2026-04-16T09:43:36.078Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search your indexed content",
          "description": "Search your indexed website content and get AI-generated answers"
        },
        {
          "name": "Last 30 Days",
          "value": "last30days",
          "action": "Research trends from the last 30 days",
          "description": "Research trends and discussions from social media and web sources"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search",
      "value": "search",
      "action": "Search your indexed content",
      "description": "Search your indexed website content and get AI-generated answers"
    },
    {
      "name": "Last 30 Days",
      "value": "last30days",
      "action": "Research trends from the last 30 days",
      "description": "Research trends and discussions from social media and web sources"
    }
  ]

npm_readme:
  # n8n-nodes-lumify

  This is an n8n community node for [Lumify](https://lumify.ai) - AI-powered search and research APIs.

  Lumify provides two powerful capabilities:
  - **Search**: AI-powered search across your indexed website content
  - **Last 30 Days**: Research-grade trend analysis from social media and web discussions

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

  ### In n8n Desktop/Cloud

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

  ### Self-hosted n8n

  ```bash
  npm install n8n-nodes-lumify
  ```

  ## Prerequisites

  - A [Lumify account](https://www.lumify.ai/beta-signup) (free to sign up)
  - Your API Key from the [Lumify Dashboard](https://www.lumify.ai/app/api-keys)
  - For Search: An Application ID from your dashboard

  ## Operations

  ### Search

  Query your indexed website content and get AI-generated answers with source citations.

  **Required:**
  - API Key
  - Application ID
  - Query (the search question)

  **Options:**
  - **Answer Mode**: Cache high-confidence answers for faster responses (default: true)
  - **Similar Questions**: Return related questions from your knowledge base (default: false)

  **Response includes:**
  - AI-generated answer
  - Source URLs with titles and relevance scores
  - Confidence score (0.0 - 1.0)
  - Similar questions (if enabled)
  - Call-to-action links (when intent is detected)

  ### Last 30 Days

  Research trends and synthesize discussions from Twitter/X, Reddit, and web sources into actionable intelligence.

  **Required:**
  - API Key
  - Topic (the subject to research, max 200 characters)

  **Options:**
  - **Sources**: Data sources to query - Twitter/X, Reddit, Web (default: all three)
  - **Days**: Number of days to look back, 1-30 (default: 30)
  - **Max Results**: Maximum evidence items per source, 5-50 (default: 20)
  - **Output Format**: 
    - `summary` - Markdown-formatted narrative (default)
    - `bullets` - Structured bullet points
    - `json` - Fully structured data

  **Response includes:**
  - Synthesized research brief with patterns, insights, and gotchas
  - Evidence count and source breakdown
  - Confidence score
  - Execution metadata (time, tokens used)

  ## Credentials

  ### Setting up Lumify Credentials

  1. [Sign up for Lumify](https://www.lumify.ai/beta-signup) if you haven't already
  2. Go to your [API Keys page](https://www.lumify.ai/app/api-keys)
  3. Copy your **API Key** (format: `lmfy-xxxxx`)
  4. If using Search, copy your **Application ID** from the dashboard

  In n8n:
  1. Go to **Credentials**
  2. Select **New Credential**
  3. Search for **Lumify API**
  4. Enter your API Key (required)
  5. Enter your Application ID (required for Search, optional for Last 30 Days)

  ## Example Workflows

  ### AI-Powered FAQ Bot

  1. **Trigger**: Webhook receives a user question
  2. **Lumify Search**: Query your knowledge base
  3. **IF**: Check confidence score
  4. **Respond**: Return answer or escalate to human

  ### Weekly Trend Report

  1. **Schedule Trigger**: Every Monday at 9am
  2. **Lumify Last 30 Days**: Research your industry topic
  3. **Slack/Email**: Send the synthesized brief to your team

  ### Content Research Pipeline

  1. **Form Trigger**: Content team submits a topic
  2. **Lumify Last 30 Days**: Research current discussions
  3. **Google Docs**: Create a research document
  4. **Notify**: Alert the team it's ready

  ## Resources

  - [Lumify Documentation](https://docs.lumify.ai)
  - [Search API Reference](https://docs.lumify.ai/search-api)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## Support

  - For Lumify issues: [Contact Lumify Support](https://www.lumify.ai/contact-us)
  - For node issues: [Open an issue](https://github.com/lumifyai/n8n-nodes-lumify/issues)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n community node integrates Lumify's AI-powered search and research APIs to enable knowledge base querying and social media trend analysis within automated workflows.","capabilities":["AI-powered search across indexed website content","Generate answers with source citations and confidence scores","Research-grade trend analysis from Twitter/X, Reddit, and web sources","Synthesize discussions into actionable intelligence","Support multiple output formats (markdown, bullets, JSON)","Return related questions and call-to-action links"],"authentication":"API Key required (Application ID required for Search operations)","commonUseCases":["AI-powered FAQ bot for knowledge base queries","Weekly trend reports for industry research","Content research pipeline for team collaboration","Automated social media sentiment analysis"],"limitations":["Search requires an Application ID from the dashboard","Last 30 Days research is limited to 1-30 days lookback","Max results per source limited to 50 items","Community node (requires manual installation and risk acceptance)"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-slack","n8n-nodes-google-docs","n8n-nodes-schedule-trigger","n8n-nodes-if"]}


node_type: n8n-nodes-cala.cala
package_name: n8n-nodes-cala
display_name: Cala
description: Search trusted knowledge with Cala AI.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: elimorato
author_github_url: https://github.com/cala-ai/cala-n8n-node.git
npm_package_name: n8n-nodes-cala
npm_version: 0.4.15
community_fetched_at: 2026-04-16T09:43:36.079Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "knowledge",
      "options": [
        {
          "name": "Knowledge",
          "value": "knowledge"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Get Entity",
          "value": "getEntity",
          "action": "Get knowledge entity",
          "description": "Get the full profile of an entity by its numeric ID."
        },
        {
          "name": "Query",
          "value": "query",
          "action": "Query knowledge",
          "description": "Filter entities by attributes using structured dot-notation syntax."
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search knowledge",
          "description": "Answer natural language questions with sourced, researched content."
        },
        {
          "name": "Search Entities",
          "value": "searchEntities",
          "action": "Search knowledge entities",
          "description": "Find entities by name with fuzzy matching."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "knowledge"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Entity",
      "value": "getEntity",
      "action": "Get knowledge entity",
      "description": "Get the full profile of an entity by its numeric ID.",
      "resource": "knowledge"
    },
    {
      "name": "Query",
      "value": "query",
      "action": "Query knowledge",
      "description": "Filter entities by attributes using structured dot-notation syntax.",
      "resource": "knowledge"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search knowledge",
      "description": "Answer natural language questions with sourced, researched content.",
      "resource": "knowledge"
    },
    {
      "name": "Search Entities",
      "value": "searchEntities",
      "action": "Search knowledge entities",
      "description": "Find entities by name with fuzzy matching.",
      "resource": "knowledge"
    }
  ]

npm_readme:
  # n8n-nodes-cala

  This is an n8n community node for [Cala AI](https://cala.ai) - a platform that transforms internet information into structured, trustworthy context for AI agents.

  ## Installation

  ### n8n Cloud (Verified Nodes)

  1. Go to **Settings** → **Community Nodes**
  2. Click **Install**
  3. Enter `n8n-nodes-cala`
  4. Click **Install**

  ### Self-hosted n8n

  ```bash
  npm install n8n-nodes-cala
  ```

  ## Credentials

  You need a Cala API key to use this node:

  1. Sign up at [console.cala.ai](https://console.cala.ai)
  2. Create an API key
  3. In n8n, create new credentials of type **Cala API**
  4. Enter your API key

  ## Operations

  The node exposes a **Knowledge** resource with five operations:

  | Operation | Description |
  |-----------|-------------|
  | **Search** | Answer natural language questions with sourced, researched content |
  | **Query** | Filter entities by attributes using structured dot-notation syntax |
  | **Search Entities** | Find entities by name with fuzzy matching, optionally filtered by type |
  | **Get Entity** | Get the full profile of an entity by its UUID, with optional field selection |
  | **Get Entity Fields** | Discover which properties, relationships, and observations are available for an entity |

  ### Search

  Ask a natural language question and get back a researched answer with sources.

  **Input:** `"How many students were enrolled at MIT in 2024?"`

  **Output:**
  ```json
  {
    "content": "In 2024, MIT had approximately 11,800 students enrolled, including 4,600 undergraduate and 7,200 graduate students.",
    "explainability": [
      {
        "content": "MIT enrollment data shows total student population across undergraduate and graduate programs",
        "references": ["a1b2c3d4-5678-90ab-cdef-123456789abc"]
      }
    ],
    "context": [
      {
        "id": "a1b2c3d4-5678-90ab-cdef-123456789abc",
        "content": "In 2024, the Massachusetts Institute of Technology enrolled approximately 11,800 students.",
        "origins": [
          {
            "source": { "name": "MIT", "url": "https://mit.edu" },
            "document": { "name": "MIT Facts", "url": "https://mit.edu/about" }
          }
        ]
      }
    ],
    "entities": [
      { "id": 1, "name": "MIT", "entity_type": "ORGANIZATION" }
    ]
  }
  ```

  ### Query

  Filter entities by attributes using dot-notation syntax.

  **Input:** `"startups.location=Spain.funding>10M"`

  **Output:**
  ```json
  {
    "results": [
      {
        "startup": "SeQura",
        "sector": "Fintech / BNPL",
        "hq": "Barcelona",
        "funding_round": "Series D (Nov 2024)",
        "amount": "~€410M (incl. debt)"
      },
      {
        "startup": "TravelPerk",
        "sector": "Business Travel SaaS",
        "hq": "Barcelona",
        "funding_round": "Series D (Nov 2024)"
      }
    ],
    "entities": [
      { "id": "df8ea521-f2b1-47f7-9b46-419e179d914b", "name": "SeQura", "entity_type": "Organization" },
      { "id": "2f0da3c2-4d1d-41f5-b433-82df365c27de", "name": "TravelPerk", "entity_type": "Organization" }
    ]
  }
  ```

  ### Search Entities

  Find entities by name (supports fuzzy matching). Returns a list of matches with IDs.

  **Parameters:**
  - `Name` (required) — entity name to search for
  - `Entity Types` (optional) — filter by one or more types: Company, Person, GPE, Country, Organization, and more
  - `Limit` (optional, default 20) — max results, up to 100

  **Input:** `"OpenAI"` with limit `3`

  **Output:**
  ```json
  {
    "entities": [
      { "id": "e5bb591a-d308-4aa5-9672-96046d366cde", "name": "OpenAI", "entity_type": "Organization" },
      { "id": "7eacce50-c89f-44a8-b8e4-a41f543683f2", "name": "OpenAI Codex", "entity_type": "Product" },
      { "id": "e849412b-dcee-4df1-9461-a7cbdb9c32c7", "name": "OpenAI, Inc.", "entity_type": "Organization" }
    ]
  }
  ```

  ### Get Entity Fields

  Discover which properties, relationships, and numerical observations are available for a specific entity before querying it. Run this first, then use the results to fill in the **Get Entity** optional fields.

  **Input:** Entity UUID `"c6772802-bdbc-4778-91e9-cd3d27d008d5"`

  **Output:**
  ```json
  {
    "properties": ["name", "aliases", "legal_name", "employee_count", "founding_date", "headquarters_address"],
    "relationships": {
      "outgoing": ["IS_REGISTERED_IN", "HAS_HEADQUARTERS_IN", "OPERATES_IN_INDUSTRY"],
      "incoming": ["IS_CEO_OF", "IS_CFO_OF", "IS_BOARD_MEMBER_OF", "IS_SUBSIDIARY_OF"]
    },
    "numerical_observations": {
      "FinancialMetric": [
        { "id": "1d3eae40-0ba8-5baf-9907-6a4823b067bb", "name": "Cash and Cash Equivalents", "unit": "USD" }
      ]
    }
  }
  ```

  ### Get Entity

  Get the full profile of an entity by its UUID. By default returns a standard set of properties. Use the optional **Additional Fields** to select exactly which properties, relationships, and numerical observations to include — run **Get Entity Fields** first to discover what's available.

  **Parameters:**
  - `Entity ID` (required) — UUID from Search Entities, Search, or Query results
  - `Additional Fields > Properties` — list of property names to return (e.g. `name`, `employee_count`, `founding_date`)
  - `Additional Fields > Relationships` — relationships to include, each with direction (Outgoing/Incoming), type name, and optional limit/offset
  - `Additional Fields > Numerical Observations` — JSON object mapping observation type to UUID array (e.g. `{"FinancialMetric": ["uuid1"]}`)

  **Input:** Entity UUID `"c6772802-bdbc-4778-91e9-cd3d27d008d5"` with properties `["name", "employee_count"]` and incoming relationship `IS_CEO_OF`

  **Output:**
  ```json
  {
    "id": "c6772802-bdbc-4778-91e9-cd3d27d008d5",
    "name": "Apple Inc",
    "entity_type": "Company",
    "properties": {
      "name": { "value": "APPLE INC", "sources": [{ "name": "SEC", "date": "2026-02-26" }] },
      "employee_count": { "value": 164000, "sources": [{ "name": "Macrotrends", "date": "2026-03-01" }] }
    },
    "relationships": {
      "incoming": {
        "IS_CEO_OF": [{ "id": "...", "name": "Tim Cook", "entity_type": "Person" }]
      }
    },
    "numerical_observations": []
  }
  ```

  ## Resources

  - [Cala Documentation](https://docs.cala.ai)
  - [Cala Console](https://console.cala.ai)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  MIT


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-04-16 09:43:36
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-04-16T09:43:36.080Z
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: @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-04-16 09:43:36
author_name: bcrypt
author_github_url: https://github.com/brave/n8n-nodes-brave-search.git
npm_package_name: @brave/n8n-nodes-brave-search
npm_version: 1.0.28
community_fetched_at: 2026-04-16T09:43:36.081Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "web",
      "options": [
        {
          "name": "Web Search",
          "value": "web",
          "action": "Search the Web",
          "description": "Search the Web"
        },
        {
          "name": "News Search",
          "value": "news",
          "action": "Search for News",
          "description": "Search for News"
        },
        {
          "name": "Image Search",
          "value": "images",
          "action": "Search for Images",
          "description": "Search for Images"
        },
        {
          "name": "Video Search",
          "value": "videos",
          "action": "Search for Videos",
          "description": "Search for Videos"
        },
        {
          "name": "Spellcheck",
          "value": "spellcheck",
          "action": "Check Spelling of a Query",
          "description": "Check spelling of a query"
        },
        {
          "name": "Suggest",
          "value": "suggest",
          "action": "Get Suggestions for a Query",
          "description": "Get suggestions for a query"
        }
      ],
      "required": true,
      "description": "The operation to use for the Brave Search API",
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

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

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

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

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

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

  ## Table of Contents

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

  ## Installation

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

  ## Operations

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

  ## Credentials

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

  ## Compatibility

  Tested locally against n8n v1.93.0.

  ## Usage

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

  ## Resources

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

  ## Development

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

  ### Quick Start (Recommended)

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

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

  ### Manual Development Setup

  If you prefer to run commands separately:

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

  ### Alternative: System Environment Variables

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

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

  ### First-Time Setup Notes

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

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


node_type: @decodo/n8n-nodes-decodo.decodo
package_name: @decodo/n8n-nodes-decodo
display_name: Decodo
description: Decodo's Web Scraping API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: decodo
author_github_url: https://github.com/Decodo/n8n-nodes-decodo.git
npm_package_name: @decodo/n8n-nodes-decodo
npm_version: 1.9.1
community_fetched_at: 2026-04-16T09:43:36.087Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "universal",
      "options": [
        {
          "name": "Universal",
          "value": "universal",
          "action": "Scrape using Universal target"
        },
        {
          "name": "Google Search",
          "value": "google_search",
          "action": "Scrape using Google Search target"
        },
        {
          "name": "Amazon",
          "value": "amazon",
          "action": "Scrape using Amazon target"
        },
        {
          "name": "YouTube Transcript",
          "value": "youtube_transcript",
          "action": "Scrape using YouTube Transcript target"
        },
        {
          "name": "Reddit Subreddit",
          "value": "reddit_subreddit",
          "action": "Scrape using Reddit Subreddit target"
        }
      ],
      "required": true,
      "description": "Decodo Scraper API supported target",
      "displayName": "Target",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Universal",
      "value": "universal",
      "action": "Scrape using Universal target"
    },
    {
      "name": "Google Search",
      "value": "google_search",
      "action": "Scrape using Google Search target"
    },
    {
      "name": "Amazon",
      "value": "amazon",
      "action": "Scrape using Amazon target"
    },
    {
      "name": "YouTube Transcript",
      "value": "youtube_transcript",
      "action": "Scrape using YouTube Transcript target"
    },
    {
      "name": "Reddit Subreddit",
      "value": "reddit_subreddit",
      "action": "Scrape using Reddit Subreddit target"
    }
  ]

npm_readme:
  # Decodo n8n Node

  This repository provides an n8n integration for **Decodo's Web Scraping API**, a powerful web scraping tool that automatically bypasses blocks and bot protection to extract data from any target URL. It's designed for developers and startups looking to automate data collection workflows from platforms like Google, eCommerce sites, and job boards.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform that lets you connect apps, APIs, and services to build automated workflows with minimal effort.

  ## Features

  - **Easy integration**. Plug the Decodo's n8n node into existing workflows to start scraping with minimal setup.
  - **Bypassing CAPTCHAs, rate-limits, and IP bans**. Automatic handling of common anti-bot defenses.
  - **Geo-targeting**. Request region-specific results from websites that restrict content based on location.
  - **Rotating proxy support to avoid IP bans**. Built-in proxy rotation to keep requests distributed and persistent.
  - **Structured data output**. Get results in JSON or Markdown formats for easy readability and further analysis.

  ## Installation

  Decodo is an official node integrated into n8n. To use it, simply:

  1. Open the nodes panel.

  <img src="docs/n8n-node-tab.png" width="500px">

  2. Search for "Decodo" to find the node.

  <img src="docs/n8n-decodo-search.png" width="500px">

  3. Click **+ Add to workflow**.

  <img src="docs/n8n-decodo-add-to-workflow.png" width="500px">

  ### Obtaining a Decodo account

  The node requires a [Decodo Web Scraping API](https://decodo.com/scraping) Advanced plan. You can get started with a free trial on the [dashboard](https://dashboard.decodo.com/).

  Once you have a plan activated, take a note of your generated authentication token from the [Web Scraping API page](https://dashboard.decodo.com/web-scraping-api/scraper):

  <img src="docs/decodo_dashboard_auth.png" width="500px">

  ### Setting up credentials on n8n

  1. Open the credentials window on n8n.

  <img src="docs/creds_01.png" width="500px">

  2. Create a new credential.

  <img src="docs/creds_02.png" width="500px">

  3. Find the _Decodo Credentials API_.

  <img src="docs/creds_03.png" width="500px">

  4. Enter your authentication token.

  <img src="docs/n8n_auth.png" width="500px">

  ## Using the node

  The node can be used in 2 ways - as an individual HTTP request node, or a tool for an AI agent.

  ### Individual node

  To use the Decodo node by itself, connect it to an existing workflow. Once you add it, you can set the target **URL** and **Geolocation**.

  <img src="docs/n8n-decodo-node-config.png" width="500px">

  The node requests the target URL through a proxy in the chosen location, scrapes the page, and returns the response for use by downstream nodes such as the **HTML** node to extract content. Below is an example setup:

  <img src="docs/n8n-decodo-workflow.png" width="500px">

  ### AI agent tool

  You can connect the Decodo node to the AI Agent node as a tool. You don't need to modify anything inside the node. Here's what a simple setup would look like:

  <img src="docs/n8n_setup.png" width="500px">

  With this setup, you can prompt the agent to scrape a website in order to extract information. The prompt must be detailed and specific to return the best results.

  **Bad prompt example**

  If your AI model does not have access to the most recent web information, the following question may fail:

  ```
  Who won the NBA in 2025?
  ```

  **Good prompt example**

  The question is more likely to be answered by updating the prompt with an instruction to scrape a reliable source:

  ```
  Scrape Wikipedia and tell me who won the NBA in 2025.
  ```

  ## Parameters

  When used as an AI tool, most parameters can be inferred automatically from messages, for example:

  | Parameter  | Description                                    | Example message                                                         |
  | ---------- | ---------------------------------------------- | ----------------------------------------------------------------------- |
  | `url`      | The target URL to scrape                       | Scrape Wikipedia and tell me the article of the day.                    |
  | `headless` | Render JS when scraping                        | Scrape https://ip.decodo.com/json with JS rendering.                    |
  | `geo`      | The country name from which to scrape          | Scrape https://ip.decodo.com/json with United States geolocation.       |
  | `markdown` | Receive Markdown type responce instead of HTML | Scrape https://ip.decodo.com/json and return result in markdown format. |

  If used as an individual node, all parameters can be manually configured by double-clicking on the node.

  ## Development & releases

  ### Contribution

  To contribute to this node:

  1. Install n8n globally in your development machine.

  ```
  npm install n8n -g
  ```

  2. Pull this repository.

  ```
  git clone https://github.com/Decodo/n8n-nodes-decodo.git

  ```

  3. Navigate to the downloaded folder and build it.

  ```
  cd n8n-nodes-decodo
  npm install
  npm run build
  ```

  4. Inside the project folder, run `npm link` after building to make your local build of `@decodo/n8n-nodes-decodo` available in the local npm registry.
  5. Inside `~/.n8n/custom`, run `npm link @decodo/n8n-nodes-decodo`.

  See this [documentation page](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally) for more information.

  ### Automated releases

  This project uses automated releases via GitHub Actions and semantic-release. When code is merged into the `main` branch, the following happens automatically:

  1. **Semantic analysis**. Commit messages are analyzed to determine the type of release (patch, minor, major).
  2. **Version bump**. The version in `package.json` is automatically updated.
  3. **NPM publish**. The package is built and published to npm as `@decodo/n8n-nodes-decodo`.
  4. **GitHub release**. A GitHub release is created with automatically generated release notes.
  5. **Git tag**. A git tag is created for the new version.

  ### Required secrets

  For automated releases to work, the following GitHub repository secrets must be configured:

  - `NPM_TOKEN`. An npm access token with publish permissions for the `@decodo` organization.
  - `GITHUB_TOKEN`. Automatically provided by GitHub Actions (no setup required).

  ### Commit message format

  To trigger releases, use conventional commit messages:

  - `feat: new feature` → Minor version bump
  - `fix: bug fix` → Patch version bump
  - `feat!: breaking change` or `BREAKING CHANGE:` in footer → Major version bump
  - `docs:`, `style:`, `refactor:`, `test:`, `chore:` → No release

  ## Compatibility

  The Decodo node has been developed and tested with:

  - Node.js v22.17.0
  - n8n nodes API version 1
  - [n8n-workflow](https://www.npmjs.com/package/n8n-workflow) v1.82.0

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Decodo's Web Scraping API documentation](https://help.decodo.com/docs/web-scraping-api-introduction)

  ## Further reading

  - [Complete guide for building n8n web scraping automations](https://decodo.com/blog/n8n-web-scraping-automation)

ai_documentation_summary:
  {"purpose":"This n8n node integrates Decodo's Web Scraping API to automatically bypass CAPTCHAs, rate limits, and IP bans while extracting data from any target URL with optional geo-targeting.","capabilities":["Web scraping from any URL","Automatic bypass of CAPTCHAs and bot protection","Bypassing rate limits and IP bans","Geo-targeting for region-specific results","Rotating proxy support to avoid IP bans","Structured data output in JSON or Markdown formats","JavaScript rendering (headless mode) support","Integration with AI Agent tools for automated scraping"],"authentication":"API key required (Decodo Web Scraping API token)","commonUseCases":["Automated data collection from eCommerce sites","Job board monitoring and scraping","Real-time information extraction from platforms like Google","AI agent-powered web research and data gathering","Monitoring specific content based on geographic location"],"limitations":["Requires Decodo Advanced plan (free trial available)","AI agent prompts must be detailed and specific for best results","May fail if AI model lacks access to recent web information without explicit scraping instructions"],"relatedNodes":["HTTP Request","HTML","AI Agent","Webhook"]}


node_type: @blotato/n8n-nodes-blotato.blotato
package_name: @blotato/n8n-nodes-blotato
display_name: Blotato
description: Use Blotato API
category: Community
development_style: declarative
version: 2
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: sabrina_ramonov
author_github_url: https://github.com/Blotato-Inc/n8n-nodes-blotato.git
npm_package_name: @blotato/n8n-nodes-blotato
npm_version: 1.0.10
community_fetched_at: 2026-04-16T09:43:36.088Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Media",
          "value": "media"
        },
        {
          "name": "Post",
          "value": "post"
        },
        {
          "name": "Source",
          "value": "source"
        },
        {
          "name": "Video",
          "value": "video"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create source",
          "description": "Submit a source for content extraction (YouTube, TikTok, article, PDF, etc.)"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get source",
          "description": "Get the extracted content by source ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "source"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Visual",
          "value": "create",
          "action": "Create visual",
          "description": "Create a visual (video, carousel, or infographic) from a template"
        },
        {
          "name": "Get Visual",
          "value": "get",
          "action": "Get visual",
          "description": "Get a visual by ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete video",
          "description": "Delete a video by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload media",
          "description": "Upload image or video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "media"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create post",
          "description": "Create post"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get post",
          "description": "Get post status by submission ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create source",
      "description": "Submit a source for content extraction (YouTube, TikTok, article, PDF, etc.)",
      "resource": "source"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get source",
      "description": "Get the extracted content by source ID",
      "resource": "source"
    },
    {
      "name": "Create Visual",
      "value": "create",
      "action": "Create visual",
      "description": "Create a visual (video, carousel, or infographic) from a template",
      "resource": "video"
    },
    {
      "name": "Get Visual",
      "value": "get",
      "action": "Get visual",
      "description": "Get a visual by ID",
      "resource": "video"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete video",
      "description": "Delete a video by ID",
      "resource": "video"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload media",
      "description": "Upload image or video",
      "resource": "media"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create post",
      "description": "Create post",
      "resource": "post"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get post",
      "description": "Get post status by submission ID",
      "resource": "post"
    }
  ]

npm_readme:
  # n8n-nodes-blotato

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

  Blotato is an AI-powered content engine that enables content creation, publishing, and scheduling across multiple social media platforms through a unified API.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)
  [Compatibility](#compatibility)  
  [Usage](#usage) 
  [Resources](#resources)  
  [Support](#support)  

  ## Installation

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

  ## Operations

  This node provides four main resources for interacting with Blotato:

  ### Video Resource
  Create AI-generated visuals from templates, such as videos, carousels, slideshows, infographics, and images.
  - **Create Visual**: Generate visuals from pre-built templates with a prompt and optional inputs
  - **Get Visual**: Retrieve visual status and details by ID
  - **Delete**: Remove a viusal by ID
  - **Features**:
    - Template-based generation of visual assets
    - Dynamic input fields based on template requirements
    - Support for leading AI image and video models
    - Automatic rendering upon creation

  ### Media Upload
  Upload media files (e.g. images and videos) for your social media content using the Media resource.
  - **Upload from URL**: Upload media files from a URL
  - **Upload from Binary**: Upload media files from binary data
  - **Size limit**: 60MB for binary uploads, larger files should use URL upload
  - **Rate limit**: 10 requests per minute

  ### Post Publish
  Post content across multiple social media platforms using the Post resource.
  - **Platforms supported**: Twitter, Linkedin, Facebook, Instagram, Pinterest, Tiktok, Threads, Bluesky, Youtube
  - **Operations**:
    - **Create**: Publish content to social media platforms
    - **Get**: Check post status and details by submission ID
  - **Features**:
    - Multi-platform publishing with a single workflow
    - Schedule posts for later or use the next available free slot
    - Add captions, hashtags, and media
    - Platform-specific options, such as, but not limited to:
      - Youtube: Privacy settings, subscriber notifications, Made for Kids setting, Contains Synthetic Media
      - Pinterest: Board selection, pin title, alt text, and link
      - Tiktok: Privacy levels, comment/duet settings, Post as Draft, Slideshow Title, Image Cover Index, Video Cover Timestamp
      - Instagram: Post, Reel, or Story options, Audio Name (for Reels), Collaborators
      - Linkedin: Personal profile or Company page
      - Facebook: Page selection, Video/Reel options
      - Threads: Reply control settings
    - **Note**: Instagram, Tiktok, Pinterest, and Youtube require at least one media file (image or video) to be included in posts.
    - Rate limit: 30 requests per minute

  ### Source Extraction
  Extract content from various sources using the Source resource. This is useful for repurposing content from different platforms.
  - **Operations**:
    - **Create**: Submit a source for content extraction (async processing)
    - **Get**: Retrieve extracted content by source ID
  - **Source Types**:
    - **URL** (default): Paste any URL and the type is auto-detected. Supported URL types:
      - YouTube: Extracts video transcript
      - TikTok: Extracts video content
      - Article: Extracts web article text
      - PDF: Extracts document text
      - Audio: Transcribes audio files
    - **Text**: Raw text content with optional AI transformation
    - **AI Research**: AI-powered research query (powered by Perplexity)
  - **Optional Instructions**: AI instructions to transform extracted content (e.g., "Summarize in 5 bullet points for Instagram", "Translate to Spanish"). Leave blank for raw source content.
  - **Async processing**: Create returns a source ID; use Get to poll for extracted content

  ## Credentials

  To use this node, you need to create credentials in n8n:

  1. **Get your Blotato API Key**:
     - Log in to your [Blotato account](https://my.blotato.com)
     - Navigate to Settings → API Keys
     - Click "Generate API Key"
     - **Important**: API access is only available to paying subscribers.

  2. **Configure in n8n**:
     - Go to **Credentials** → **New** → **Blotato API**
     - Enter your API key

  3. **Connect Social Media Accounts**:
     - In Blotato, navigate to Settings → Connected Accounts
     - Click "Login with <platform>" to connect your social media account.

  ## Compatibility

  - **n8n version**: 1.80.0 and above
  - **Node.js version**: 18.10 or higher

  ## Usage

  ### Example: AI Video to Multi-Platform Publishing

  1. **Create AI video/carousel** using the Video resource where you select a template
  2. **Wait for generation** by checking status with Video Get operation
  3. **Publish to multiple platforms** using the Post resource with the generated media URL
  4. **Check post status** using the Post Get operation to verify successful publishing

  ### Example: Upload and Publish

  1. **Upload your media** using the Media resource and Upload operation
  2. **Publish to multiple platforms** using the Post resource and Create operation
  3. **Track publishing progress** using the Post Get operation with the submission ID

  ### Example: Extract YouTube Transcript and Repurpose

  1. **Submit YouTube URL** using Source Create with the URL source type (auto-detects YouTube)
  2. **Poll for extraction** using Source Get with the returned source ID
  3. **Use extracted transcript** to generate new content with AI or repurpose for other platforms

  ### Tips

  - **Video Templates**: Browse available templates at [Blotato Templates](https://my.blotato.com/videos/new)
  - **Rate Limits**: Blotato has a rate limit of 10 media uploads per minute
  - **Media Requirements**: Each platform has specific [media requirements](https://help.blotato.com/api/media)
  - **Scheduling**: Use the `scheduledTime` parameter to schedule posts in ISO 8601 format, or enable `Schedule Next Free Slot` to automatically schedule posts in the next available time slot
  - **Instagram Collaborators**: Add up to 3 Instagram usernames as collaborators on your posts
  - **Debugging**: To view all your API requests, responses, and error messages, go to your [Blotato API Dashboard](https://my.blotato.com/api-dashboard)
  - **Error Handling**: The node supports n8n's error output paths - use "Continue (using error output)" to handle errors gracefully

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Blotato API Reference](https://help.blotato.com/api-reference)
  * [Blotato Help Center](https://help.blotato.com)

  ## About Blotato

  Blotato is your all-in-one AI content engine to create and distribute social media posts. It solves the problem of producing and distributing high-quality content consistently while growing on multiple platforms, without paying for multiple tools that don't integrate with each other.

  ### Key Features
  - **Multi-Platform Publishing**: Schedule and publish to all major social platforms
  - **Viral Templates**: Create social media videos and carousels using prebuilt viral templates
  - **Access to AI Models**: Access the leading AI image and video models, all in one unified tool
  - **Content Remixing**: Transform content between platforms (e.g., Youtube videos to Linkedin posts)

  ### Who is Blotato For?
  - Solopreneurs
  - Content creators
  - Small business owners
  - Social media marketers
  - Digital marketing agencies

  ## Support

  For issues and feature requests related to this n8n node, please use the [GitHub issue tracker](https://github.com/Blotato-Inc/n8n-nodes-blotato/issues).

  For Blotato-specific questions, visit [Blotato Help Center](https://help.blotato.com/).

  ## Development

  - Install n8n (if you want faster development and don't wanna use docker)

  ```sh
  npm i -g n8n
  ```

  - Create necessary directories

  ```sh
  export N8N_BLOTATO_WORKDIR=$HOME/dev/n8n-blotato-work
  mkdir -p $N8N_BLOTATO_WORKDIR/n8n-selfhost
  cd $N8N_BLOTATO_WORKDIR
  git clone git@github.com:Blotato-Inc/n8n-nodes-blotato.git
  ```

  - Build the custom node code

  ```sh
  cd $N8N_BLOTATO_WORKDIR/n8n-nodes-blotato
  npm i
  # rebuilding the code and n8n restart is required
  # on every change
  npm run build
  ```

  - Run locally with `n8n` npm package

  ```sh
  export N8N_BLOTATO_WORKDIR=$HOME/dev/n8n-blotato-work
  export N8N_CUSTOM_EXTENSIONS=$N8N_BLOTATO_WORKDIR/n8n-nodes-blotato
  n8n
  ```

  - Or, alternatively, start n8n instance docker instance (might be slower than native)

  ```sh
  export N8N_BLOTATO_WORKDIR=$HOME/dev/n8n-blotato-work

  docker run -it --rm --name n8n -p 5678:5678 \
             -e N8N_CUSTOM_EXTENSIONS=/mnt/custom-nodes/n8n-nodes-blotato \
             -v $N8N_BLOTATO_WORKDIR/n8n-nodes-blotato:/mnt/custom-nodes/n8n-nodes-blotato \
             -v $N8N_BLOTATO_WORKDIR/n8n-selfhost/data:/home/node \
             docker.n8n.io/n8nio/n8n
  ```

  - NOTE: When you create Blotato API credentials, use http://127.0.0.1:8000 to avoid ipv6 issues

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of content creation, publishing, and scheduling across multiple social media platforms using the Blotato API.","capabilities":["Create AI-generated visuals (videos, carousels, slideshows, infographics, images) from templates","Retrieve and delete generated visual assets by ID","Upload media files from URLs or binary data","Publish content to Twitter, LinkedIn, Facebook, Instagram, Pinterest, TikTok, Threads, Bluesky, and YouTube","Schedule posts for later execution","Extract content from URLs (YouTube transcripts, TikTok content, articles, PDFs, audio)","Perform AI research queries powered by Perplexity","Transform extracted content using custom AI instructions"],"authentication":"API key required (paying subscribers only)","commonUseCases":["Automated multi-platform social media publishing","AI-generated video and image content creation","Content repurposing from YouTube, TikTok, or web articles","Scheduled social media campaigns"],"limitations":["API access requires a paying Blotato subscription","Binary media uploads limited to 60MB (larger files require URL upload)","Media upload rate limit of 10 requests per minute","Post publishing rate limit of 30 requests per minute","Instagram, TikTok, Pinterest, and YouTube require at least one media file for posts"],"relatedNodes":["HTTP Request","Wait Until","Code","Split In Batches"]}


node_type: n8n-nodes-skyvern.skyvern
package_name: n8n-nodes-skyvern
display_name: Skyvern
description: Node to interact with Skyvern
category: Community
development_style: declarative
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: skyvernnodejs
author_github_url: https://github.com/Skyvern-AI/skyvern-n8n.git
npm_package_name: n8n-nodes-skyvern
npm_version: 0.0.11
community_fetched_at: 2026-04-16T09:43:36.088Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Workflow",
          "value": "workflow"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    }
  ]

npm_readme:
  <!-- START doctoc generated TOC please keep comment here to allow auto update -->
  <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

  - [n8n-nodes-skyvern](#n8n-nodes-skyvern)
    - [Installation](#installation)
    - [Operations](#operations)
    - [Credentials](#credentials)
    - [Resources](#resources)

  <!-- END doctoc generated TOC please keep comment here to allow auto update -->

  # n8n-nodes-skyvern

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

  [Skyvern](https://www.skyvern.com/) is an [open-source](https://github.com/Skyvern-AI/skyvern) product. It automates browser-based workflows using LLMs and computer vision. It provides a simple API endpoint to fully automate manual workflows on a large number of websites, replacing brittle or unreliable automation solutions.

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

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

  ## Installation

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

  ## Operations

  - Task: interact with Skyvern task
  - Workflow: interact with Skyvern workflow

  ## Credentials

  - API Token: Skyvern API token. You can get it from the Skyvern UI
  - Base URL: The endpoint for your Skyvern service. Default is Skyvern Cloud Service, you can also set it to your self-host Skyvern.


  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Skyvern documentation](https://docs.skyvern.com/introduction)

  * [n8n integration code](https://github.com/Skyvern-AI/skyvern-n8n)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of browser-based workflows using Skyvern's API, which combines LLMs and computer vision to automate manual tasks on websites.","capabilities":["Interact with Skyvern tasks","Interact with Skyvern workflows","Automate browser-based workflows using LLMs and computer vision","Replace brittle or unreliable automation solutions"],"authentication":"API Token (Skyvern API token) and Base URL (Skyvern Cloud Service or self-hosted endpoint)","commonUseCases":["Automating manual workflows on websites","Replacing brittle automation scripts","Handling large-scale website automation tasks"],"limitations":[],"relatedNodes":[]}


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

updated_at: 2026-04-16 09:43:36
author_name: xing-lin
author_github_url: https://github.com/browseract-ai/
npm_package_name: n8n-nodes-browseract
npm_version: 1.3.0
community_fetched_at: 2026-04-16T09:43:36.089Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "workflow",
      "options": [
        {
          "name": "Workflow",
          "value": "workflow"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "runWorkflow",
      "options": [
        {
          "name": "Run a Workflow",
          "value": "runWorkflow",
          "action": "Run a workflow"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workflow"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Run a Workflow",
      "value": "runWorkflow",
      "action": "Run a workflow",
      "resource": "workflow"
    }
  ]

npm_readme:
  # n8n Nodes - BrowserAct Integration

  This is an n8n community node that integrates [BrowserAct](https://www.browseract.com/) with your n8n workflows.

  [BrowserAct](https://www.browseract.com/) is a platform for anyone to launch AI-powered crawling tasks with one click to automate web crawling, data extraction, and content generation—without coding. while [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation tool that allows you to connect various services.

  ## Table of Contents

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

  ## Installation

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

  ## Operations

  This node supports a wide range of BrowserAct operations, including:

  - **Run Agent**
    - Start the specified Agent crawler task to obtain the crawled web page data or structured results.
  - **Run Workflow**
    - Execute the specified BrowserAct Workflow, supporting multi-step task orchestration and data processing.

  ## Credentials

  To use a BrowserAct node, you need to complete the following steps:

  1. Create a free account at [BrowserAct.com](https://browseract.com/).

  2. Log in to BrowserAct and visit the "Integrations" page to create your API key.

  3. In n8n, add your `BrowserActApi` to the node's Credentials configuration.

  ⚠️ **Note:** The API key is sensitive information. Please keep it secure and never share it publicly.

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [BrowserAct API Documentation](http://www.browseract.com/docs-api)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of web crawling, data extraction, and content generation by integrating BrowserAct's AI-powered crawling platform into n8n workflows.","capabilities":["Run Agent: Start specified crawler tasks to obtain web page data or structured results","Run Workflow: Execute multi-step task orchestration and data processing workflows","Automated web crawling","Data extraction from websites","Content generation"],"authentication":"API key required (BrowserActApi credential)","commonUseCases":["Automated web scraping for data collection","Multi-step data extraction workflows","AI-powered content generation from web sources","Integrating BrowserAct's crawling tasks with n8n automation"],"limitations":["Community node (not official n8n node)","Requires separate BrowserAct account and API key setup"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-webhook","n8n-nodes-code"]}


node_type: n8n-nodes-vikunja.vikunjaTrigger
package_name: n8n-nodes-vikunja
display_name: Vikunja Trigger
description: Starts the workflow when Vikunja events occur
category: Productivity
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: kolaente
author_github_url: https://github.com/go-vikunja/n8n-vikunja-nodes.git
npm_package_name: n8n-nodes-vikunja
npm_version: 0.4.1
community_fetched_at: 2026-04-16T09:43:36.090Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-vikunja

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

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

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

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

  ## Installation

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

  ## Operations

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

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

  ## Credentials

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

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

  ## Compatibility

  Tested with n8n Version 1.91.3.

  ## Development

  You need npm and NodeJS installed.

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

  ## Resources

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

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows when Vikunja events occur and enables automation using Vikunja API tokens.","capabilities":["Trigger workflows on Vikunja events","Execute Vikunja API operations","Use Vikunja webhooks"],"authentication":"API token required (API URL and token)","commonUseCases":["Automate task management in Vikunja","Sync tasks between Vikunja and other services","Execute workflows upon task creation or updates"],"limitations":["Limited to Vikunja API token operations","Community node (not official n8n node)"],"relatedNodes":["Vikunja Task","Vikunja List","Vikunja User"]}


node_type: @virtuoussoftware/n8n-nodes-virtuous-crm.virtuousCrm
package_name: @virtuoussoftware/n8n-nodes-virtuous-crm
display_name: Virtuous CRM
description: Interact with the Virtuous CRM API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: cogitatorprimarch
author_github_url: https://github.com/VirtuousCRM/n8n-nodes-virtuous-crm.git
npm_package_name: @virtuoussoftware/n8n-nodes-virtuous-crm
npm_version: 0.1.3
community_fetched_at: 2026-04-16T09:43:36.091Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Gift",
          "value": "gift"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "singleContactTransaction",
      "options": [
        {
          "name": "Create Contact Transaction",
          "value": "singleContactTransaction",
          "action": "Create a contact that will go through the import process",
          "description": "Create a Contact that will go through the import process"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "singleGiftTransaction",
      "options": [
        {
          "name": "Create Gift Transaction",
          "value": "singleGiftTransaction",
          "action": "Create a gift that will go through the import process",
          "description": "Create a Gift that will go through the import process"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "gift"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Contact Transaction",
      "value": "singleContactTransaction",
      "action": "Create a contact that will go through the import process",
      "description": "Create a Contact that will go through the import process",
      "resource": "contact"
    },
    {
      "name": "Create Gift Transaction",
      "value": "singleGiftTransaction",
      "action": "Create a gift that will go through the import process",
      "description": "Create a Gift that will go through the import process",
      "resource": "gift"
    }
  ]

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

  # n8n-nodes-virtuous-crm

  This is an n8n community node. It lets you use the [Virtuous CRM API](https://docs.virtuoussoftware.com/) in your n8n workflows.

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

  ## Installation

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

  ## Operations

  ### Contact
  - [Create Contact Transaction](https://docs.virtuoussoftware.com/#0b27a920-243c-4f02-a5c3-6e522b926431)
  - [Get Contact](https://docs.virtuoussoftware.com/#118355eb-8028-4751-b5ab-151ff0aa2b22) - Retrieve a contact by ID
  - [Get Contact by Reference](https://docs.virtuoussoftware.com/#0188f30c-9404-4767-a1db-8851250cf6d9) - Retrieve a contact by reference source and ID

  ### Contact Individual
  - [Get Individual](https://docs.virtuoussoftware.com/#18393359-fb21-49ba-aa6c-cd3421d2a01c) - Retrieve an individual by ID
  - [Get Individuals for Contact](https://docs.virtuoussoftware.com/#adfa974c-6135-4203-b456-84ffd66b2ccf) - Retrieve all individuals for a contact
  - [Find Individual by Email](https://docs.virtuoussoftware.com/#ba6fb21c-071d-4993-85b0-4777a23d14dd) - Find an individual by email address

  ### Contact Collection
  - [Get Custom Collections for Contacts](https://docs.virtuoussoftware.com/#a1699247-3c3d-4c8e-8348-b97f9134697b) - Retrieve available custom collections
  - [Create Collection for Contact](https://docs.virtuoussoftware.com/#028b8b0d-62ae-4427-8b41-7edfe207aa0f) - Create a collection instance for a contact
  - [Update Collection for Contact](https://docs.virtuoussoftware.com/#2ee0875f-ab44-417a-88d5-7ae7e400cd45) - Update a collection instance for a contact

  ### Contact Individual Collection
  - [Get Custom Collections for Individuals](https://docs.virtuoussoftware.com/#494e2a6b-50bb-486c-84b4-cc4690a5b18e) - Retrieve available custom collections
  - [Create Collection for Individual](https://docs.virtuoussoftware.com/#7a72740b-e1ae-4107-b04b-9d14cd8a8f49) - Create a collection instance for an individual
  - [Update Collection for Individual](https://docs.virtuoussoftware.com/#7a767d99-2c37-4eec-9ee8-bf340d220f07) - Update a collection instance for an individual

  ### Gift
  - [Create Gift Transaction](https://docs.virtuoussoftware.com/#e4a6a1e3-71a4-44f9-bd7c-9466996befac)

  ## Credentials

  An API Key is required to interact with the Virtuous node. Refer to the documentation for API Keys [here](https://docs.virtuoussoftware.com/#authentication)

  ## Compatibility

  Tested locally against n8n 1.115.3

  ## Usage

  The node supports creating Contact and Gift Transactions, retrieving contacts and individuals, and managing custom collections for contacts and individuals. Transaction creation is asynchronous and requires user input on CRM+, so responses will be limited only to headers and status codes. See resources for more information.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Virtuous CRM API Documentation](https://docs.virtuoussoftware.com/)
  * [Gifts Integration Best Practices](https://support.virtuous.org/hc/en-us/articles/21329138310285-Gifts-Integration-Best-Practices)
  * [Contacts Integration Best Practices](https://support.virtuous.org/hc/en-us/articles/21152926831501-Contacts-Integration-Best-Practices)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the Virtuous CRM API for managing contacts and gift transactions.","capabilities":["Create Contact Transactions","Create Gift Transactions","Asynchronous record creation","API interaction with Virtuous CRM+"],"authentication":"API Key required","commonUseCases":["Automating contact onboarding in Virtuous CRM","Processing gift transactions via workflow automation","Integrating CRM data into marketing or sales workflows"],"limitations":["Record creation is asynchronous and requires manual user input on the Virtuous CRM+ platform","API responses are limited to headers and status codes only","Currently supports only Create operations for Contacts and Gifts"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Set"]}


node_type: @liguelead/n8n-nodes-liguelead.ligueLead
package_name: @liguelead/n8n-nodes-liguelead
display_name: LigueLead
description: Send SMS and calls via LigueLead API
category: Community
development_style: declarative
version: 3
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: ligue.lead
author_github_url: https://github.com/ligue-lead-tech/n8n.git
npm_package_name: @liguelead/n8n-nodes-liguelead
npm_version: 0.0.19
community_fetched_at: 2026-04-16T09:43:36.091Z
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Send SMS",
          "value": "sendSms",
          "description": "Sends SMS via endpoint /v1/sms"
        },
        {
          "name": "Send Call",
          "value": "sendVoice",
          "description": "Sends a call using an existing voice_upload_id"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send SMS",
      "value": "sendSms",
      "description": "Sends SMS via endpoint /v1/sms"
    },
    {
      "name": "Send Call",
      "value": "sendVoice",
      "description": "Sends a call using an existing voice_upload_id"
    }
  ]

npm_readme:
  # LigueLead – n8n Custom Node

  Custom **n8n** node for integration with the **LigueLead API**, allowing the sending of **SMS messages** and **voice calls using pre-uploaded audio**.

  This node was designed with a strong focus on **extensibility**, **easy maintenance**, and **clean architecture**, making it simple to add new actions without modifying the core node logic.

  ---

  ## 📌 Features

  Currently, the node supports:

  - 📩 **SMS sending**
  - 📞 **Voice calls** using a `voice_upload_id`

  ---

  ## 🔐 Credentials (LigueLead API)

  | Field     | Description                     |
  | --------- | ------------------------------- |
  | Base URL  | https://api.liguelead.com.br/v1 |
  | API Token | Authentication token            |
  | App ID    | Application identifier          |

  Headers sent automatically:

  ```
  api-token: <API_TOKEN>
  app-id: <APP_ID>
  ```

  ---

  ## ⚙️ How to Use

  1. Create the **LigueLead API** credential
  2. Drag the **LigueLead** node into your workflow
  3. Select the desired operation

  ---

  ## 🧩 Operations

  ### 📩 Send SMS (sendSms)

  Required fields:

  - phones: string[]
  - message: string
  - title: string

  Optional field:

  - isFlash: boolean (SMS type)

  Example:

  ```json
  {
  	"phones": ["5511999999999"],
  	"message": "Hello!",
  	"title": "Test"
  }
  ```

  ---

  ### 📞 Send Voice Call (sendVoice)

  Required fields:

  - phones: string[]
  - voice_upload_id: number
  - title: string

  Example:

  ```json
  {
  	"title": "July Campaign",
  	"voice_upload_id": 123,
  	"phones": ["5511999999999"]
  }
  ```


node_type: n8n-nodes-pdforge.pdforge
package_name: n8n-nodes-pdforge
display_name: PDF Noodle
description: Generate PDF from HTML or reusable templates with PDF Noodle (previously pdforge).
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: mabreum
author_github_url: https://github.com/pdforge/
npm_package_name: n8n-nodes-pdforge
npm_version: 2.3.3
community_fetched_at: 2026-04-16T09:43:36.092Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "pdf",
      "options": [
        {
          "name": "Generate PDF",
          "value": "pdf"
        },
        {
          "name": "Generate Image",
          "value": "image"
        },
        {
          "name": "Convert HTML to PDF",
          "value": "html-to-pdf"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sync",
      "options": [
        {
          "name": "Generate Syncronously",
          "value": "sync",
          "action": "Generate PDF syncronously",
          "description": "Generate PDF syncronously"
        },
        {
          "name": "Generate Asynchronously",
          "value": "async",
          "action": "Generate PDF asynchronously",
          "description": "Generate PDF asynchronously"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdf"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sync",
      "options": [
        {
          "name": "Generate Syncronously",
          "value": "sync",
          "action": "Generate image syncronously",
          "description": "Generate Image syncronously"
        },
        {
          "name": "Generate Asynchronously",
          "value": "async",
          "action": "Generate image asynchronously",
          "description": "Generate Image asynchronously"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sync",
      "options": [
        {
          "name": "Convert HTML to PDF Syncronously",
          "value": "sync",
          "action": "Convert syncronously",
          "description": "Convert your HTML data into a PDF file syncronously"
        },
        {
          "name": "Convert HTML to PDF Asynchronously",
          "value": "async",
          "action": "Convert asynchronously",
          "description": "Convert your HTML data into a PDF file asynchronously"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "html-to-pdf"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Syncronously",
      "value": "sync",
      "action": "Generate PDF syncronously",
      "description": "Generate PDF syncronously",
      "resource": "pdf"
    },
    {
      "name": "Generate Asynchronously",
      "value": "async",
      "action": "Generate PDF asynchronously",
      "description": "Generate PDF asynchronously",
      "resource": "pdf"
    },
    {
      "name": "Generate Syncronously",
      "value": "sync",
      "action": "Generate image syncronously",
      "description": "Generate Image syncronously",
      "resource": "image"
    },
    {
      "name": "Generate Asynchronously",
      "value": "async",
      "action": "Generate image asynchronously",
      "description": "Generate Image asynchronously",
      "resource": "image"
    },
    {
      "name": "Convert HTML to PDF Syncronously",
      "value": "sync",
      "action": "Convert syncronously",
      "description": "Convert your HTML data into a PDF file syncronously",
      "resource": "html-to-pdf"
    },
    {
      "name": "Convert HTML to PDF Asynchronously",
      "value": "async",
      "action": "Convert asynchronously",
      "description": "Convert your HTML data into a PDF file asynchronously",
      "resource": "html-to-pdf"
    }
  ]

npm_readme:
  # n8n-nodes-pdforge

  This is an n8n node. It lets you use [pdf noodle](https://pdfnoodle.com) (previously pdforge) in your n8n workflows.

  **pdf noodle automates PDF Generation in minutes using AI**.

  Create custom PDF templates in seconds using our AI Agents, fine tune the design with our pDF builder and automate the PDF delivery with our native pdf noodle node inside n8n. No code or design experience needed.

  [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

  With pdf noodle you can create pdfs from html or reusable templates (or convert them to images), both synchronously or asynchronously. Here are the operations you can use:

  | Name                      | Operation           | Description                                                                                                                  | Documentation Link                                                          |
  | ------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
  | Generate Pdf Sync         | `pdf:sync`          | Creates a PDF file with JSON data and your template.                                                                         | [Link](https://docs.pdforge.com/pdfs/synchronous-request)                   |
  | Generate Pdf Async        | `pdf:async`         | Creates a PDF file asynchronously with JSON data and your template. The API returns immediately, and will retry for 3 times. | [Link](https://docs.pdforge.com/pdfs/asynchronous-request)                  |
  | Generate Image Sync       | `image:sync`        | Creates a PNG file with JSON data and your template.                                                                         | [Link](https://docs.pdforge.com/images/how-render-png-instead-of-pdf)       |
  | Generate Image Async      | `image:async`       | Creates a PNG file asynchronously with JSON data and your template. The API returns immediately, and will retry for 3 times. | [Link](https://docs.pdforge.com/images/how-render-png-instead-of-pdf)       |
  | Convert HTML to PDF Sync  | `html-to-pdf:sync`  | Creates a PDF file using the HTML data and PDF params sent.                                                                  | [Link](https://docs.pdforge.com/html-to-pdf-conversion/synchronous-request) |
  | Convert HTML to PDF Async | `html-to-pdf:async` | Creates a PDF file asynchronously using the HTML data and PDF params sent.                                                   | [Link](https://docs.pdforge.com/html-to-pdf-conversion/synchronous-request) |

  ## Credentials

  You only need a pdf noodle API Key to integrate to start generating pdfs. You can get it using our [web portal](https://app.pdfnoodle.com/auth/sign-up) and choosing any plan to subscribe to.

  - [pdf noodle Auth Documentation](https://docs.pdforge.com/getting-started/authentication)

  ## Compatibility

  This package was developed & tested with n8n > 1.97.1

  ## Usage

  Please check out the [pdf noodle API Reference](https://docs.pdforge.com/) for more information on how to use the integration.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [pdf noodle API Reference](https://docs.pdforge.com/)
  - [pdf noodle Knowledge Base](https://docs.pdforge.com/knowledge-base)

  ## Version history

  | Version | Changes                                                                                                           |
  | ------- | ----------------------------------------------------------------------------------------------------------------- |
  | 2.3.3   | Updating repository to pdfnoodle                                                                                  |
  | 2.3.2   | Fix on package json to make integration update work on n8n instances                                              |
  | 2.3.1   | Adjusting names so it doesn't break existing pdforge installs on n8n                                              |
  | 2.3.0   | Rebranding changing the name from pdforge to pdf noodle (everything else stays the same)                          |
  | 2.2.1   | Added debug option so you have additional information such as rendered HTML and variables validation              |
  | 2.1.1   | Changed description and treated Print Params not being properly converted into objects                            |
  | 2.1.0   | Added `hasCover` option to include a cover page in generated PDFs to automatically hide footer and header content |
  | 2.0.0   | Added support for HTML to PDF conversion operations and custom s3 bucket configuration                            |
  | 1.0.0   | Initial release with PDF and Image generation capabilities                                                        |

ai_documentation_summary:
  {"purpose":"This n8n node enables the generation of PDFs from HTML or reusable templates, as well as the conversion of HTML to PDF, using the PDF Noodle (formerly pdforge) service.","capabilities":["Synchronous PDF generation from JSON data and templates","Asynchronous PDF generation with automatic retry logic","Synchronous PNG image generation from templates","Asynchronous PNG image generation from templates","HTML to PDF conversion with custom parameters","HTML to PDF conversion asynchronously","Custom template creation via AI agents","Support for cover pages and footer/header customization","Configuration for custom S3 buckets"],"authentication":"API Key required","commonUseCases":["Automated invoice or receipt generation","Document templating for marketing materials","Converting web pages or HTML content to PDF format","Batch processing of documents with dynamic data"],"limitations":["Requires a subscription to PDF Noodle service","Asynchronous operations may have a delay before completion","Minimum n8n version 1.97.1 required for compatibility"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-s3.s3","n8n-nodes-code.executeCode"]}


node_type: n8n-nodes-documentero.documentero
package_name: n8n-nodes-documentero
display_name: Documentero
description: Generate Word, Excel or PDF Document based on Document Template. Get API Key from Documentero APP
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: documentero
author_github_url: https://github.com/documentero/
npm_package_name: n8n-nodes-documentero
npm_version: 1.0.4
community_fetched_at: 2026-04-16T09:43:36.093Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate Document",
          "value": "generate",
          "action": "Generate document"
        },
        {
          "name": "Generate Document and Send as Email Attachment",
          "value": "generateAndEmail",
          "action": "Generate document and send as email attachment"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Document",
      "value": "generate",
      "action": "Generate document"
    },
    {
      "name": "Generate Document and Send as Email Attachment",
      "value": "generateAndEmail",
      "action": "Generate document and send as email attachment"
    }
  ]

npm_readme:
  # n8n-nodes-documentero

  An n8n community node that integrates the **Documentero API - Document Generation** into your workflows.

  [Documentero – Document Generation](https://documentero.com) is a cloud-based document generation service. Generate Word, Excel, and PDF documents from ****.docx/.xlsx templates** via API. Templates support dynamic fields, tables, formulas, conditional sections, images, HTML, Markdown, and QR codes.

  [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)
  - [Usage](#usage)
  - [Resources](#resources)
  - [License](#license)

  ## Installation

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

  ## Operations

  Supported operations:

  - **Generate Document** — Populate a .xlsx or .docx template and generate a document.
  - **Generate and Email Document** — Populate a .xlsx or .docx template and send the generated document as an email attachment.

  Response fields:

  - **data (binary)** — The generated document as a binary file (.docx / .pdf / .xlsx). JSON metadata from the API response is returned alongside the binary; base64 content is removed.

  ## Credentials

  Obtain your API key for Documentero:

  1. Log in: https://app.documentero.com/login
  2. Open Account Settings: https://app.documentero.com/admin/account
  3. Copy the API key assigned to your account.
     
  	![Documentero API Key Location](assets/documenteroapikey.png)

  4. Use this API key when creating the n8n credentials for the node.
     
  	![Documentero n8n Connection](assets/n8napikey.png)

  ## Usage

  - Create or upload template(s) (.docx/.xlsx) in your Documentero account: https://app.documentero.com
    
  	![Documentero Sample Template](assets/documenterosample.png)

  - Optional: After adding the template, set the output format and default filename on the template overview page in Documentero.
  - Add a Documentero node to your workflow.
    
  	![Documentero Workflow](assets/n8nflow.png)

  - Choose an operation:
  	- Generate Document — pass the generated file to downstream nodes (e.g., OneDrive, Google Drive, Outlook).
  	- Generate and Email Document — let Documentero email the generated file for you.
  - Select the template to use from the “Document Template” dropdown.
  - In Documentero (Template Overview → API/JSON), copy the JSON structure and paste it into the node’s Data (JSON) field, then fill in values.
    
  	![Documentero Template Overview](assets/documenterodef.png)

  - Run the workflow.
  - The node outputs the generated file under binary > data for further processing (.docx / .pdf / .xlsx).

  	![Documentero Flow](assets/n8nnodesample.png)

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Documentero Homepage](https://documentero.com)
  * [Documentero App](https://app.documentero.com)
  * [Documentero Docs](https://docs.documentero.com)

  ## License

  MIT © Documentero

ai_documentation_summary:
  {"purpose":"This n8n community node integrates the Documentero API to generate Word, Excel, or PDF documents from templates populated with dynamic data.","capabilities":["Generate documents from .docx or .xlsx templates","Output documents in Word, Excel, or PDF formats","Support dynamic fields, tables, formulas, conditional sections, images, HTML, Markdown, and QR codes in templates","Generate and email documents directly as attachments","Return generated files as binary data for downstream processing"],"authentication":"API key required (obtained from Documentero app account settings)","commonUseCases":["Automated invoice or contract generation","Creating personalized marketing materials","Generating reports with dynamic data","Sending document attachments via email workflows"],"limitations":["Limited to document generation; no direct editing of existing documents","Templates must be pre-uploaded to Documentero account","Requires external API key management"],"relatedNodes":["n8n-nodes-base.binary","n8n-nodes-base.email","n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: n8n-nodes-pushinator.pushinator
package_name: n8n-nodes-pushinator
display_name: Pushinator
description: Send notifications using Pushinator
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: makstamoian
author_github_url: https://github.com/appricos/pushinator-n8n.git
npm_package_name: n8n-nodes-pushinator
npm_version: 0.1.4
community_fetched_at: 2026-04-16T09:43:36.094Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "send_notification",
      "options": [
        {
          "name": "Send Notification",
          "value": "send_notification",
          "action": "Send a push notification"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Notification",
      "value": "send_notification",
      "action": "Send a push notification"
    }
  ]

npm_readme:
  # n8n-nodes-pushinator

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

  Pushinator is a powerful push notification service that lets you send real-time updates to iPhone, iPad, and Android devices.

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

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

  ## Installation

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

  ## Operations

  ### Send Notification
  This operation lets you choose a channel from the list of your channels, add the notification text and send the notification to the selected channel.
  ## Credentials

  Your main credential is the API token. If you already have a Pushinator account, go to your [API tokens page](https://console.pushinator.com/tokens), create a new token and note it down. Use this token when connecting your  account in the Pushinator node.

  If you don't have an account:
  - Create an account at https://console.pushinator.com/sign-up
  - Create a channel in the [channels page](https://console.pushinator.com/channels)
  - Create a new token in the [API tokens page](https://console.pushinator.com/tokens), note it down and use it when connecting your account in the Pushinator node.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Pushinator website](https://pushinator.com)
  * [Pushinator API reference](https://pushinator.com/api)

ai_documentation_summary:
  {"purpose":"This n8n community node sends real-time push notifications to iPhone, iPad, and Android devices using the Pushinator service.","capabilities":["Send push notifications via selected channel","Add custom notification text","Manage multiple notification channels"],"authentication":"API token required","commonUseCases":["Sending real-time updates to mobile devices","Automated push notifications in workflow triggers","User engagement campaigns via mobile alerts"],"limitations":[],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-webhook"]}


node_type: n8n-nodes-peliqan.peliqan
package_name: n8n-nodes-peliqan
display_name: Peliqan
description: Get data from Peliqan
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: peliqan-dev
author_github_url: https://github.com/Peliqan-io/
npm_package_name: n8n-nodes-peliqan
npm_version: 0.0.6
community_fetched_at: 2026-04-16T09:43:36.094Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "table",
      "options": [
        {
          "name": "Endpoint",
          "value": "endpoint"
        },
        {
          "name": "Pipeline",
          "value": "pipeline"
        },
        {
          "name": "Query",
          "value": "query"
        },
        {
          "name": "Script",
          "value": "script"
        },
        {
          "name": "Table",
          "value": "table"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "exec",
      "options": [
        {
          "name": "Execute",
          "value": "exec",
          "action": "Execute endpoint",
          "description": "Execute selected endpoint"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "endpoint"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "run",
      "options": [
        {
          "name": "Run",
          "value": "run",
          "action": "Run a pipeline",
          "description": "Start pipeline sync on server"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pipeline"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create SQL Query",
          "value": "create",
          "action": "Create sql view",
          "description": "Create sql view in Peliqan"
        },
        {
          "name": "Execute SQL Query",
          "value": "exec",
          "action": "Execute sql query",
          "description": "Create sql view in Peliqan"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "query"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "run",
      "options": [
        {
          "name": "Run",
          "value": "run",
          "action": "Run script",
          "description": "Run a script"
        },
        {
          "name": "Logs",
          "value": "logs",
          "action": "Return logs of script",
          "description": "Return logs of script"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "script"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get records",
          "description": "Get data from a Peliqan table"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List tables",
          "description": "List all available tables"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "table"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Execute",
      "value": "exec",
      "action": "Execute endpoint",
      "description": "Execute selected endpoint",
      "resource": "endpoint"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run a pipeline",
      "description": "Start pipeline sync on server",
      "resource": "pipeline"
    },
    {
      "name": "Create SQL Query",
      "value": "create",
      "action": "Create sql view",
      "description": "Create sql view in Peliqan",
      "resource": "query"
    },
    {
      "name": "Execute SQL Query",
      "value": "exec",
      "action": "Execute sql query",
      "description": "Create sql view in Peliqan",
      "resource": "query"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run script",
      "description": "Run a script",
      "resource": "script"
    },
    {
      "name": "Logs",
      "value": "logs",
      "action": "Return logs of script",
      "description": "Return logs of script",
      "resource": "script"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get records",
      "description": "Get data from a Peliqan table",
      "resource": "table"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List tables",
      "description": "List all available tables",
      "resource": "table"
    }
  ]

npm_readme:
  # n8n-nodes-peliqan

  This is an **n8n community node** that lets you use [Peliqan](https://peliqan.io) in your [n8n](https://n8n.io) workflows.  

  Peliqan.io is an all-in-one data platform with **ELT**, a **built-in data warehouse**, **data transformations**, and a **data cockpit**.  

  ## Table of contents

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


  ## Installation

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


  ## Operations

  The node currently supports:

  - **List tables** – Retrieve available tables  
  - **Get data from table** – Query records from a Peliqan table  
  - **Run pipeline** – Trigger an existing pipeline  
  - **Execute endpoint** – Call an API endpoint defined in Peliqan  
  - **Create SQL query** – Create a new SQL query in Peliqan  
  - **Execute SQL query** – Run a query against Peliqan’s data warehouse  
  - **Run script** – Execute a script stored in Peliqan  
  - **Get script logs** – Retrieve execution logs of a script  

  ## Credentials

  1. Log in to [Peliqan.io](https://peliqan.io).  
  2. Go to **Settings → API Token**.  
  3. Copy your API Token.  
  4. In n8n, go to **Credentials → New → Peliqan API** and paste your Token.  

  🔑 More details here: [Configure credentials in n8n](https://help.peliqan.io/build-ai-agents-with-n8n-and-peliqan#2401aa9b38798047ad22e353042f5d74).  


  ## Usage

  - Visit the [Peliqan Documentation](https://help.peliqan.io) for guides and tutorials:
      - To set up **AI Agents in n8n** with RAG and SQL: [step-by-step guide](https://help.peliqan.io/build-ai-agents-with-n8n-and-peliqan).  

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)  
  - [Peliqan.io](https://peliqan.io)  
  - [Peliqan Documentation](https://help.peliqan.io)  


  ## Version history

  - **May 2025** – `v0.0.1` initial implementation  
  - **June 2025** – `v0.0.3` add table list operation  
  - **June 2025** – `v0.0.4` enable tool usage of node  
  - **September 2025** – `v0.0.5` UX fixes and code overhaul
  - **October 2025** – `v0.0.6` replace deprecated functions

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Peliqan.io, an all-in-one data platform, allowing users to query data, execute pipelines, and manage scripts within n8n workflows.","capabilities":["List available tables in Peliqan","Query records from specific tables","Trigger existing data pipelines","Call custom API endpoints","Create new SQL queries","Execute SQL queries against the data warehouse","Run stored scripts","Retrieve script execution logs"],"authentication":"API Token required (obtained from Peliqan.io Settings → API Token)","commonUseCases":["Building AI agents with RAG and SQL capabilities","Automating data extraction and transformation workflows","Connecting n8n to Peliqan's built-in data warehouse","Executing scheduled data pipelines via n8n"],"limitations":["Community node (may have fewer updates than official nodes)","Initial implementation status (v0.0.6) suggests potential for future feature additions"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.sql"]}


node_type: n8n-nodes-botnoi-voice.botnoitts
package_name: n8n-nodes-botnoi-voice
display_name: Botnoi Voice
description: Generate speech using Botnoi Voice API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: phoovadet.noobdev
author_github_url: https://github.com/HakusaiTH/n8n-BotnoiVoice.git
npm_package_name: n8n-nodes-botnoi-voice
npm_version: 2.0.7
community_fetched_at: 2026-04-16T09:43:36.095Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "voice",
      "options": [
        {
          "name": "Voice",
          "value": "voice"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate voice",
          "description": "Generate voice from text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voice"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate",
      "value": "generate",
      "action": "Generate voice",
      "description": "Generate voice from text",
      "resource": "voice"
    }
  ]

npm_readme:
  # 🔊 n8n-BotnoiVoice

  Plug-in to connect [Botnoi Voice API](https://voice.botnoi.ai/api-login) to [n8n](https://n8n.io/) — allowing easy use of **Thai Text-to-Speech (TTS)** and **Subtitle Generation (Gensub)** directly inside your n8n workflows.

  ---

  ## 📌 Requirements before starting

  ### 1. Install basic tools

  - [Git](https://git-scm.com/downloads)
  - Node.js version **20+**
  - Recommended via [nvm](https://github.com/nvm-sh/nvm) (Linux, Mac, WSL)
  - For Windows, see [Microsoft Docs](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows)
  - Install n8n globally:

  ```bash
  npm install -g n8n
  ````

  ---

  ## 🚀 How to use the plugin

  ### ✅ Install from npm (recommended)

  1. Create a custom n8n extensions folder:

  ```bash
  mkdir -p ~/.n8n/custom
  cd ~/.n8n/custom
  npm init -y
  ```

  2. Install the plugin:

  ```bash
  npm i n8n-nodes-botnoi-voice
  ```

  3. Start n8n:

  ```bash
  n8n start
  ```

  > 💡 Once installed, search in n8n for **Botnoi Voice** or **Botnoi Gensub** nodes.

  ---

  ### 🛠️ Install locally (if cloning repo)

  1. Clone and install dependencies:

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

  2. Build and link the plugin:

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

  3. Link to your n8n instance:

  ```bash
  mkdir -p ~/.n8n/custom
  cd ~/.n8n/custom
  npm init -y
  npm link n8n-nodes-botnoi-voice
  ```

  4. Start n8n:

  ```bash
  n8n start
  ```

  ---

  ## 🔐 Get API Key from Botnoi Voice

  1. Visit [https://voice.botnoi.ai/api-login](https://voice.botnoi.ai/api-login)
  2. Login or sign up for a free account
  3. Click **Generate API Key**
  4. Copy the key for use in n8n

  <p align="center">
    <img src="https://github.com/user-attachments/assets/53cae275-c947-49ac-aa5f-49c224914da9" width="640" alt="Generate API Key"/>
  </p>

  ---

  ## ⚙️ Add API Key in n8n

  1. Open **Credentials** tab in n8n
  2. Create a new credential → Select **Botnoi Voice**
  3. Paste your API key and test connection

  <p align="center">
    <img src="https://github.com/user-attachments/assets/7ddb26c4-2241-420f-8212-5096e1e052c5" width="640"/>
  </p>
  <p align="center">
    <img src="https://github.com/user-attachments/assets/2d5a905a-7f46-4447-a5fe-aa682a318621" width="640"/>
  </p>

  > ✅ If the key is correct, it will show “Connection tested successfully”.

  ---

  ## 🗣️ Botnoi Voice (TTS)

  Convert any text into natural-sounding speech in Thai, English, Japanese, Vietnamese, and more.

  ### 🧾 Usage Steps

  #### 1️⃣ Enter text to convert

  <p align="center">
    <img src="https://github.com/user-attachments/assets/a20ee802-7ecb-4005-bc18-7ffe18e2ac92" width="640"/>
  </p>

  * Add a `Botnoi Voice` node
  * Enter text manually or use expression (e.g. `{{ $json.output }}`)

  #### 2️⃣ Choose a speaker

  <p align="center">
    <img src="https://github.com/user-attachments/assets/1628e724-a7c6-4f76-a203-dad037eca3a4" width="640"/>
  </p>

  * Over 300 voices available (Eva, Bo, Max, Alisa, etc.)

  #### 3️⃣ Select language

  <p align="center">
    <img src="https://github.com/user-attachments/assets/8fb5380f-f4b2-48cf-89f6-03d77e8679d4" width="640"/>
  </p>

  * Supports multiple languages — choose `Thai`, `English`, `Japanese`, etc.

  #### 4️⃣ Generate audio

  <p align="center">
    <img src="https://github.com/user-attachments/assets/06ecb4b4-cd85-45a2-b99e-6db17f63f443" width="640"/>
  </p>

  * Click **Execute Step** → Output shows `audio_url` for playback or download.

  ---

  ## 🎧 Botnoi Gensub (Subtitle Generator)

  Generate subtitles (SRT / JSON) automatically from any **audio URL** via [Botnoi Voice API](https://voice.botnoi.ai/api-login).

  Ideal for creating Thai transcripts, podcast captions, or speech analytics.

  ### 🧩 Overview

  * Supports **URL input only**
  * Generates **SRT or JSON** subtitles
  * Adjustable silence and duration segmentation
  * Perfect with free hosting (e.g., [EdgeOne Pages](https://pages.edgeone.ai/drop))

  ---

  ### 🧱 Example: Generate Subtitles from an Audio URL

  #### ✅ Step 1 — Upload audio

  Use [EdgeOne Pages Drop](https://pages.edgeone.ai/drop) to host your file:

  1. Go to [https://pages.edgeone.ai/drop](https://pages.edgeone.ai/drop)
  2. Enter a temporary domain name
  3. Upload your `.mp3` or `.wav`
  4. Copy the URL (e.g.)

     ```
     https://forward-cyan-xo4dfpu9q6.edgeone.app/Recording.mp3
     ```

  <p align="center">
    <img alt="Image" src="https://github.com/user-attachments/assets/02666ee6-50c8-40fc-a1c8-f0d4908559f0" width="640"/>
  </p>

  ---

  #### ✅ Step 2 — Configure Botnoi Gensub Node

  | Field                          | Example                                                     | Description                              |
  | ------------------------------ | ----------------------------------------------------------- | ---------------------------------------- |
  | **Credential to connect with** | Botnoi account                                              | Use your `botnoiApi` credential          |
  | **Audio URL**                  | `https://forward-cyan-xo4dfpu9q6.edgeone.app/Recording.mp3` | Publicly accessible file URL             |
  | **Max Duration (Seconds)**     | `10`                                                        | Max duration per subtitle segment        |
  | **Max Silence (Seconds)**      | `0.3`                                                       | Silence threshold before splitting lines |
  | **Return SRT**                 | `Yes`                                                       | Choose “Yes” to get SRT subtitle text    |
  | **Timeout (Ms)**               | `60000`                                                     | Request timeout (default 60s)            |

  <p align="center">
   	<img alt="Image" src="https://github.com/user-attachments/assets/4c46f6c1-594d-48dc-83df-b23db3abb38c" width="640"/>
  </p>

  ---

  #### ✅ Step 3 — Execute and check result

  ```json
  {
    "message": "Transcribe successfully",
    "data": {
      "text": "1\n00:00:00,390 --> 00:00:02,220\nสวัสดีตอนเช้า\n",
      "current_point": 509,
      "current_monthly_point": 0,
      "used_points": 15
    }
  }
  ```

  **Result (SRT format):**

  ```
  1
  00:00:00,390 --> 00:00:02,220
  สวัสดีตอนเช้า
  ```

  <p align="center">
    <img alt="Image" src="https://github.com/user-attachments/assets/f992c796-8185-482d-80f5-188fd6599706" width="640"/>
  </p>

  ---

  ## ⚙️ Tips

  * Both nodes share the same credential `botnoiApi`
  * Ensure your audio URL is **publicly accessible** (no login needed)
  * Supported file formats: `.mp3`, `.wav`, `.m4a`
  * Recommended audio length ≤ 60 seconds for best transcription quality

  ---

  ## 📚 References

  * [Botnoi Voice API Docs](https://www.botnoigroup.com/botnoivoice/doc/api-user-guide)
  * [EdgeOne Pages Drop](https://pages.edgeone.ai/drop) — free quick hosting
  * [n8n Node Developer Docs](https://docs.n8n.io/integrations/creating-nodes/)

  ---

  ## 🧑‍💻 Maintainer

  Developed by **Phoovadet Noobdev**

  ---

  ## 📝 License

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

ai_documentation_summary:
  {"purpose":"A n8n node that connects to the Botnoi Voice API to generate Thai, English, Japanese, and Vietnamese speech from text (TTS) and create subtitles (SRT/JSON) from audio URLs (Gensub).","capabilities":["Text-to-Speech (TTS) generation in multiple languages","Selection from over 300 available voices","Subtitle generation from audio URLs (SRT format)","Subtitle generation from audio URLs (JSON format)","Configurable subtitle segmentation by max duration and silence threshold","Audio playback URL output"],"authentication":"API Key required (configured via n8n Credentials tab)","commonUseCases":["Automated voice announcements in Thai or other supported languages","Creating subtitles for podcasts or video content","Generating audio from text documents","Transcribing audio files into text or subtitle format"],"limitations":["Subtitle generation (Gensub) requires a publicly accessible audio URL only","Audio URLs must be hosted on free platforms like EdgeOne Pages for Gensub functionality","Gensub has a default request timeout of 60 seconds (configurable up to 60000ms)"],"relatedNodes":["n8n-nodes-core.webhook","n8n-nodes-core.httpRequest","n8n-nodes-core.code"]}


node_type: @crono-one/n8n-nodes-crono-public-api.cronoPublicApi
package_name: @crono-one/n8n-nodes-crono-public-api
display_name: Crono
description: Consume the Crono Public API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: alen_crono
author_github_url: https://github.com/crono-one/n8n-nodes-crono-public-api.git
npm_package_name: @crono-one/n8n-nodes-crono-public-api
npm_version: 1.2.0
community_fetched_at: 2026-04-16T09:43:36.096Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "company",
      "options": [
        {
          "name": "Activity",
          "value": "activity"
        },
        {
          "name": "Company",
          "value": "company"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Deal",
          "value": "deal"
        },
        {
          "name": "External Property",
          "value": "externalProperty"
        },
        {
          "name": "Import",
          "value": "import"
        },
        {
          "name": "List",
          "value": "list"
        },
        {
          "name": "Note",
          "value": "note"
        },
        {
          "name": "Pipeline",
          "value": "pipeline"
        },
        {
          "name": "Sequence",
          "value": "sequence"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Template",
          "value": "template"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a company"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a company"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many companies"
        },
        {
          "name": "Import",
          "value": "import",
          "action": "Import companies"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search companies"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "company"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a contact"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a contact"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many contacts"
        },
        {
          "name": "Import",
          "value": "import",
          "action": "Import contacts"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search contacts"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a deal"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a deal"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many deals"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search deals"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a deal"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "deal"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a note"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a note"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many notes"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search notes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "note"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search tasks"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an activity"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many activities"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search activities"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "activity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Add Companies",
          "value": "addCompanies",
          "action": "Add companies to a list"
        },
        {
          "name": "Add Contacts",
          "value": "addContacts",
          "action": "Add contacts to a list"
        },
        {
          "name": "Add Sequences",
          "value": "addSequences",
          "action": "Add sequences to a list"
        },
        {
          "name": "Add Templates",
          "value": "addTemplates",
          "action": "Add templates to a list"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a list"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a list"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a list"
        },
        {
          "name": "Remove Companies",
          "value": "removeCompanies",
          "action": "Remove companies from a list"
        },
        {
          "name": "Remove Contacts",
          "value": "removeContacts",
          "action": "Remove contacts from a list"
        },
        {
          "name": "Remove Sequences",
          "value": "removeSequences",
          "action": "Remove sequences from a list"
        },
        {
          "name": "Remove Templates",
          "value": "removeTemplates",
          "action": "Remove templates from a list"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search lists"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a list"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "list"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many pipelines"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pipeline"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Add Contacts",
          "value": "addContacts",
          "action": "Add contacts to a sequence"
        },
        {
          "name": "Search Sequence",
          "value": "search",
          "action": "Search sequence"
        },
        {
          "name": "Search Sequence Details",
          "value": "searchDetails",
          "action": "Search sequence details"
        },
        {
          "name": "Stop Contact Sequence",
          "value": "stopContactSequence",
          "action": "Stop sequence for a contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sequence"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a template"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search templates"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search external properties"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "externalProperty"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many users"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search users"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an import"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many imports"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "import"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a company",
      "resource": "company"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a company",
      "resource": "company"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many companies",
      "resource": "company"
    },
    {
      "name": "Import",
      "value": "import",
      "action": "Import companies",
      "resource": "company"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search companies",
      "resource": "company"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a company",
      "resource": "company"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a contact",
      "resource": "contact"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a contact",
      "resource": "contact"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many contacts",
      "resource": "contact"
    },
    {
      "name": "Import",
      "value": "import",
      "action": "Import contacts",
      "resource": "contact"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search contacts",
      "resource": "contact"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a contact",
      "resource": "contact"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a deal",
      "resource": "deal"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a deal",
      "resource": "deal"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many deals",
      "resource": "deal"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search deals",
      "resource": "deal"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a deal",
      "resource": "deal"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a note",
      "resource": "note"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a note",
      "resource": "note"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many notes",
      "resource": "note"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search notes",
      "resource": "note"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "resource": "task"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search tasks",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an activity",
      "resource": "activity"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many activities",
      "resource": "activity"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search activities",
      "resource": "activity"
    },
    {
      "name": "Add Companies",
      "value": "addCompanies",
      "action": "Add companies to a list",
      "resource": "list"
    },
    {
      "name": "Add Contacts",
      "value": "addContacts",
      "action": "Add contacts to a list",
      "resource": "list"
    },
    {
      "name": "Add Sequences",
      "value": "addSequences",
      "action": "Add sequences to a list",
      "resource": "list"
    },
    {
      "name": "Add Templates",
      "value": "addTemplates",
      "action": "Add templates to a list",
      "resource": "list"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a list",
      "resource": "list"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a list",
      "resource": "list"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a list",
      "resource": "list"
    },
    {
      "name": "Remove Companies",
      "value": "removeCompanies",
      "action": "Remove companies from a list",
      "resource": "list"
    },
    {
      "name": "Remove Contacts",
      "value": "removeContacts",
      "action": "Remove contacts from a list",
      "resource": "list"
    },
    {
      "name": "Remove Sequences",
      "value": "removeSequences",
      "action": "Remove sequences from a list",
      "resource": "list"
    },
    {
      "name": "Remove Templates",
      "value": "removeTemplates",
      "action": "Remove templates from a list",
      "resource": "list"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search lists",
      "resource": "list"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a list",
      "resource": "list"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many pipelines",
      "resource": "pipeline"
    },
    {
      "name": "Add Contacts",
      "value": "addContacts",
      "action": "Add contacts to a sequence",
      "resource": "sequence"
    },
    {
      "name": "Search Sequence",
      "value": "search",
      "action": "Search sequence",
      "resource": "sequence"
    },
    {
      "name": "Search Sequence Details",
      "value": "searchDetails",
      "action": "Search sequence details",
      "resource": "sequence"
    },
    {
      "name": "Stop Contact Sequence",
      "value": "stopContactSequence",
      "action": "Stop sequence for a contact",
      "resource": "sequence"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a template",
      "resource": "template"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search templates",
      "resource": "template"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search external properties",
      "resource": "externalProperty"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a user",
      "resource": "user"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many users",
      "resource": "user"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search users",
      "resource": "user"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an import",
      "resource": "import"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many imports",
      "resource": "import"
    }
  ]

npm_readme:
  # n8n-nodes-crono-public-api

  This is an n8n community node. It lets you use Crono Public API in your n8n workflows.

  Crono Public API gives programmatic access to Crono CRM data such as companies, contacts, deals, activities, and more.

  [Installation](#installation)  
  [Operations](#operations)  
  [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

  - Activities: Get, Get Many, Search
  - Companies: Create, Get, Get Many, Search, Update, Import
  - Contacts: Create, Get, Get Many, Search, Update, Import
  - Deals: Create, Get, Get Many, Search, Update
  - External Properties: Search
  - Imports: Get, Get Many
  - Lists: Search
  - Notes: Create, Get, Get Many, Search
  - Pipelines: Get Many
  - Strategies: Search, Search Details
  - Tasks: Create, Search
  - Users: Get, Get Many, Search

  ## Credentials

  This node uses Crono Public API credentials.

  Credentials are required for all operations.

  You need:
  - API Key
  - API Secret

  The node sends credentials via headers:
  - `X-Api-Key`
  - `X-Api-Secret`

  ## Compatibility

  Minimum n8n version: 1.120.4  
  Tested against n8n version: 1.120.4

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Crono Public API documentation](https://ext.crono.one/docs/)

  ## Version history

  * [CHANGELOG](./CHANGELOG.md)

  ----

ai_documentation_summary:
  {"purpose":"This n8n community node enables programmatic access to Crono CRM data by consuming the Crono Public API within n8n workflows.","capabilities":["Retrieve company data","Retrieve contact data","Retrieve deal data","Retrieve activity data","Create new companies","Create new contacts","Create new deals","Create new tasks","Create new notes","Update existing companies"],"authentication":"API Key and API Secret required, sent via X-Api-Key and X-Api-Secret headers","commonUseCases":["Automating CRM data synchronization between n8n and Crono","Creating and managing leads and contacts through workflow automation","Tracking deal progression and activities","Generating reports on company and contact data"],"limitations":["Requires valid API credentials (API Key and Secret) for all operations","Limited to Crono Public API access (no private API features)"],"relatedNodes":["Crono Private API node","Generic HTTP Request node","CRM integration nodes"]}


node_type: @aotoki/n8n-nodes-line-messaging.lineMessaging
package_name: @aotoki/n8n-nodes-line-messaging
display_name: Line Messaging
description: Interact with the Line Messaging API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: elct9620
author_github_url: https://github.com/elct9620/n8n-nodes-line-messaging.git
npm_package_name: @aotoki/n8n-nodes-line-messaging
npm_version: 0.10.0
community_fetched_at: 2026-04-16T09:43:36.097Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "reply",
      "options": [
        {
          "name": "Get Profile",
          "value": "getProfile",
          "action": "Retrieve profile information of a user",
          "description": "Retrieve profile information of a user"
        },
        {
          "name": "Multicast",
          "value": "multicast",
          "action": "Send a message to multiple users",
          "description": "Send a message to multiple users"
        },
        {
          "name": "Reply",
          "value": "reply",
          "action": "Reply to a message using a reply token",
          "description": "Reply to a message using a reply token"
        },
        {
          "name": "Send",
          "value": "send",
          "action": "Send a message to a user",
          "description": "Send a message to a user"
        },
        {
          "name": "Show Loading Animation",
          "value": "showLoadingAnimation",
          "action": "Display a loading animation to a user",
          "description": "Display a loading animation to a user"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Profile",
      "value": "getProfile",
      "action": "Retrieve profile information of a user",
      "description": "Retrieve profile information of a user"
    },
    {
      "name": "Multicast",
      "value": "multicast",
      "action": "Send a message to multiple users",
      "description": "Send a message to multiple users"
    },
    {
      "name": "Reply",
      "value": "reply",
      "action": "Reply to a message using a reply token",
      "description": "Reply to a message using a reply token"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send a message to a user",
      "description": "Send a message to a user"
    },
    {
      "name": "Show Loading Animation",
      "value": "showLoadingAnimation",
      "action": "Display a loading animation to a user",
      "description": "Display a loading animation to a user"
    }
  ]

npm_readme:
  # n8n-nodes-line-messaging

  This is an n8n community node. It lets you use LINE Messaging API in your n8n workflows.

  LINE Messaging API enables developers to build chatbots and integrate messaging features into their services with the LINE platform, which is especially popular in Japan, Thailand, Taiwan, and other parts of Asia.

  [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)
  - [Development](#development)
  - [Resources](#resources)

  ## Installation

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

  ```bash
  npm install @aotoki/n8n-nodes-line-messaging
  ```

  ## Operations

  This node provides the following operations:

  ### Line Messaging Node

  - **Reply**: Reply to a user's message using the replyToken
  - **Send**: Proactively send messages to users using their User ID
  - **Multicast**: Send messages to multiple users simultaneously (up to 500 recipients)
  - **Get Profile**: Retrieve user profile information

  ### Line Messaging Data Node

  - **Get Content**: Retrieve content (images, videos, audio, files) from message IDs

  ### Line Messaging Trigger Node

  - **Webhook**: Receive events from LINE Messaging API

  ## Credentials

  You need to set up a LINE Bot channel in the [LINE Developers Console](https://developers.line.biz/console/) before using this node.

  1. Create a new provider and channel in the LINE Developers Console
  2. Enable the Messaging API option
  3. Get your Channel Secret and Channel Access Token from the Basic Settings and Messaging API tabs
  4. Use these credentials when setting up the node in n8n

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Built without external dependencies to comply with n8n verified node requirements

  ## Usage

  ### Setting up a LINE Bot Webhook

  1. Create a workflow with the LINE Messaging Trigger node
  2. Configure the node to listen for the events you're interested in
  3. Copy the webhook URL from the trigger node
  4. Set this URL as your webhook URL in the LINE Developers Console
  5. Add a verification step in your workflow to validate the signature using the Channel Secret

  ### Responding to Messages

  1. When a message is received, your workflow will be triggered
  2. You can access the `replyToken` from the trigger output
  3. Use the LINE Messaging node with the "Reply" operation to send a response
  4. Set the reply token and add the messages you want to send

  ### Sending Proactive Messages

  1. Use the LINE Messaging node with the "Send" operation
  2. Provide the User ID of the recipient (format: U1234567890abcdef...)
  3. Add the messages you want to send
  4. This allows sending messages without waiting for user interaction

  ### Sending Bulk Messages (Multicast)

  1. Use the LINE Messaging node with the "Multicast" operation
  2. Provide comma-separated User IDs (e.g., "U1234..., U5678..., U9012...")
  3. Add the messages you want to send to all recipients
  4. Supports up to 500 recipients per operation for efficient bulk messaging

  ### Getting User Profiles

  1. Use the LINE Messaging node with the "Get Profile" operation
  2. Provide the User ID to retrieve profile information
  3. Get user's display name, profile picture, and status message

  ### Retrieving Media Content

  1. When a media message (image, video, audio, file) is received, you get a message ID
  2. Use the LINE Messaging Data node with the "Get Content" operation
  3. Provide the message ID to download the content as binary data
  4. The content can then be processed, saved, or sent to other services

  ### Example: Simple Echo Bot

  This example workflow receives messages and echoes them back to the user:

  1. Add a LINE Messaging Trigger node and configure it to listen for "message" events
  2. Add a LINE Messaging node configured to "Reply"
  3. Set the "Reply Token" field to use the replyToken from the trigger output: `{{$json.replyToken}}`
  4. Add a text message with the content: `You said: {{$json.message.text}}`

  ## Features

  - **Multiple Messaging Types**: Reply to messages, send to individuals, or multicast to groups
  - **Bulk Messaging**: Send to up to 500 recipients simultaneously with multicast operation
  - **Text Messages (V2)**: Send text messages with quote tokens and quick reply buttons
  - **Quick Replies**: Add postback and message action buttons to messages
  - **Quote Messages**: Reference previous messages in conversations
  - **User Profiles**: Retrieve user display names, pictures, and status messages
  - **Media Content**: Download images, videos, audio files, and documents
  - **Webhook Events**: Receive all LINE webhook events for comprehensive bot functionality
  - **No External Dependencies**: Built using only n8n-workflow types and Node.js built-ins

  ## Development

  To develop and test this node locally:

  ```bash
  # Clone the repository
  git clone git@github.com:elct9620/n8n-nodes-line-messaging.git
  cd n8n-nodes-line-messaging

  # Install dependencies
  pnpm install

  # Start the development server
  pnpm n8n-node dev
  ```

  The `pnpm n8n-node dev` command will start a local n8n instance with the node loaded for development and testing. This replaces the previous Docker-based development setup.

  For more development commands, see the available scripts:

  ```bash
  # Build the project
  pnpm build

  # Run linting
  pnpm lint

  # Format code
  pnpm format
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [LINE Messaging API documentation](https://developers.line.biz/en/docs/messaging-api/)
  - [LINE Bot Designer](https://developers.line.biz/en/services/bot-designer/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the LINE Messaging API to build chatbots and integrate messaging features into workflows.","capabilities":["Reply to user messages using replyToken","Proactively send messages to individual users by User ID","Multicast messages to up to 500 recipients simultaneously","Retrieve user profile information (display name, profile picture, status message)","Retrieve media content (images, videos, audio, files) from message IDs","Receive webhook events from LINE Messaging API","Send text messages with quote tokens and quick reply buttons","Add postback and message action buttons to messages","Reference previous messages in conversations"],"authentication":"API key required (Channel Secret and Channel Access Token from LINE Developers Console)","commonUseCases":["Building simple echo bots that respond to user messages","Sending proactive notifications to customers","Broadcasting announcements to groups of users","Retrieving user profiles for personalized interactions","Downloading and processing media files sent by users"],"limitations":["Multicast is limited to 500 recipients per operation","Requires a LINE Bot channel to be set up in the LINE Developers Console","Requires n8n version 1.0.0 or later","Community node (not official n8n node)"],"relatedNodes":["LINE Messaging Trigger Node","LINE Messaging Data Node","n8n HTTP Request node","n8n Webhook node"]}


node_type: @hyperflow-global/n8n-nodes-hyperflow-whatsapp.hyperflowWhatsApp
package_name: @hyperflow-global/n8n-nodes-hyperflow-whatsapp
display_name: Hyperflow WhatsApp
description: Send WhatsApp messages through Hyperflow API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: alexjrmatos
author_github_url: https://github.com/hyperflow-global/n8n-nodes-hyperflow-whatsapp.git
npm_package_name: @hyperflow-global/n8n-nodes-hyperflow-whatsapp
npm_version: 1.0.11
community_fetched_at: 2026-04-16T09:43:36.098Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send a message",
          "description": "Send a message (text, image, video, audio, file, location, contact, list, flows, etc.)"
        },
        {
          "name": "Send Template",
          "value": "sendTemplate",
          "action": "Send a template message",
          "description": "Send a pre-approved HSM template message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send",
      "value": "send",
      "action": "Send a message",
      "description": "Send a message (text, image, video, audio, file, location, contact, list, flows, etc.)",
      "resource": "message"
    },
    {
      "name": "Send Template",
      "value": "sendTemplate",
      "action": "Send a template message",
      "description": "Send a pre-approved HSM template message",
      "resource": "message"
    }
  ]

npm_readme:
  # n8n-nodes-hyperflow-whatsapp

  n8n community node for Hyperflow WhatsApp API integration.

  ## Installation

  ### In n8n Desktop App

  1. Go to **Settings** > **Community Nodes**
  2. Select **Install a community node**
  3. Enter `@hyperflow-global/n8n-nodes-hyperflow-whatsapp`
  4. Click **Install**

  ### Manual Installation

  ```bash
  # Navigate to your n8n installation folder
  cd ~/.n8n

  # Install the package
  npm install @hyperflow-global/n8n-nodes-hyperflow-whatsapp
  ```

  ### Development Installation (Local)

  ```bash
  # Build the project
  npm install
  npm run build

  # Link to n8n
  npm link

  # In your n8n installation
  cd ~/.n8n
  npm link @hyperflow-global/n8n-nodes-hyperflow-whatsapp
  ```

  ## Configuration

  ### Credentials: Hyperflow WhatsApp Account

  1. In n8n, go to **Credentials** > **Add Credential**
  2. Search for "Hyperflow WhatsApp Account"
  3. Configure:
    - **API Key**: Your API key for authentication

  ## Available Nodes

  ### Hyperflow WhatsApp Trigger

  Webhook trigger that starts workflows when WhatsApp events occur.

  #### Supported Events


  | Event                     | Description                                                   |
  | ------------------------- | ------------------------------------------------------------- |
  | **Message Received**      | Triggered when a message is received                          |
  | **Message Status Update** | Triggered when message status changes (sent, delivered, read) |
  | **Button Click**          | Triggered when a button is clicked                            |
  | **List Selection**        | Triggered when a list item is selected                        |
  | **Flow Response**         | Triggered when a flow response is received                    |


  #### Options

  - **Filter Numbers**: Only trigger for specific phone numbers
  - **Ignore Own Status**: Ignore status updates for messages sent by this number

  #### Webhook URL

  After activating the workflow, copy the webhook URL provided by n8n and configure it in your Hyperflow API settings.

  ---

  ### Hyperflow WhatsApp

  Send WhatsApp messages through Hyperflow API. Supports multiple message types:

  #### Message Types


  | Type               | Description                                                           |
  | ------------------ | --------------------------------------------------------------------- |
  | **Text**           | Simple text message with optional buttons (postback, URL, voice call) |
  | **Image**          | Send an image with optional caption                                   |
  | **Video**          | Send a video with optional caption                                    |
  | **Audio**          | Send an audio file                                                    |
  | **File**           | Send a document (PDF, etc.)                                           |
  | **Sticker**        | Send a WhatsApp sticker                                               |
  | **Location**       | Send a location with coordinates                                      |
  | **Contact**        | Send a contact card (vCard)                                           |
  | **List**           | Interactive list with sections                                        |
  | **Template (HSM)** | Send approved message templates                                       |
  | **Flows**          | Interactive WhatsApp Flows                                            |
  | **Generic Card**   | Card with image, title, subtitle and buttons                          |
  | **Product**        | Single product from catalog                                           |
  | **Product List**   | Multiple products from catalog                                        |


  ## API Reference

  This node integrates with the Hyperflow WhatsApp API. All requests are made to:

  ```
  POST https://messaging.hyperflowapis.global/whatsapp/send-message
  ```

  With authentication via `api-key` header.

  ## Quick Use Guide - Self-hosted Version

  ### 1. Install the package

  In n8n: **Settings** > **Community Nodes** > **Install a community node** and enter:

  `@hyperflow-global/n8n-nodes-hyperflow-whatsapp`

  Or, from the shell in your n8n data directory (usually `~/.n8n`):

  ```bash
  npm install @hyperflow-global/n8n-nodes-hyperflow-whatsapp
  ```

  Restart n8n if prompted.

  ### 2. Credentials

  **Credentials** > **Add Credential** > **Hyperflow WhatsApp Account** and set the **API Key** from Hyperflow (from the WhatsApp accounts screen in the [Hyperflow integrations portal](https://integracoes.hyperflow.global/whatsapp)).

  ### 3. Available nodes


  | Node                           | Purpose                                                  |
  | ------------------------------ | -------------------------------------------------------- |
  | **Hyperflow WhatsApp**         | Send messages (text, media, templates, lists, and more). |
  | **Hyperflow WhatsApp Trigger** | Start workflows when WhatsApp events occur.              |


  ### 4. Sending a message

  Add **Hyperflow WhatsApp**, choose the credential, enter the **phone number with country code** (digits only, e.g. `5511999999999`), and select the message type.

  ### 5. Inbound events (webhook)

  In **Hyperflow WhatsApp Trigger**, pick the events you need, **activate the workflow**, and copy the **webhook URL** n8n shows. Register that URL in your Hyperflow API settings so events reach your workflow.

  ## Support

  - **Documentation**: [https://help.hyperflow.global/docs/whatsapp-api-hyperflow/whatsapp-api-hyperflow](https://help.hyperflow.global/docs/whatsapp-api-hyperflow/whatsapp-api-hyperflow)
  - **Email**: [faleconosco@hyperflow.global](mailto:faleconosco@hyperflow.global)

  ## License

  MIT


node_type: n8n-nodes-straker-verify.strakerVerify
package_name: n8n-nodes-straker-verify
display_name: Straker Verify
description: Interact with Straker Verify API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: strakergroup
author_github_url: https://github.com/strakergroup/int-n8n-verify.git
npm_package_name: n8n-nodes-straker-verify
npm_version: 0.1.31
community_fetched_at: 2026-04-16T09:43:36.099Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "project",
      "options": [
        {
          "name": "Project",
          "value": "project"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new project",
          "description": "Create a new Verify project"
        },
        {
          "name": "Download Files",
          "value": "downloadFiles",
          "action": "Download translated files",
          "description": "Download translated files for a project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new project",
      "description": "Create a new Verify project",
      "resource": "project"
    },
    {
      "name": "Download Files",
      "value": "downloadFiles",
      "action": "Download translated files",
      "description": "Download translated files for a project",
      "resource": "project"
    }
  ]

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

  # n8n-nodes-straker-verify

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

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

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

  ## Installation

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

  ### Quick Installation

  1. Open your n8n instance
  2. Go to **Settings > Community Nodes**
  3. Select **Install**
  4. Enter `n8n-nodes-straker-verify` in **Enter npm package name**
  5. Agree to the risks of using community nodes: select **I understand the risks of installing unverified code from a third party**
  6. Select **Install**

  ## Operations

  ### Project Resource

  * **Create**: Create a new project with files for translation
  * **Download Files**: Download translated files for a completed project

  ## Credentials

  To use this node, you'll need to create an API key from the Straker Verify platform.

  1. Log in to your Straker Verify account
  2. Navigate to API Keys section
  3. Create a new API key
  4. Use the generated key in your n8n credentials for this node

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Straker Verify API Documentation](https://api-verify.straker.ai/docs#/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Straker Verify API to manage translation projects, including creating new projects and downloading translated files.","capabilities":["Create new translation projects","Download translated files from completed projects","Interact with Straker Verify API endpoints"],"authentication":"API key required (generated from Straker Verify platform)","commonUseCases":["Automating translation project workflows","Retrieving translated documents in n8n","Integrating Straker Verify services into business processes"],"limitations":["Community node (unverified code from third party)","Requires manual API key creation outside of n8n"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-straker-strakerVerify"]}


node_type: @picsart/n8n-nodes-picsart-creative-apis.picsartVideo
package_name: @picsart/n8n-nodes-picsart-creative-apis
display_name: Picsart Video AI
description: Generate images and stickers with Picsart API: generate from prompt
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: romiksar
author_github_url: https://github.com/PicsArt/n8n-plugin.git
npm_package_name: @picsart/n8n-nodes-picsart-creative-apis
npm_version: 5.3.2
community_fetched_at: 2026-04-16T09:43:36.100Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "video",
      "options": [
        {
          "name": "Video",
          "value": "video"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Add Watermark",
      "options": [
        {
          "name": "Add Watermark",
          "value": "Add Watermark",
          "action": "Add watermark to video",
          "description": "Add a watermark image to your video"
        },
        {
          "name": "Clip a Video",
          "value": "Clip a Video",
          "action": "Clip a video",
          "description": "Trim the video to a specific segment (start/end in milliseconds)"
        },
        {
          "name": "Compress Video to Size",
          "value": "Compress video to size",
          "action": "Compress video to size",
          "description": "Reduce your video file to a specific size in MB without losing quality"
        },
        {
          "name": "Crop Video",
          "value": "Crop Video",
          "action": "Crop video to desired size",
          "description": "Crop the video to width/height with optional start position"
        },
        {
          "name": "Fit Video",
          "value": "Fit Video",
          "action": "Fit video to ratio or dimensions",
          "description": "Fit video to different ratios or width/height; optional background"
        },
        {
          "name": "Make Video CTV-Compatible",
          "value": "Make Video CTV-Compatible",
          "action": "Make video ctv compatible",
          "description": "Convert video to meet CTV (Connected TV) requirements"
        },
        {
          "name": "Mute Video",
          "value": "Mute Video",
          "action": "Mute video audio",
          "description": "Set video volume to 0 (mute) or keep original volume"
        },
        {
          "name": "Video Filters and Effects",
          "value": "Video Filters and Effects",
          "action": "Apply effect or filter to video",
          "description": "Apply one of 24+ effects (e.g. vignette, sharpen, noise) to a video"
        },
        {
          "name": "Video FPS Upscale",
          "value": "Video FPS Upscale",
          "action": "Upscale video to 60 FPS",
          "description": "Upscale low FPS video to 60 FPS using Generative AI"
        },
        {
          "name": "Video Highlights",
          "value": "Video Highlights",
          "action": "Create highlights video",
          "description": "Pick segments from a video and concatenate them into one output"
        },
        {
          "name": "Video to GIF",
          "value": "Video to GIF",
          "action": "Convert video to GIF",
          "description": "Convert video to GIF (format GIF)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Watermark",
      "value": "Add Watermark",
      "action": "Add watermark to video",
      "description": "Add a watermark image to your video",
      "resource": "video"
    },
    {
      "name": "Clip a Video",
      "value": "Clip a Video",
      "action": "Clip a video",
      "description": "Trim the video to a specific segment (start/end in milliseconds)",
      "resource": "video"
    },
    {
      "name": "Compress Video to Size",
      "value": "Compress video to size",
      "action": "Compress video to size",
      "description": "Reduce your video file to a specific size in MB without losing quality",
      "resource": "video"
    },
    {
      "name": "Crop Video",
      "value": "Crop Video",
      "action": "Crop video to desired size",
      "description": "Crop the video to width/height with optional start position",
      "resource": "video"
    },
    {
      "name": "Fit Video",
      "value": "Fit Video",
      "action": "Fit video to ratio or dimensions",
      "description": "Fit video to different ratios or width/height; optional background",
      "resource": "video"
    },
    {
      "name": "Make Video CTV-Compatible",
      "value": "Make Video CTV-Compatible",
      "action": "Make video ctv compatible",
      "description": "Convert video to meet CTV (Connected TV) requirements",
      "resource": "video"
    },
    {
      "name": "Mute Video",
      "value": "Mute Video",
      "action": "Mute video audio",
      "description": "Set video volume to 0 (mute) or keep original volume",
      "resource": "video"
    },
    {
      "name": "Video Filters and Effects",
      "value": "Video Filters and Effects",
      "action": "Apply effect or filter to video",
      "description": "Apply one of 24+ effects (e.g. vignette, sharpen, noise) to a video",
      "resource": "video"
    },
    {
      "name": "Video FPS Upscale",
      "value": "Video FPS Upscale",
      "action": "Upscale video to 60 FPS",
      "description": "Upscale low FPS video to 60 FPS using Generative AI",
      "resource": "video"
    },
    {
      "name": "Video Highlights",
      "value": "Video Highlights",
      "action": "Create highlights video",
      "description": "Pick segments from a video and concatenate them into one output",
      "resource": "video"
    },
    {
      "name": "Video to GIF",
      "value": "Video to GIF",
      "action": "Convert video to GIF",
      "description": "Convert video to GIF (format GIF)",
      "resource": "video"
    }
  ]

npm_readme:
  # @picsart/n8n-nodes-picsart-creative-apis

  [![npm version](https://img.shields.io/npm/v/@picsart/n8n-nodes-picsart-creative-apis.svg)](https://www.npmjs.com/package/@picsart/n8n-nodes-picsart-creative-apis)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  npx @n8n/scan-community-package n8n-nodes-PACKAGE

  n8n community nodes for image processing and generation using Picsart APIs.
  ## 💻 Development

  ### Setup
  ```bash
  git clone <repository-url>
  cd n8n-nodes-picsart-creative-apis
  pnpm install
  pnpm run build
  ```

  ### Available Scripts
  ```bash
  pnpm run dev        # Watch mode
  pnpm run build      # Build
  pnpm run lint       # Lint code
  pnpm run lintfix    # Fix linting issues
  ```

  ### Docker Development
  ```bash
  ./rebuild.sh
  # Open http://localhost:5678
  ```

  ## 🚀 Release

  Use the automated release script:

  ```bash
  ./release.sh patch    # Bug fixes (0.1.0 → 0.1.1)
  ./release.sh minor    # New features (0.1.0 → 0.2.0)
  ./release.sh major    # Breaking changes (0.1.0 → 1.0.0)
  ```

  Then push:
  ```bash
  git push && git push --tags
  ```

  CI/CD will automatically publish to npm.

  ## 📖 Resources

  - [Picsart API Documentation](https://docs.picsart.io/)
  - [n8n Documentation](https://docs.n8n.io/)
  - [Creating n8n Nodes](https://docs.n8n.io/integrations/creating-nodes/)
    
  ## Installation

  **For n8n Cloud:**
  1. Settings > Community Nodes > Install
  2. Enter: `@picsart/n8n-nodes-picsart-creative-apis`

  **For Self-hosted:**

  npm install @picsart/n8n-nodes-picsart-creative-apis

  Then restart n8n.

  **Setup Credentials:**
  1. Get API key from [Picsart Console](https://console.picsart.io/dashboard)
  2. In n8n: Settings → Credentials → Add "Picsart API"
  3. Paste your API key


  ## 📚 Nodes

  ### Picsart Text2Image
  Generate images from text prompts using Picsart GenAI API.

  **Key Parameters:**
  - Prompt (required): Text description of the image to generate
  - Width: Image width in pixels (default: 1024, max: 1024)
  - Height: Image height in pixels (default: 1024, max: 1024)

  **Output:** Binary image + JSON with prompt, dimensions, transaction ID, and image URL

  **Documentation:** [Picsart Text2Image API](https://docs.picsart.io/reference/genai-text2image-1)

  ### Picsart Enhance
  Upscale and enhance images with AI.

  **Key Parameters:**
  - Image URL (required, supports JPG/PNG/WEBP)
  - Upscale Factor: 2x, 4x, 6x, 8x, 16x
  - Format: JPG | PNG | WEBP

  **Output:** Binary image + JSON with URL and credits

  ### Picsart Remove Background

  **Key Parameters:**
  - Image URL (required)
  - Output Type: cutout | mask
  - Background: color, image URL, or transparent
  - Effects: blur, stroke, shadow
  - Format: JPG | PNG | WEBP

  **Output:** Binary image + JSON with URL and credits

ai_documentation_summary:
  {"purpose":"This n8n community node package provides three nodes for generating and processing images using the Picsart API, including text-to-image generation, image enhancement, and background removal.","capabilities":["Generate images from text prompts (Text2Image)","Upscale and enhance images (Enhance)","Remove image backgrounds (Remove Background)","Support for JPG, PNG, and WEBP formats","Variable image dimensions for generation","Multiple upscale factors (2x to 16x)","Customizable background options (color, image URL, transparent)"],"authentication":"API key required","commonUseCases":["Creating custom images from descriptive text prompts","Upscaling low-resolution images for print quality","Removing backgrounds for product listings or e-commerce","Batch processing image assets for content creation"],"limitations":["Text2Image generation limited to 1024x1024 maximum dimensions","Enhance and Remove Background nodes require image URLs as input","Background removal supports only specific output types (cutout or mask)"],"relatedNodes":["Picsart Text2Image","Picsart Enhance","Picsart Remove Background"]}


node_type: n8n-nodes-binalyze-air.air
package_name: n8n-nodes-binalyze-air
display_name: AIR
description: Manage Binalyze AIR resources
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: emretinaztepe
author_github_url: https://github.com/binalyze/
npm_package_name: n8n-nodes-binalyze-air
npm_version: 1.4.3
community_fetched_at: 2026-04-16T09:43:36.101Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "organizations",
      "options": [
        {
          "name": "Acquisition",
          "value": "acquisitions",
          "description": "Manage acquisition profiles and remote acquisitions"
        },
        {
          "name": "Asset",
          "value": "assets",
          "description": "Manage endpoint assets and their operations"
        },
        {
          "name": "Baseline",
          "value": "baselines",
          "description": "Manage baselines and comparisons"
        },
        {
          "name": "Case",
          "value": "cases",
          "description": "Manage cases and case operations"
        },
        {
          "name": "InterACT",
          "value": "interact",
          "description": "Interactive shell sessions and command execution on devices"
        },
        {
          "name": "Organization",
          "value": "organizations",
          "description": "Manage organizations"
        },
        {
          "name": "Repository",
          "value": "repositories",
          "description": "Manage evidence repositories"
        },
        {
          "name": "Task",
          "value": "tasks",
          "description": "Manage tasks and task assignments"
        },
        {
          "name": "Triage Rule",
          "value": "triagerules",
          "description": "Manage triage rules"
        },
        {
          "name": "User",
          "value": "users",
          "description": "Manage users"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Assign Evidence Acquisition Task",
          "value": "assignEvidenceTask",
          "action": "Assign an evidence acquisition task",
          "description": "Assign an evidence acquisition task by filter"
        },
        {
          "name": "Get Acquisition Profile",
          "value": "get",
          "action": "Get an acquisition profile",
          "description": "Retrieve a specific acquisition profile"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "acquisitions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add Tags",
          "value": "addTags",
          "action": "Add tags to assets",
          "description": "Add tags to assets by filter"
        },
        {
          "name": "Assign Isolation Task",
          "value": "setIsolation",
          "action": "Assign isolation task to an asset",
          "description": "Assign isolation task to an asset"
        },
        {
          "name": "Assign Reboot Task",
          "value": "reboot",
          "action": "Assign reboot task to assets",
          "description": "Assign reboot task to an asset"
        },
        {
          "name": "Assign Shutdown Task",
          "value": "shutdown",
          "action": "Assign shutdown task to asset",
          "description": "Assign shutdown task to an asset"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an asset",
          "description": "Retrieve a specific asset"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many assets",
          "description": "Retrieve many assets"
        },
        {
          "name": "Get Tasks",
          "value": "getAssetTasks",
          "action": "Get asset tasks",
          "description": "Get tasks for a specific asset"
        },
        {
          "name": "Remove Tags",
          "value": "removeTags",
          "action": "Remove tags from assets",
          "description": "Remove tags from assets by filter"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assets"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "acquireBaseline",
      "options": [
        {
          "name": "Acquire Baseline",
          "value": "acquireBaseline",
          "action": "Acquire a baseline",
          "description": "Acquire baseline for endpoints"
        },
        {
          "name": "Compare Baselines",
          "value": "compareBaseline",
          "action": "Compare baselines",
          "description": "Compare two baseline acquisition results from the same endpoint"
        },
        {
          "name": "Get Comparison Report",
          "value": "getComparisonReport",
          "action": "Get comparison report",
          "description": "Get baseline comparison report"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "baselines"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Change Owner",
          "value": "changeOwner",
          "action": "Change case owner",
          "description": "Change the owner of a case"
        },
        {
          "name": "Check Name",
          "value": "checkName",
          "action": "Check case name availability",
          "description": "Check if a case name is available"
        },
        {
          "name": "Close Case",
          "value": "closeCase",
          "action": "Close a case",
          "description": "Close a specific case"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a case",
          "description": "Create a new case"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a case",
          "description": "Retrieve a specific case"
        },
        {
          "name": "Get Activities",
          "value": "getActivities",
          "action": "Get case activities",
          "description": "Get activities for a specific case"
        },
        {
          "name": "Get Endpoints",
          "value": "getEndpoints",
          "action": "Get case endpoints",
          "description": "Get endpoints for a specific case"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many cases",
          "description": "Retrieve many cases"
        },
        {
          "name": "Get Tasks",
          "value": "getTasks",
          "action": "Get case tasks",
          "description": "Get tasks for a specific case"
        },
        {
          "name": "Get Users",
          "value": "getUsers",
          "action": "Get case users",
          "description": "Get users for a specific case"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "cases"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createSession",
      "options": [
        {
          "name": "Close Session",
          "value": "closeSession",
          "action": "Close a session",
          "description": "Close an InterACT session"
        },
        {
          "name": "Create InterACT Session",
          "value": "createSession",
          "action": "Create an interact session",
          "description": "Create a new InterACT shell session for an asset"
        },
        {
          "name": "Execute Async Command",
          "value": "executeAsyncCommand",
          "action": "Execute an async command",
          "description": "Execute an asynchronous command in an InterACT session"
        },
        {
          "name": "Execute Command",
          "value": "executeCommand",
          "action": "Execute a command",
          "description": "Execute a command in an InterACT session"
        },
        {
          "name": "Get Command Response",
          "value": "getCommandMessage",
          "action": "Get a command response",
          "description": "Get the result of a command execution"
        },
        {
          "name": "Interrupt Command",
          "value": "interruptCommand",
          "action": "Interrupt a command",
          "description": "Interrupt a running command"
        },
        {
          "name": "Wait for Session to Be Live",
          "value": "waitForSession",
          "action": "Wait for session to be live",
          "description": "Wait for an InterACT session to become live by monitoring task status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "interact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add Tags",
          "value": "addTags",
          "action": "Add tags to an organization",
          "description": "Add tags to an organization"
        },
        {
          "name": "Assign User",
          "value": "assignUser",
          "action": "Assign a user to an organization",
          "description": "Assign a user to an organization"
        },
        {
          "name": "Check Name Exists",
          "value": "checkNameExists",
          "action": "Check if organization name exists",
          "description": "Check if an organization name already exists"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create an organization",
          "description": "Create a new organization"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an organization",
          "description": "Retrieve a specific organization"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many organizations",
          "description": "Retrieve many organizations"
        },
        {
          "name": "Get Users",
          "value": "getUsers",
          "action": "Get users of an organization",
          "description": "Retrieve users assigned to an organization"
        },
        {
          "name": "Remove Tags",
          "value": "removeTags",
          "action": "Remove tags from an organization",
          "description": "Remove tags from an organization"
        },
        {
          "name": "Remove User",
          "value": "removeUser",
          "action": "Remove a user from an organization",
          "description": "Remove a user from an organization"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an organization",
          "description": "Update an organization"
        },
        {
          "name": "Update Shareable Deployment",
          "value": "updateShareableDeployment",
          "action": "Update shareable deployment status",
          "description": "Update organization shareable deployment status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "organizations"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a repository",
          "description": "Get a repository by name"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many repositories",
          "description": "Get many repositories"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "repositories"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task",
          "description": "Retrieve a specific task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tasks",
          "description": "Retrieve many tasks"
        },
        {
          "name": "Get Task Assignments",
          "value": "getTaskAssignments",
          "action": "Get task assignments",
          "description": "Retrieve assignments for a specific task"
        },
        {
          "name": "Wait for Completion",
          "value": "waitForCompletion",
          "action": "Wait for task completion",
          "description": "Wait for a task to complete with polling"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Assign Triage Task",
          "value": "assignTask",
          "action": "Assign a triage task",
          "description": "Assign a triage task"
        },
        {
          "name": "Create Triage Rule",
          "value": "create",
          "action": "Create a triage rule",
          "description": "Create a new triage rule"
        },
        {
          "name": "Delete Triage Rule",
          "value": "delete",
          "action": "Delete a triage rule",
          "description": "Delete a triage rule"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a triage rule",
          "description": "Retrieve a specific triage rule"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many triage rules",
          "description": "Retrieve many triage rules"
        },
        {
          "name": "Update Triage Rule",
          "value": "update",
          "action": "Update a triage rule",
          "description": "Update a triage rule"
        },
        {
          "name": "Validate Triage Rule",
          "value": "validate",
          "action": "Validate a triage rule",
          "description": "Validate a triage rule"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "triagerules"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many users",
          "description": "Retrieve many users"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user",
          "description": "Retrieve a specific user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Assign Evidence Acquisition Task",
      "value": "assignEvidenceTask",
      "action": "Assign an evidence acquisition task",
      "description": "Assign an evidence acquisition task by filter",
      "resource": "acquisitions"
    },
    {
      "name": "Get Acquisition Profile",
      "value": "get",
      "action": "Get an acquisition profile",
      "description": "Retrieve a specific acquisition profile",
      "resource": "acquisitions"
    },
    {
      "name": "Add Tags",
      "value": "addTags",
      "action": "Add tags to assets",
      "description": "Add tags to assets by filter",
      "resource": "assets"
    },
    {
      "name": "Assign Isolation Task",
      "value": "setIsolation",
      "action": "Assign isolation task to an asset",
      "description": "Assign isolation task to an asset",
      "resource": "assets"
    },
    {
      "name": "Assign Reboot Task",
      "value": "reboot",
      "action": "Assign reboot task to assets",
      "description": "Assign reboot task to an asset",
      "resource": "assets"
    },
    {
      "name": "Assign Shutdown Task",
      "value": "shutdown",
      "action": "Assign shutdown task to asset",
      "description": "Assign shutdown task to an asset",
      "resource": "assets"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an asset",
      "description": "Retrieve a specific asset",
      "resource": "assets"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many assets",
      "description": "Retrieve many assets",
      "resource": "assets"
    },
    {
      "name": "Get Tasks",
      "value": "getAssetTasks",
      "action": "Get asset tasks",
      "description": "Get tasks for a specific asset",
      "resource": "assets"
    },
    {
      "name": "Remove Tags",
      "value": "removeTags",
      "action": "Remove tags from assets",
      "description": "Remove tags from assets by filter",
      "resource": "assets"
    },
    {
      "name": "Acquire Baseline",
      "value": "acquireBaseline",
      "action": "Acquire a baseline",
      "description": "Acquire baseline for endpoints",
      "resource": "baselines"
    },
    {
      "name": "Compare Baselines",
      "value": "compareBaseline",
      "action": "Compare baselines",
      "description": "Compare two baseline acquisition results from the same endpoint",
      "resource": "baselines"
    },
    {
      "name": "Get Comparison Report",
      "value": "getComparisonReport",
      "action": "Get comparison report",
      "description": "Get baseline comparison report",
      "resource": "baselines"
    },
    {
      "name": "Change Owner",
      "value": "changeOwner",
      "action": "Change case owner",
      "description": "Change the owner of a case",
      "resource": "cases"
    },
    {
      "name": "Check Name",
      "value": "checkName",
      "action": "Check case name availability",
      "description": "Check if a case name is available",
      "resource": "cases"
    },
    {
      "name": "Close Case",
      "value": "closeCase",
      "action": "Close a case",
      "description": "Close a specific case",
      "resource": "cases"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a case",
      "description": "Create a new case",
      "resource": "cases"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a case",
      "description": "Retrieve a specific case",
      "resource": "cases"
    },
    {
      "name": "Get Activities",
      "value": "getActivities",
      "action": "Get case activities",
      "description": "Get activities for a specific case",
      "resource": "cases"
    },
    {
      "name": "Get Endpoints",
      "value": "getEndpoints",
      "action": "Get case endpoints",
      "description": "Get endpoints for a specific case",
      "resource": "cases"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many cases",
      "description": "Retrieve many cases",
      "resource": "cases"
    },
    {
      "name": "Get Tasks",
      "value": "getTasks",
      "action": "Get case tasks",
      "description": "Get tasks for a specific case",
      "resource": "cases"
    },
    {
      "name": "Get Users",
      "value": "getUsers",
      "action": "Get case users",
      "description": "Get users for a specific case",
      "resource": "cases"
    },
    {
      "name": "Close Session",
      "value": "closeSession",
      "action": "Close a session",
      "description": "Close an InterACT session",
      "resource": "interact"
    },
    {
      "name": "Create InterACT Session",
      "value": "createSession",
      "action": "Create an interact session",
      "description": "Create a new InterACT shell session for an asset",
      "resource": "interact"
    },
    {
      "name": "Execute Async Command",
      "value": "executeAsyncCommand",
      "action": "Execute an async command",
      "description": "Execute an asynchronous command in an InterACT session",
      "resource": "interact"
    },
    {
      "name": "Execute Command",
      "value": "executeCommand",
      "action": "Execute a command",
      "description": "Execute a command in an InterACT session",
      "resource": "interact"
    },
    {
      "name": "Get Command Response",
      "value": "getCommandMessage",
      "action": "Get a command response",
      "description": "Get the result of a command execution",
      "resource": "interact"
    },
    {
      "name": "Interrupt Command",
      "value": "interruptCommand",
      "action": "Interrupt a command",
      "description": "Interrupt a running command",
      "resource": "interact"
    },
    {
      "name": "Wait for Session to Be Live",
      "value": "waitForSession",
      "action": "Wait for session to be live",
      "description": "Wait for an InterACT session to become live by monitoring task status",
      "resource": "interact"
    },
    {
      "name": "Add Tags",
      "value": "addTags",
      "action": "Add tags to an organization",
      "description": "Add tags to an organization",
      "resource": "organizations"
    },
    {
      "name": "Assign User",
      "value": "assignUser",
      "action": "Assign a user to an organization",
      "description": "Assign a user to an organization",
      "resource": "organizations"
    },
    {
      "name": "Check Name Exists",
      "value": "checkNameExists",
      "action": "Check if organization name exists",
      "description": "Check if an organization name already exists",
      "resource": "organizations"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an organization",
      "description": "Create a new organization",
      "resource": "organizations"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an organization",
      "description": "Retrieve a specific organization",
      "resource": "organizations"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many organizations",
      "description": "Retrieve many organizations",
      "resource": "organizations"
    },
    {
      "name": "Get Users",
      "value": "getUsers",
      "action": "Get users of an organization",
      "description": "Retrieve users assigned to an organization",
      "resource": "organizations"
    },
    {
      "name": "Remove Tags",
      "value": "removeTags",
      "action": "Remove tags from an organization",
      "description": "Remove tags from an organization",
      "resource": "organizations"
    },
    {
      "name": "Remove User",
      "value": "removeUser",
      "action": "Remove a user from an organization",
      "description": "Remove a user from an organization",
      "resource": "organizations"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an organization",
      "description": "Update an organization",
      "resource": "organizations"
    },
    {
      "name": "Update Shareable Deployment",
      "value": "updateShareableDeployment",
      "action": "Update shareable deployment status",
      "description": "Update organization shareable deployment status",
      "resource": "organizations"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a repository",
      "description": "Get a repository by name",
      "resource": "repositories"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many repositories",
      "description": "Get many repositories",
      "resource": "repositories"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "description": "Retrieve a specific task",
      "resource": "tasks"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tasks",
      "description": "Retrieve many tasks",
      "resource": "tasks"
    },
    {
      "name": "Get Task Assignments",
      "value": "getTaskAssignments",
      "action": "Get task assignments",
      "description": "Retrieve assignments for a specific task",
      "resource": "tasks"
    },
    {
      "name": "Wait for Completion",
      "value": "waitForCompletion",
      "action": "Wait for task completion",
      "description": "Wait for a task to complete with polling",
      "resource": "tasks"
    },
    {
      "name": "Assign Triage Task",
      "value": "assignTask",
      "action": "Assign a triage task",
      "description": "Assign a triage task",
      "resource": "triagerules"
    },
    {
      "name": "Create Triage Rule",
      "value": "create",
      "action": "Create a triage rule",
      "description": "Create a new triage rule",
      "resource": "triagerules"
    },
    {
      "name": "Delete Triage Rule",
      "value": "delete",
      "action": "Delete a triage rule",
      "description": "Delete a triage rule",
      "resource": "triagerules"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a triage rule",
      "description": "Retrieve a specific triage rule",
      "resource": "triagerules"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many triage rules",
      "description": "Retrieve many triage rules",
      "resource": "triagerules"
    },
    {
      "name": "Update Triage Rule",
      "value": "update",
      "action": "Update a triage rule",
      "description": "Update a triage rule",
      "resource": "triagerules"
    },
    {
      "name": "Validate Triage Rule",
      "value": "validate",
      "action": "Validate a triage rule",
      "description": "Validate a triage rule",
      "resource": "triagerules"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many users",
      "description": "Retrieve many users",
      "resource": "users"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a user",
      "description": "Retrieve a specific user",
      "resource": "users"
    }
  ]

npm_readme:
  ![Banner image](https://github.com/binalyze/n8n-nodes-binalyze-air/blob/main/assets/header-image.jpg)

  # n8n-nodes-binalyze-air

  This is an n8n community node that integrates with Binalyze AIR (Automated Incident Response) platform.

  ## Table of Contents

  - [Installation](#installation)
  - [Configuration](#configuration)
  - [Supported Resources](#supported-resources)
    - [Acquisitions](#acquisitions)
    - [Assets](#assets)
    - [Baselines](#baselines)
    - [Cases](#cases)
    - [InterACT](#interact)
    - [Organizations](#organizations)
    - [Repositories](#repositories)
    - [Tasks](#tasks)
    - [Triage Rules](#triage-rules)
    - [Users](#users)
  - [Trigger Node](#trigger-node)
    - [How to Use](#how-to-use)
    - [Supported Event Types](#supported-event-types)
    - [Event Data Structure](#event-data-structure)
  - [Development](#development)
  - [Testing](#testing)
  - [TODO](#todo)

  ## Installation

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

  ## Configuration

  Before using this node, you need to configure your Binalyze AIR credentials:

  ### Step 1: Create AIR API Key

  1. Go to AIR > Integrations > API Tokens > Add New
  	* Provide a Token Name
  	* Select an Organization
  	* Select a Role
  	* Define Expiration time
  2. Click Save button, and copy the token as you will not be able to see it again
  3. Click 'I got the token' button

  ### Step 2: Create AIR Credentials on your n8n instance

  1. In n8n, go to Settings → Credentials
  2. Add a new credential for "Binalyze AIR API"
  3. Enter your AIR instance URL and API token

  ## Supported Resources

  This node provides comprehensive coverage of Binalyze AIR's features listed below:

  ### Acquisitions
  Manage evidence acquisition profiles and tasks.

  **Operations:**
  - `get` - Retrieve a specific acquisition profile
  - `assignEvidenceTask` - Assign an evidence acquisition task by filter
  - `assignImageTask` - Assign an image acquisition task by filter
  - `createOffNetworkTask` - Create an off-network acquisition task

  ### Assets
  Manage endpoints and their associated tasks, tags, and status.

  **Operations:**
  - `addTags` - Add tags to assets by filter
  - `get` - Retrieve a specific asset
  - `getAssetTasks` - Get tasks for a specific asset
  - `getAll` - Retrieve many assets
  - `reboot` - Assign reboot task to a specific asset (returns standardized response with success status, message, asset details, task, and error information)
  - `removeTags` - Remove tags from assets by filter
  - `setIsolation` - Assign isolation task to a specific asset (checks for existing tasks and current isolation status, returns standardized response)
  - `shutdown` - Assign shutdown task to a specific asset (returns standardized response with success status, message, asset details, task, and error information)

  ### Baselines
  Acquire and compare system baselines.

  **Operations:**
  - `acquireBaseline` - Acquire baseline for endpoints
  - `compareBaseline` - Compare two baseline acquisition results from the same endpoint
  - `getComparisonReport` - Get baseline comparison report

  ### Cases
  Manage incident response cases, notes, and activities.

  **Operations:**
  - `changeOwner` - Change the owner of a case
  - `checkName` - Check if a case name is available
  - `closeCase` - Close a specific case
  - `create` - Create a new case
  - `get` - Retrieve a specific case
  - `getActivities` - Get activities for a specific case
  - `getEndpoints` - Get endpoints for a specific case
  - `getAll` - Retrieve many cases
  - `getTasks` - Get tasks for a specific case
  - `getUsers` - Get users for a specific case

  ### InterACT
  Execute commands and interact with endpoints remotely.

  **Operations:**
  - `createSession` - Create a new InterACT shell session for an asset
  - `waitForSession` - Wait for an InterACT session to become live by monitoring task status (supports indefinite wait with timeout=0)
  - `closeSession` - Close an InterACT session
  - `executeCommand` - Execute a command in an InterACT session
  - `executeAsyncCommand` - Execute an asynchronous command in an InterACT session
  - `getCommandMessage` - Get the result of a command execution
  - `interruptCommand` - Interrupt a running command

  ### Organizations
  Manage organizations and their users.

  **Operations:**
  - `addTags` - Add tags to an organization
  - `assignUser` - Assign a user to an organization
  - `checkNameExists` - Check if an organization name already exists
  - `create` - Create a new organization
  - `get` - Retrieve a specific organization
  - `getAll` - Retrieve many organizations
  - `getUsers` - Retrieve users assigned to an organization
  - `removeTags` - Remove tags from an organization
  - `removeUser` - Remove a user from an organization
  - `update` - Update an organization
  - `updateShareableDeployment` - Update organization shareable deployment status

  ### Repositories
  Manage evidence repositories.

  **Operations:**
  - `get` - Get a repository by name, ID, or from list selection
  - `getAll` - Get many repositories with filtering options

  ### Tasks
  Manage and monitor tasks and assignments.

  **Operations:**
  - `cancelTask` - Cancel a specific task
  - `cancelTaskAssignment` - Cancel a specific task assignment
  - `deleteTask` - Delete a specific task
  - `deleteTaskAssignment` - Delete a specific task assignment
  - `get` - Retrieve a specific task
  - `getAll` - Retrieve many tasks
  - `getTaskAssignments` - Retrieve assignments for a specific task
  - `waitForCompletion` - Wait for a task to complete with polling

  ### Triage Rules
  Create and manage triage rules for automated analysis.

  **Operations:**
  - `assignTask` - Assign a triage task
  - `create` - Create a new triage rule
  - `delete` - Delete a triage rule
  - `get` - Retrieve a specific triage rule
  - `getAll` - Retrieve many triage rules
  - `update` - Update a triage rule
  - `validate` - Validate a triage rule

  ### Users
  Manage user accounts and permissions.

  **Operations:**
  - `getAll` - Retrieve many users
  - `get` - Retrieve a specific user

  ## Trigger Node

  The On AIR Event-Trigger node allows you to trigger workflows based on AIR events.

  ### How to Use

  1. Add the On new AIR Trigger node to your workflow
  2. Configure your AIR API credentials
  3. Select the event types you want to listen for from the dynamically loaded list
  4. Configure the Bearer token that AIR will use for webhook authentication
  5. Copy the webhook URL from the node
  6. Create an event subscription in AIR:
     - Go to AIR > Integrations > Event Subscriptions
     - Add a new subscription with the webhook URL
     - Select the same event types
     - Provide the same Bearer token you configured in the trigger node

  ### Supported Event Types

  The trigger node dynamically loads available [event types](https://kb.binalyze.com/air/features/event-subscription) from your AIR instance, which may include:
  - TaskProcessingCompletedEvent
  - TaskProcessingFailedEvent
  - TaskCompletedEvent
  - TaskFailedEvent
  - CaseClosedEvent
  - EndpointRegisteredEvent
  - ...  

  ### Event Data Structure

  When an event is triggered, the node outputs data in the following format:
  ```json
  {
    "eventName": "TaskCompletedEvent",
    "organizationId": 0,
    "data": {
      "id": "task-id",
      "name": "Task Name",
      "type": "Task Type",
      "organizationId": "org-id",
      "totalAssignedEndpoints": 5,
      "totalCompletedEndpoints": 4
    }
  }
  ```

  ## Development

  To set up the development environment:

  1. Clone this repository
  2. Install dependencies: `yarn install`
  3. Build the project: `yarn build`
  4. Link the project using: 
     - `npm link`
     - `npm link n8n-nodes-binalyze-air`
  5. Start the development environment:
     - `yarn dev` - Start n8n in watch mode with automatic rebuilds
     - `yarn debug` - Start n8n in debug mode with verbose logging

  ### Development Scripts

  - `yarn build` - Build the project
  - `yarn dev` - Start development environment with file watching
  - `yarn debug` - Start development environment with debug logging enabled
  - `yarn restart:n8n` - Restart n8n without rebuilding

  ### Debug Mode

  The `yarn debug` command enables comprehensive debug logging to help troubleshoot issues:

  **Features:**
  - **Verbose Logging**: Sets `N8N_LOG_LEVEL=debug` for detailed n8n logs
  - **Console Output**: Direct log output to console (`N8N_LOG_OUTPUT=console`)
  - **Debug Patterns**: Enables debug output for n8n core and community nodes (`DEBUG=n8n*,n8n-nodes-*`)
  - **Error Details**: Shows detailed error information (`N8N_DETAILED_ERROR_OUTPUT=true`)
  - **Development Mode**: Sets `NODE_ENV=development` for enhanced debugging

  **Usage:**
  ```bash
  # Start development with debug logging
  yarn debug

  # Or manually start debug mode
  ./scripts/dev-watch.sh --debug
  ./scripts/restart-n8n.sh --debug
  ```

  **Debug Output Examples:**
  ```
  16:38:21.490   debug   Loaded all credentials and nodes from n8n-nodes-binalyze-air { "credentials": 1, "nodes": 1 }
  16:38:21.662   info    n8n ready on ::, port 5678
  16:38:23.607   info    Version: 1.103.2
  ```

  When debug mode is active, you'll see detailed information about:
  - Node and credential loading
  - API requests and responses
  - Workflow execution steps
  - Error stack traces
  - Internal n8n operations

  ## Testing

  The project includes an end-to-end testing workflow that can be managed using the e2e.js script.

  ### Prerequisites

  1. Create a `.env.local.yml` file in the project root with your credentials:
     ```yaml
     # n8n instance configuration
     N8N:
       INSTANCE_URL: http://127.0.0.1:5678
       API_TOKEN: your_n8n_api_token_here
     ```

  2. Ensure your n8n instance is running and you have a valid API token.

  ### Download Test Workflow

  To download the test workflow from your n8n instance:
  ```bash
  npm run test:download
  # or
  yarn test:download
  ```
  Or using the Node.js script directly:
  ```bash
  node test/e2e.js download
  ```

  This will download the `n8n-nodes-binalyze-air-e2e` workflow and save it to `test/n8n-nodes-binalyze-air-e2e.json`.

  ### Command Options

  Both commands support additional options:

  ```bash
  # Use a custom n8n instance URL
  node test/e2e.js download --url http://n8n.example.com:5678

  # Use a custom workflow name
  node test/e2e.js download --name my-custom-workflow

  # Use a custom output file
  node test/e2e.js download --file my-workflow.json
  ```


  ## TODO
  - Add interACT Library related operations

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the Binalyze AIR (Automated Incident Response) platform to manage security operations, evidence acquisition, and incident response workflows.","capabilities":["Manage evidence acquisition profiles and tasks","Manage endpoints, tags, and asset status (reboot, shutdown, isolation)","Acquire and compare system baselines","Create, manage, and close incident response cases","Execute remote commands via InterACT sessions","Manage organizations and user assignments","Manage evidence repositories","Monitor and manage task assignments and completion","Create, update, and validate triage rules","Manage user accounts and permissions"],"authentication":"API Key required (Binalyze AIR API Token)","commonUseCases":["Automated incident response workflows","Remote endpoint management and command execution","Evidence collection and acquisition automation","System baseline comparison and reporting","Incident case management and triage"],"limitations":["Community node (not official n8n node)","Requires manual API token creation in Binalyze AIR platform","README truncated (some details may be incomplete)"],"relatedNodes":["n8n-nodes-base-code","n8n-nodes-base-if","n8n-nodes-base-set"]}


node_type: @queng123/n8n-nodes-beeper.beeper
package_name: @queng123/n8n-nodes-beeper
display_name: Beeper
description: Interact with Beeper Desktop API to manage chats and messages
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: queng
author_github_url: https://github.com/Queng123/n8n-nodes-beeper.git
npm_package_name: @queng123/n8n-nodes-beeper
npm_version: 2.0.1
community_fetched_at: 2026-04-16T09:43:36.102Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Chat",
          "value": "chat"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Message",
          "value": "message"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List all accounts",
          "description": "List all connected accounts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Archive",
          "value": "archive",
          "action": "Archive a chat",
          "description": "Archive or unarchive a chat"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a chat",
          "description": "Create a new chat"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a chat",
          "description": "Get details of a specific chat"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all chats",
          "description": "List all chats"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search chats",
          "description": "Search for chats"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search contacts",
          "description": "Search for contacts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List messages",
          "description": "List messages in a chat"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search messages",
          "description": "Search for messages"
        },
        {
          "name": "Send",
          "value": "send",
          "action": "Send a message",
          "description": "Send a message to a chat"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "List",
      "value": "list",
      "action": "List all accounts",
      "description": "List all connected accounts",
      "resource": "account"
    },
    {
      "name": "Archive",
      "value": "archive",
      "action": "Archive a chat",
      "description": "Archive or unarchive a chat",
      "resource": "chat"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a chat",
      "description": "Create a new chat",
      "resource": "chat"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a chat",
      "description": "Get details of a specific chat",
      "resource": "chat"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all chats",
      "description": "List all chats",
      "resource": "chat"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search chats",
      "description": "Search for chats",
      "resource": "chat"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search contacts",
      "description": "Search for contacts",
      "resource": "contact"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List messages",
      "description": "List messages in a chat",
      "resource": "message"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search messages",
      "description": "Search for messages",
      "resource": "message"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send a message",
      "description": "Send a message to a chat",
      "resource": "message"
    }
  ]

npm_readme:
  # n8n-nodes-beeper

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

  [Beeper](https://beeper.com) is a unified messaging app that brings all your chat networks (iMessage, WhatsApp, Telegram, Instagram, Slack, Discord, and more) into a single inbox. This node connects to the Beeper Desktop API to automate your messaging workflows.

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

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

  ## Installation

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

  ## Operations

  ### Account
  - **List** - List all connected accounts (WhatsApp, Telegram, iMessage, etc.)

  ### Chat
  - **List** - List all chats with optional limit
  - **Get** - Get details of a specific chat by ID
  - **Create** - Create a new chat with a recipient
  - **Search** - Search for chats by query
  - **Archive** - Archive or unarchive a chat

  ### Message
  - **Send** - Send a message to a chat
  - **List** - List messages in a chat with optional limit
  - **Search** - Search for messages across all chats

  ### Contact
  - **Search** - Search for contacts in a specific account

  ## Credentials

  Before using this node, you need:

  1. **Beeper Desktop** version 4.1.169 or later installed
  2. **Beeper Desktop API** enabled:
     - Open Beeper Desktop
     - Go to **Settings > Developers**
     - Toggle **Beeper Desktop API** to enable it

  To configure credentials in n8n:

  1. Go to **Settings > Credentials**
  2. Click **Add Credential**
  3. Search for **Beeper API**
  4. Configure:
     - **Base URL**: `http://localhost:23373` (default)
     - **API Token**: Use the one configured in Beeper
  5. Click **Test** to verify the connection

  ## Compatibility

  - **n8n**: 1.0.0+
  - **Node.js**: 18.x+
  - **Beeper Desktop**: 4.1.169+

  ## Usage

  ### Sending a message

  1. Use **Chat > List** or **Chat > Search** to find the chat ID
  2. Use **Message > Send** with the chat ID and your message text

  ### Finding a Chat ID

  Chat IDs in Beeper have the format `!roomid:beeper.local`. You can get them by:
  - Using the **Chat > List** operation
  - Using the **Chat > Search** operation with a query

  ### Rate Limiting

  Sending too many messages may result in account suspension by the messaging networks. Add delays between messages and use this node for personal automation only.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Beeper Website](https://beeper.com)
  * [Beeper Desktop API Documentation](https://developers.beeper.com/desktop-api)

  ## Version history

  ### 0.1.0

  Initial release with:
  - Account operations: List
  - Chat operations: List, Get, Create, Search, Archive
  - Message operations: Send, List, Search
  - Contact operations: Search


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

updated_at: 2026-04-16 09:43:36
author_name: zachperigon
author_github_url: https://github.com/goperigon/n8n-nodes-perigon.git
npm_package_name: @goperigon/n8n-nodes-perigon
npm_version: 0.1.4
community_fetched_at: 2026-04-16T09:43:36.102Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "articles",
      "options": [
        {
          "name": "Article",
          "value": "articles",
          "description": "Search and filter news articles"
        },
        {
          "name": "Company",
          "value": "companies",
          "description": "Search for companies in the Perigon database"
        },
        {
          "name": "Journalist",
          "value": "journalists",
          "description": "Search journalists and reporters"
        },
        {
          "name": "Person",
          "value": "people",
          "description": "Search for public figures and newsworthy individuals"
        },
        {
          "name": "Source",
          "value": "sources",
          "description": "Search media sources and publications"
        },
        {
          "name": "Story",
          "value": "stories",
          "description": "Track evolving narratives and news story clusters"
        },
        {
          "name": "Summarize",
          "value": "summarize",
          "description": "Generate AI-powered summaries of search results"
        },
        {
          "name": "Topic",
          "value": "topics",
          "description": "Browse available topics"
        },
        {
          "name": "Wikipedia",
          "value": "wikipedia",
          "description": "Search Wikipedia articles"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search articles using keywords",
          "routing": {
            "request": {
              "url": "/articles/all",
              "method": "GET"
            }
          },
          "description": "Search articles using keyword queries with Boolean operators"
        },
        {
          "name": "Vector Search",
          "value": "vectorSearch",
          "action": "Search articles using vector similarity",
          "routing": {
            "request": {
              "url": "/vector/news/all",
              "method": "POST"
            }
          },
          "description": "Search articles using semantic similarity with natural language queries (best for LLM workflows)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "articles"
          ]
        }
      },
      "credentialTypes": [
        "has:authenticate"
      ],
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search news stories",
          "routing": {
            "request": {
              "url": "/stories/all",
              "method": "GET"
            }
          },
          "description": "Track evolving narratives and top news headlines with story clusters"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "stories"
          ]
        }
      },
      "credentialTypes": [
        "has:authenticate"
      ],
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search people",
          "routing": {
            "request": {
              "url": "/people/all",
              "method": "GET"
            }
          },
          "description": "Search for public figures, politicians, celebrities, and newsworthy individuals"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "people"
          ]
        }
      },
      "credentialTypes": [
        "has:authenticate"
      ],
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search sources",
          "routing": {
            "request": {
              "url": "/sources/all",
              "method": "GET"
            }
          },
          "description": "Search and filter 142,000+ media sources available via the Perigon API"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sources"
          ]
        }
      },
      "credentialTypes": [
        "has:authenticate"
      ],
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Get by ID",
          "value": "getById",
          "action": "Get journalist by ID",
          "routing": {
            "request": {
              "url": "=/journalists/{{$parameter.journalistId}}",
              "method": "GET"
            }
          },
          "description": "Find additional details on a journalist by their unique ID"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search journalists",
          "routing": {
            "request": {
              "url": "/journalists/all",
              "method": "GET"
            }
          },
          "description": "Search 230,000+ journalists from around the world"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "journalists"
          ]
        }
      },
      "credentialTypes": [
        "has:authenticate"
      ],
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search companies",
          "routing": {
            "request": {
              "url": "/companies/all",
              "method": "GET"
            }
          },
          "description": "Browse or search for companies Perigon tracks by name, domain, ticker, and more"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "companies"
          ]
        }
      },
      "credentialTypes": [
        "has:authenticate"
      ],
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search topics",
          "routing": {
            "request": {
              "url": "/topics/all",
              "method": "GET"
            }
          },
          "description": "Search through all available topics in the Perigon database"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "topics"
          ]
        }
      },
      "credentialTypes": [
        "has:authenticate"
      ],
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search wikipedia using keywords",
          "routing": {
            "request": {
              "url": "/wikipedia/all",
              "method": "GET"
            }
          },
          "description": "Search Wikipedia articles using keyword queries with Boolean operators"
        },
        {
          "name": "Vector Search",
          "value": "vectorSearch",
          "action": "Search wikipedia using vector similarity",
          "routing": {
            "request": {
              "url": "/vector/wikipedia/all",
              "method": "POST"
            }
          },
          "description": "Search Wikipedia articles using semantic similarity with natural language queries (best for LLM workflows)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "wikipedia"
          ]
        }
      },
      "credentialTypes": [
        "has:authenticate"
      ],
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "summarize",
      "options": [
        {
          "name": "Summarize",
          "value": "summarize",
          "action": "Summarize search results",
          "routing": {
            "request": {
              "url": "/summarize",
              "method": "POST"
            }
          },
          "description": "Produce a concise AI-powered summary over articles matching your filters"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "summarize"
          ]
        }
      },
      "credentialTypes": [
        "has:authenticate"
      ],
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search",
      "value": "search",
      "action": "Search articles using keywords",
      "routing": {
        "request": {
          "url": "/articles/all",
          "method": "GET"
        }
      },
      "description": "Search articles using keyword queries with Boolean operators",
      "resource": "articles"
    },
    {
      "name": "Vector Search",
      "value": "vectorSearch",
      "action": "Search articles using vector similarity",
      "routing": {
        "request": {
          "url": "/vector/news/all",
          "method": "POST"
        }
      },
      "description": "Search articles using semantic similarity with natural language queries (best for LLM workflows)",
      "resource": "articles"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search news stories",
      "routing": {
        "request": {
          "url": "/stories/all",
          "method": "GET"
        }
      },
      "description": "Track evolving narratives and top news headlines with story clusters",
      "resource": "stories"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search people",
      "routing": {
        "request": {
          "url": "/people/all",
          "method": "GET"
        }
      },
      "description": "Search for public figures, politicians, celebrities, and newsworthy individuals",
      "resource": "people"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search sources",
      "routing": {
        "request": {
          "url": "/sources/all",
          "method": "GET"
        }
      },
      "description": "Search and filter 142,000+ media sources available via the Perigon API",
      "resource": "sources"
    },
    {
      "name": "Get by ID",
      "value": "getById",
      "action": "Get journalist by ID",
      "routing": {
        "request": {
          "url": "=/journalists/{{$parameter.journalistId}}",
          "method": "GET"
        }
      },
      "description": "Find additional details on a journalist by their unique ID",
      "resource": "journalists"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search journalists",
      "routing": {
        "request": {
          "url": "/journalists/all",
          "method": "GET"
        }
      },
      "description": "Search 230,000+ journalists from around the world",
      "resource": "journalists"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search companies",
      "routing": {
        "request": {
          "url": "/companies/all",
          "method": "GET"
        }
      },
      "description": "Browse or search for companies Perigon tracks by name, domain, ticker, and more",
      "resource": "companies"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search topics",
      "routing": {
        "request": {
          "url": "/topics/all",
          "method": "GET"
        }
      },
      "description": "Search through all available topics in the Perigon database",
      "resource": "topics"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search wikipedia using keywords",
      "routing": {
        "request": {
          "url": "/wikipedia/all",
          "method": "GET"
        }
      },
      "description": "Search Wikipedia articles using keyword queries with Boolean operators",
      "resource": "wikipedia"
    },
    {
      "name": "Vector Search",
      "value": "vectorSearch",
      "action": "Search wikipedia using vector similarity",
      "routing": {
        "request": {
          "url": "/vector/wikipedia/all",
          "method": "POST"
        }
      },
      "description": "Search Wikipedia articles using semantic similarity with natural language queries (best for LLM workflows)",
      "resource": "wikipedia"
    },
    {
      "name": "Summarize",
      "value": "summarize",
      "action": "Summarize search results",
      "routing": {
        "request": {
          "url": "/summarize",
          "method": "POST"
        }
      },
      "description": "Produce a concise AI-powered summary over articles matching your filters",
      "resource": "summarize"
    }
  ]

npm_readme:
  # n8n-nodes-perigon

  This is the official n8n community node for the Perigon API. It provides comprehensive access to news intelligence APIs, including news articles, story clusters, companies, public figures, journalists, media sources, topics, Wikipedia data, and AI-powered summarization capabilities.

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

  [Perigon](https://www.perigon.io/) provides contextual news intelligence APIs trusted by leading organizations for real-time news monitoring, media analysis, and AI-powered insights.

  ## Installation

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

  1. Go to **Settings > Community Nodes**
  2. Select **Install Another Node**
  3. Enter `@goperigon/n8n-nodes-perigon`
  4. Click **Install**

  Alternatively, you can install it using npm:

  ```bash
  npm install @goperigon/n8n-nodes-perigon
  ```

  ## Documentation

  For complete documentation about the Perigon API and its capabilities, visit:

  - **[API Documentation](https://perigon.io/docs)** - Comprehensive guides and tutorials
  - **[API Reference](https://perigon.io/reference)** - Detailed endpoint documentation
  - **[Perigon Website](https://www.perigon.io/)** - Product information and use cases

  ## Credentials

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

  ### Getting Your API Key

  1. Visit [Perigon's website](https://www.perigon.io)
  2. Sign up for an account or log in
  3. Navigate to your dashboard to retrieve your API key

  ### Adding Credentials to n8n

  1. In n8n, go to **Credentials > New Credential**
  2. Search for "Perigon API"
  3. Enter your API key
  4. Save the credential

  Your credentials will be securely stored and automatically used for all Perigon node operations.

  ## Resources and Operations

  The Perigon node supports the following resources:

  ### 📰 Article

  Search and filter news articles from over 140,000 sources worldwide with comprehensive filtering capabilities.

  **Operations:**

  - **Search**: Keyword-based article search with advanced Boolean operators (AND, OR, NOT)
  - **Vector Search**: Semantic similarity search using natural language queries (optimized for AI and LLM workflows)

  **Key Features:**

  - **Query Filtering**: Full Boolean operator support with exact phrase matching using quotes
  - **Content Filtering**: Search within article titles, descriptions, and full content
  - **Categorical Filtering**: Filter by categories (Tech, Business, Politics, etc.) and granular topics
  - **Geographic Filtering**: Filter by country, state, or city
  - **Temporal Filtering**: Date range filtering with `from` and `to` parameters
  - **Source Filtering**: Filter by specific publisher domains (supports wildcards)
  - **Language Support**: Multi-language article filtering
  - **Sorting Options**: Sort by date, relevance, publication date, refresh date, or add date
  - **Pagination**: Retrieve up to 1,000 results per page with 0-based pagination
  - **Result Count**: Optional total result count display

  **Common Use Cases:**

  - Real-time news monitoring and alerting
  - Media analysis and trend detection
  - Competitive intelligence gathering
  - Content aggregation for research
  - AI-powered news summarization pipelines

  ### 📚 Story

  Track evolving news narratives through automatically clustered headlines from multiple sources.

  **Operations:**

  - **Search**: Discover and monitor story clusters to understand how news narratives develop over time

  **Key Features:**

  - **Query Filtering**: Search within story names, summaries, and key points using Boolean operators
  - **Cluster Configuration**: Set minimum cluster size and required number of unique sources
  - **Categorical Filtering**: Filter by categories, countries, and topics
  - **Temporal Filtering**: Date range filtering to track story evolution
  - **Source Filtering**: Filter by specific publisher domains
  - **Sorting Options**: Sort by article count, creation date, relevance, total count, or last update
  - **Pagination**: Navigate through results with configurable page size
  - **Result Count**: Optional display of total matching stories

  **Common Use Cases:**

  - Breaking news monitoring and narrative tracking
  - Understanding media coverage patterns across sources
  - Crisis communications and reputation management
  - Competitive intelligence on industry developments
  - Research on how stories evolve in the media

  ### 🌐 Wikipedia

  Search and analyze Wikipedia articles with advanced filtering and semantic capabilities.

  **Operations:**

  - **Search**: Keyword-based Wikipedia search with Boolean operators
  - **Vector Search**: Semantic similarity search using natural language queries

  **Key Features:**

  - **Multi-Field Search**: Search across article queries, titles, summaries, full text, and references
  - **Category Filtering**: Filter by Wikipedia categories
  - **Wikidata Integration**: Filter by Wikidata entity IDs and instance types
  - **Popularity Metrics**: Filter by page view statistics (minimum and maximum)
  - **Wiki Project Filtering**: Filter by wiki codes (currently supports English Wikipedia - `enwiki`)
  - **Sorting Options**: Sort by relevance, creation date, or last update date
  - **Pagination**: Navigate results with configurable page size
  - **Pageview Statistics**: Option to include only pages with viewership data

  **Common Use Cases:**

  - Knowledge base enrichment and fact-checking
  - Entity disambiguation and research
  - Background information gathering for news stories
  - Educational content creation
  - Semantic search for related topics and concepts

  ### 👤 Person

  Search for public figures, politicians, celebrities, business leaders, and other newsworthy individuals.

  **Operations:**

  - **Search**: Discover people by name, occupation, or unique identifiers

  **Key Features:**

  - **Name Search**: Search by person name with full Boolean operator support and wildcards
  - **Occupation Filtering**: Filter by occupation label (e.g., "politician", "CEO", "actor") or Wikidata occupation IDs
  - **Wikidata Integration**: Filter by Wikidata entity IDs for precise identification
  - **Pagination**: Navigate results with configurable page size

  **Common Use Cases:**

  - Media monitoring for specific individuals
  - Building contact databases for PR and outreach
  - Research on public figures and their activities
  - Identifying experts and thought leaders in specific fields
  - Enriching CRM data with public figure information

  ### 🏢 Company

  Search and discover companies with detailed business information and filtering options.

  **Operations:**

  - **Search**: Find companies by name, domain, ticker symbol, industry, and various business attributes

  **Key Features:**

  - **Query Search**: Search across company names, alternative names, domains, and ticker symbols
  - **Name-Specific Search**: Direct filtering by company name with Boolean operator support
  - **Geographic Filtering**: Filter by headquarters country
  - **Domain Filtering**: Filter by company website domains
  - **Stock Market Data**: Filter by stock exchange (NASDAQ, NYSE, etc.) and ticker symbols
  - **Industry Classification**: Filter by industry and sector with Boolean operators
  - **Company Size**: Filter by employee count ranges
  - **Direct ID Lookup**: Filter by specific company IDs
  - **Pagination**: Navigate results with configurable page size

  **Common Use Cases:**

  - Competitive intelligence and market research
  - Lead generation and prospecting
  - Investment research and due diligence
  - Building company databases for sales and marketing
  - Monitoring industry trends and company developments

  ### ✍️ Journalist

  Search through over 230,000 journalists and reporters from around the world.

  **Operations:**

  - **Search**: Find journalists by name, publication, coverage area, or activity level
  - **Get by ID**: Retrieve comprehensive details about a specific journalist using their unique identifier

  **Key Features:**

  - **Query Search**: Search across journalist names, titles, and Twitter biographies with Boolean operators
  - **Name-Specific Search**: Direct filtering by journalist name
  - **Coverage Filtering**: Filter by categories (Tech, Business, Politics, etc.) and granular topics
  - **Geographic Focus**: Filter by countries they commonly cover in their reporting
  - **Publication Filtering**: Filter by publisher domains and news sources
  - **Activity Metrics**: Filter by monthly posting activity (minimum and maximum thresholds)
  - **Direct ID Lookup**: Find specific journalists by their unique IDs
  - **Result Count**: Optional display of total matching journalists
  - **Pagination**: Navigate results with configurable page size (up to 1,000 per page)

  **Common Use Cases:**

  - Building media lists and PR contact databases
  - Finding subject matter experts for interviews
  - Monitoring journalist coverage and beats
  - Analyzing media landscape and journalist activity
  - Targeted outreach for press releases and stories

  ### 📡 Source

  Discover and analyze over 140,000 media sources and publications worldwide.

  **Operations:**

  - **Search**: Search and filter news sources with comprehensive criteria

  **Key Features:**

  - **Name Search**: Search by source name with full Boolean operator support
  - **Domain Filtering**: Filter by publisher domains with wildcard support (e.g., `*.cnn.com`)
  - **Category Filtering**: Filter by primary content categories
  - **Geographic Filtering**: Filter by country coverage
  - **Traffic Metrics**: Filter by monthly visit ranges (minimum and maximum)
  - **Paywall Status**: Filter sources by paywall presence
  - **Source Groups**: Filter by predefined publisher bundles (e.g., "top100")
  - **Sorting Options**: Sort by relevance, global rank, monthly visits, or average monthly posts
  - **Result Count**: Optional display of total matching sources
  - **Pagination**: Navigate results with configurable page size

  **Common Use Cases:**

  - Building media monitoring source lists
  - Analyzing media landscape and publication reach
  - Identifying authoritative sources for specific topics
  - Filtering sources by audience size and engagement
  - Creating custom news feeds from trusted publications

  ### 🏷️ Topic

  Browse and discover topics available in the Perigon database for precise content filtering.

  **Operations:**

  - **Search**: Search through all available topics with hierarchical filtering

  **Key Features:**

  - **Name Search**: Search topics by exact name or partial text match
  - **Category Filtering**: Filter topics by broad article categories (Tech, Business, Politics, etc.)
  - **Subcategory Filtering**: Filter by specific subcategories for granular topic discovery
  - **Pagination**: Navigate results with configurable page size

  **Common Use Cases:**

  - Discovering available topics for content filtering
  - Understanding topic taxonomy and structure
  - Building topic-based content categorization systems
  - Exploring related topics within categories
  - Creating targeted news feeds by topic

  ### 🤖 Summarize

  Generate AI-powered summaries of news articles using state-of-the-art language models.

  **Operations:**

  - **Summarize**: Produce intelligent, concise summaries from articles matching your search criteria

  **Key Features:**

  - **Query Filtering**: Filter articles using Boolean operators before summarization
  - **Custom Prompts**: Provide detailed instructions (up to 2,048 characters) to guide summary generation
  - **Model Selection**: Choose from multiple leading AI models:
    - GPT-4.1, GPT-4.1 Mini, GPT-4.1 Nano
    - GPT-4o, GPT-4o Mini
    - Llama 3.3 70B Versatile
    - DeepSeek R1 Distill Llama 70B
  - **Article Limits**: Control the number of articles to include (max 100) and return
  - **Summarization Methods**:
    - **ARTICLES**: Include all matching articles
    - **CLUSTERS**: Select one representative article per story cluster
  - **Field Selection**: Choose which article fields to summarize (title, content, summary)
  - **Token Control**: Set maximum token limits for generated summaries
  - **Article Filtering**: Apply all standard filters (category, country, source, date range)

  **Common Use Cases:**

  - Automated news briefings and digests
  - Competitive intelligence reports
  - Market research summaries
  - Crisis monitoring and alerts
  - Content curation for newsletters
  - AI-powered research assistance

  ## Example Usage

  ### Search Recent Tech News

  1. Add the Perigon node to your workflow
  2. Select **Article** as the resource
  3. Select **Search** as the operation
  4. Enter your search query: `"artificial intelligence" AND technology`
  5. In Additional Options:
     - Category: `Tech`
     - From Date: `2024-01-01`
     - Size: `20`
  6. Run the workflow

  ### Find News Stories About Climate Change

  1. Add the Perigon node
  2. Select **Story** as the resource
  3. Select **Search** as the operation
  4. Enter query: `climate change`
  5. Set minimum unique sources: `3`
  6. Run the workflow

  ### Search for Journalists Covering Finance

  1. Add the Perigon node
  2. Select **Journalist** as the resource
  3. Select **Search** as the operation
  4. Enter query: `finance`
  5. In Additional Options:
     - Category: `Business,Finance`
     - Min Monthly Posts: `10`
  6. Run the workflow

  ### Semantic Search for Similar Articles (LLM Workflows)

  1. Add the Perigon node
  2. Select **Article** as the resource
  3. Select **Vector Search** as the operation
  4. Enter natural language query: `Articles about renewable energy innovations and their impact on climate policy`
  5. Set size to desired number of results
  6. Run the workflow

  ### Generate AI Summary of News

  1. Add the Perigon node
  2. Select **Summarize** as the resource
  3. Select **Summarize** as the operation
  4. Enter query: `electric vehicles`
  5. Customize the prompt field with your summary instructions
  6. In Additional Options:
     - Category: `Tech,Business`
     - Max Article Count: `20`
     - Model: `gpt-4.1`
  7. Run the workflow

  ### Search Companies by Industry

  1. Add the Perigon node
  2. Select **Company** as the resource
  3. Select **Search** as the operation
  4. Enter query: `Tesla OR Apple OR Microsoft`
  5. In Additional Options:
     - Industry: `Technology OR Auto Manufacturers`
     - Num Employees From: `1000`
  6. Run the workflow

  ### Find Journalist Contacts for PR Campaign

  1. Add the Perigon node
  2. Select **Journalist** as the resource
  3. Select **Search** as the operation
  4. Enter query: `technology reporter`
  5. In Additional Options:
     - Category: `Tech`
     - Min Monthly Posts: `5`
     - Source: `techcrunch.com,theverge.com,wired.com`
  6. Run the workflow

  ### Get Detailed Journalist Information

  1. Add the Perigon node
  2. Select **Journalist** as the resource
  3. Select **Get by ID** as the operation
  4. Enter the journalist ID (obtained from a previous search)
  5. Run the workflow to retrieve full profile details

  ## AI Agent Compatibility

  This node is compatible with n8n's AI agent functionality (`usableAsTool: true`), allowing it to be used as a tool within AI agent workflows. This enables:

  - Dynamic news retrieval based on agent decisions
  - Automated research and fact-checking
  - Context-aware content generation
  - Multi-step information gathering workflows

  ## Advanced Features

  ### Boolean Search Syntax

  Many search fields support advanced Boolean operators for precise querying:

  - **AND**: Both terms must be present (e.g., `climate AND policy`)
  - **OR**: Either term can be present (e.g., `Biden OR Trump`)
  - **NOT**: Exclude terms (e.g., `energy NOT fossil`)
  - **Wildcards**: Use `*` for multiple characters, `?` for single character (e.g., `climat*`, `wom?n`)
  - **Grouping**: Use parentheses to group terms (e.g., `(renewable OR clean) AND energy`)
  - **Exact Phrases**: Use double quotes for exact matching (e.g., `"climate change"`)

  **Example Complex Query:**

  ```
  ("artificial intelligence" OR AI OR "machine learning") AND (healthcare OR medical) NOT cryptocurrency
  ```

  ### Semantic Vector Search

  Both Article and Wikipedia resources support vector search for semantic similarity matching:

  - Use natural language queries instead of keywords
  - Find conceptually related content even without exact keyword matches
  - Ideal for AI/LLM workflows and exploratory research
  - Better results for complex, multi-faceted queries

  ## Resources

  - **[Perigon Website](https://www.perigon.io/)** - Product information and pricing
  - **[API Documentation](https://www.perigon.io/docs)** - Complete API guides
  - **[API Reference](https://www.perigon.io/reference)** - Endpoint documentation
  - **[n8n Documentation](https://docs.n8n.io/)** - Learn about n8n workflows
  - **[Community Nodes](https://docs.n8n.io/integrations/community-nodes/)** - n8n community node information

  ## Support

  For issues, questions, or feature requests:

  - **GitHub Issues**: [Report bugs or request features](https://github.com/goperigon/n8n-nodes-perigon/issues)
  - **Perigon Support**: Contact support@perigon.io
  - **n8n Community**: [Join the n8n community](https://community.n8n.io/)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the Perigon API for accessing news intelligence, including articles, story clusters, Wikipedia data, and public figures.","capabilities":["Search and filter news articles from 140,000+ sources","Vector search for semantic similarity on news articles","Track evolving news narratives through story clusters","Search and analyze Wikipedia articles","Search for public figures, politicians, and celebrities","AI-powered summarization capabilities","Boolean operator support (AND, OR, NOT)","Advanced filtering by category, geography, language, and source","Temporal filtering with date ranges","Pagination support"],"authentication":"API key required","commonUseCases":["Real-time news monitoring and alerting","Media analysis and trend detection","Competitive intelligence gathering","Crisis communications and reputation management","Knowledge base enrichment and fact-checking"],"limitations":[],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code"]}


node_type: n8n-nodes-olostep.olostepScrape
package_name: n8n-nodes-olostep
display_name: Olostep Web Scraper
description: Search, extract, and structure web data using Olostep's Web search, scraping, and crawling API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: olostep
author_github_url: https://github.com/olostep/
npm_package_name: n8n-nodes-olostep
npm_version: 0.2.7
community_fetched_at: 2026-04-16T09:43:36.103Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Answer",
          "value": "answer"
        },
        {
          "name": "Batch",
          "value": "batch"
        },
        {
          "name": "Crawl",
          "value": "crawl"
        },
        {
          "name": "Map",
          "value": "map"
        },
        {
          "name": "Scrape",
          "value": "scrape"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Scrape Website",
          "value": "create",
          "action": "Scrape a URL",
          "description": "Extract content from a single URL"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search",
          "description": "Search the Web and get structured results"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scrape"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Batch Scrape URLs",
          "value": "create",
          "action": "Batch scrape urls",
          "description": "Scrape up to 10k URLs at the same time"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "batch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Crawl",
          "value": "create",
          "action": "Create a crawl",
          "description": "Get the content of subpages of a URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "crawl"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Map",
          "value": "create",
          "action": "Create a map",
          "description": "Get all URLs on a website"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "map"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Answer",
          "value": "create",
          "action": "Create answer",
          "description": "Search the web and return AI-powered answers with sources"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "answer"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Scrape Website",
      "value": "create",
      "action": "Scrape a URL",
      "description": "Extract content from a single URL",
      "resource": "scrape"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search",
      "description": "Search the Web and get structured results",
      "resource": "scrape"
    },
    {
      "name": "Batch Scrape URLs",
      "value": "create",
      "action": "Batch scrape urls",
      "description": "Scrape up to 10k URLs at the same time",
      "resource": "batch"
    },
    {
      "name": "Create Crawl",
      "value": "create",
      "action": "Create a crawl",
      "description": "Get the content of subpages of a URL",
      "resource": "crawl"
    },
    {
      "name": "Create Map",
      "value": "create",
      "action": "Create a map",
      "description": "Get all URLs on a website",
      "resource": "map"
    },
    {
      "name": "Create Answer",
      "value": "create",
      "action": "Create answer",
      "description": "Search the web and return AI-powered answers with sources",
      "resource": "answer"
    }
  ]

npm_readme:
  # n8n-nodes-olostep

  The Olostep n8n integration brings powerful web search, scraping, and crawling capabilities to n8n workflows. Build automated workflows that search, extract, and structure web data from any website without writing code.

  Olostep is a web search, scraping, and crawling API that extracts structured web data from any website in real time. Perfect for automating research workflows, monitoring competitors, and collecting data at scale.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Workflow Template](#workflow-template)  
  [Testing Locally](#testing-locally)  
  [Publishing to npm](#publishing-to-npm)  
  [Compatibility](#compatibility)  
  [Resources](#resources)

  ## Installation

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

  Or install directly via npm:

  ```bash
  npm install n8n-nodes-olostep
  ```

  Then restart n8n to load the new node.

  ## Operations

  ### Scrape Website

  Extract content from a single URL. Supports multiple formats and JavaScript rendering.

  **Use Cases:**
  - Monitor specific pages for changes
  - Extract product information from e-commerce sites
  - Gather data from news articles or blog posts
  - Pull content for content aggregation

  **Parameters:**
  - **URL to Scrape** (required): The URL of the website you want to scrape
  - **Output Format**: Choose format (HTML, Markdown, JSON, or Plain Text) - default: Markdown
  - **Country Code**: Optional country code (e.g., US, GB, CA) for location-specific scraping
  - **Wait Before Scraping**: Wait time in milliseconds before scraping (0-10000) - useful for dynamic content
  - **Parser**: Optional parser ID for specialized extraction (e.g., @olostep/amazon-product)

  **Output Fields:**
  - `id`: Scrape ID
  - `url`: Scraped URL
  - `markdown_content`: Markdown formatted content
  - `html_content`: HTML formatted content
  - `json_content`: JSON formatted content
  - `text_content`: Plain text content
  - `status`: Status of the scrape
  - `timestamp`: Timestamp of the scrape
  - `screenshot_hosted_url`: URL to screenshot (if available)
  - `page_metadata`: Page metadata

  ### Search

  Search the Web for a given query and get structured results (non-AI, parser-based search results).

  **Use Cases:**
  - Automated research workflows
  - Lead discovery and enrichment
  - Competitive analysis
  - Content research

  **Parameters:**
  - **Query** (required): Search query

  **Output:** Returns structured search results as JSON.

  ### Answers (AI)

  Search the web and return AI-powered answers in the JSON structure you want, with sources and citations.

  **Use Cases:**
  - Enrich spreadsheets or records with web-sourced facts
  - Ground AI applications on real-world data and sources
  - Research tasks that require verified outputs with citations

  **Parameters:**
  - **Task** (required): Question or task to answer using web data
  - **JSON Schema (Optional)**: JSON schema/object or a short description of the desired output shape

    Examples:
    - Object schema: `{ "book_title": "", "author": "", "release_date": "" }`
    - Description string: `"Return a list of the top 5 competitors with name and homepage URL"`

  **Output Fields:**
  - `answer_id`: Answer ID
  - `object`: Object type
  - `task`: Original task
  - `result`: Parsed JSON if `json` was provided; otherwise the answer object
  - `sources`: Array of source URLs used
  - `created`: Creation timestamp

  ### Batch Scrape URLs

  Scrape up to 10k urls at the same time. Perfect for large-scale data extraction.

  **Use Cases:**
  - Scrape entire product catalogs
  - Extract data from multiple search results
  - Process lists of URLs from spreadsheets
  - Bulk content extraction

  **Parameters:**
  - **URLs to Scrape** (required): JSON array of objects with `url` and `custom_id` fields
    - Example: `[{"url":"https://example.com","custom_id":"site1"}]`
  - **Output Format**: Choose format for all URLs - default: Markdown
  - **Country Code**: Optional country code for location-specific scraping
  - **Wait Before Scraping**: Wait time in milliseconds before scraping each URL
  - **Parser**: Optional parser ID for specialized extraction

  **Output Fields:**
  - `batch_id`: Batch ID (use this to retrieve results later)
  - `status`: Status of the batch
  - `total_urls`: Total number of URLs in the batch
  - `created_at`: Creation timestamp
  - `formats`: Requested format
  - `country`: Country code used
  - `parser`: Parser used
  - `urls`: Array of URLs in the batch

  ### Create Crawl

  Get the content of subpages of a URL. Autonomously discover and scrape entire websites by following links. Perfect for documentation sites, blogs, and content repositories.

  **Use Cases:**
  - Crawl and archive entire documentation sites
  - Extract all blog posts from a website
  - Build knowledge bases from web content
  - Monitor website structure changes

  **Parameters:**
  - **Start URL** (required): Starting URL for the crawl
  - **Maximum Pages**: Maximum number of pages to crawl (default: 10)
  - **Follow Links**: Whether to follow links found on pages (default: true)
  - **Output Format**: Format for scraped content - default: Markdown
  - **Country Code**: Optional country code for location-specific crawling
  - **Parser**: Optional parser ID for specialized content extraction

  **Output Fields:**
  - `crawl_id`: Crawl ID (use this to retrieve results later)
  - `object`: Object type
  - `status`: Status of the crawl
  - `start_url`: Starting URL
  - `max_pages`: Maximum pages
  - `follow_links`: Whether links are followed
  - `created`: Creation timestamp
  - `formats`: Formats requested
  - `country`: Country code used
  - `parser`: Parser used

  ### Create Map

  Get all URLs on a website. Extract all URLs from a website for content discovery and site structure analysis.

  **Use Cases:**
  - Build sitemaps and site structure diagrams
  - Discover all pages before batch scraping
  - Find broken or missing pages
  - SEO audits and analysis

  **Parameters:**
  - **Website URL** (required): Website URL to extract links from
  - **Search Query**: Optional search query to filter URLs (e.g., "blog")
  - **Top N URLs**: Limit the number of URLs returned
  - **Include URL Patterns**: Glob patterns to include specific paths (e.g., "/blog/**")
  - **Exclude URL Patterns**: Glob patterns to exclude specific paths (e.g., "/admin/**")

  **Output Fields:**
  - `map_id`: Map ID
  - `object`: Object type
  - `url`: Website URL
  - `total_urls`: Total URLs found
  - `urls`: Array of discovered URLs
  - `search_query`: Search query used
  - `top_n`: Top N limit

  ## Credentials

  To use this node, you need to authenticate with the Olostep Scrape API.

  1. Sign up for an account on [olostep.com](https://www.olostep.com) to get an API key.
  2. Get your API key from the [Olostep Dashboard](https://olostep.com/dashboard).
  3. Add a new credential in n8n for the Olostep Scrape API.
  4. Enter your API key in the 'API Key' field.

  ## Workflow Template

  A sample workflow template is included in `workflow-template.json`. To use it:

  1. Open n8n
  2. Click on "Workflows" in the sidebar
  3. Click the three dots menu and select "Import from File"
  4. Select the `workflow-template.json` file
  5. Configure the Olostep credentials
  6. Customize the workflow as needed

  The template includes a basic workflow that scrapes a website using the Olostep Scrape Website operation.

  ## Testing Locally

  To test your node locally before publishing:

  ### Prerequisites

  - Node.js version 20.15 or higher
  - npm installed

  ### Steps

  1. **Build the node:**
     ```bash
     npm run build
     ```

  2. **Link the node locally:**
     ```bash
     npm link
     ```

  3. **Install n8n globally (if not already installed):**
     ```bash
     npm install n8n -g
     ```

  4. **Link the node to n8n:**
     ```bash
     # Find your n8n custom nodes directory (usually ~/.n8n/custom/)
     # Or if using n8n locally, navigate to the n8n installation directory
     cd ~/.n8n/custom
     npm link n8n-nodes-olostep
     ```

  5. **Start n8n:**
     ```bash
     n8n start
     ```

  6. **Test the node:**
     - Open n8n in your browser (usually http://localhost:5678)
     - Create a new workflow
     - Add the "Olostep Scrape" node
     - Configure it with your API credentials
     - Test each operation to ensure they work correctly

  ### Running Linter

  Before publishing, make sure your code passes linting:

  ```bash
  npm run lint
  ```

  If there are any issues, fix them:

  ```bash
  npm run lintfix
  ```

  ## Publishing to npm

  Once your node is tested and ready:

  ### Prerequisites

  - npm account (create one at [npmjs.com](https://www.npmjs.com/signup) if needed)
  - Node.js version 20.15 or higher

  ### Steps

  1. **Ensure package.json is correct:**
     - Verify version number
     - Check that all required fields are filled
     - Ensure the package name is `n8n-nodes-olostep`

  2. **Build the package:**
     ```bash
     npm run build
     ```

  3. **Run prepublish checks:**
     ```bash
     npm run prepublishOnly
     ```
     This will build and lint your code.

  4. **Login to npm:**
     ```bash
     npm login
     ```
     Enter your npm username, password, and email when prompted.

  5. **Publish to npm:**
     ```bash
     npm publish
     ```

  6. **Verify publication:**
     - Visit https://www.npmjs.com/package/n8n-nodes-olostep
     - Check that your latest version is published

  ### Version Management

  When making updates:

  1. Update the version in `package.json` following [semantic versioning](https://semver.org/):
     - **Patch** (1.0.0 → 1.0.1): Bug fixes
     - **Minor** (1.0.0 → 1.1.0): New features, backward compatible
     - **Major** (1.0.0 → 2.0.0): Breaking changes

  2. Update the CHANGELOG.md (if you have one)

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

  ## Compatibility

  This node is tested against n8n version 1.x and requires Node.js version 20.15 or higher.

  ## Specialized Parsers

  Olostep provides pre-built parsers for popular websites and tasks. Use them with the `Parser` parameter:

  - **@olostep/amazon-product** - Extract product details, prices, reviews, images, variants
  - **@olostep/google-search** - Extract search results, titles, snippets, URLs
  - **@olostep/google-maps** - Extract business info, reviews, ratings, location
  - **@olostep/extract-emails** - Extract emails from pages and contact sections
  - **@olostep/extract-socials** - Extract social profile links (X/Twitter, GitHub, etc.)
  - **@olostep/extract-calendars** - Extract calendar links (Google Calendar, ICS)

  ## Resources

  * [Olostep API Documentation](https://docs.olostep.com)
  * [Olostep Dashboard](https://olostep.com/dashboard) - Get your API key and manage usage
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [n8n Node Development Guide](https://docs.n8n.io/integrations/creating-nodes/)

  ## Support

  Need help with the n8n integration?

  * **Documentation:** [docs.olostep.com](https://docs.olostep.com)
  * **Support Email:** info@olostep.com
  * **Website:** [olostep.com](https://www.olostep.com)

ai_documentation_summary:
  {"purpose":"This n8n node enables web search, scraping, and crawling operations to extract and structure data from websites without writing code.","capabilities":["Scrape single URLs with multiple output formats (HTML, Markdown, JSON, Plain Text)","Search the web with parser-based structured results","Generate AI-powered answers with sources and citations","Batch scrape up to 10,000 URLs simultaneously","Crawl entire websites autonomously following links","Extract all URLs from a website for structure analysis","Support JavaScript rendering","Apply specialized parsers for specific extraction needs","Apply location-specific scraping via country codes"],"authentication":"API key required (handled via credentials)","commonUseCases":["Automated research workflows","Competitor monitoring and analysis","Lead discovery and enrichment","Content aggregation","Building knowledge bases from web content"],"limitations":["Batch scraping has a maximum limit of 10,000 URLs","Crawling has a default maximum of 10 pages (configurable)","Wait time before scraping is limited to 0-10,000 milliseconds","Requires n8n restart after npm installation"],"relatedNodes":["n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.webhook"]}


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

updated_at: 2026-04-16 09:43:36
author_name: neosapience-owner
author_github_url: https://github.com/neosapience/n8n-nodes-typecast.git
npm_package_name: @neosapience/n8n-nodes-typecast
npm_version: 1.0.4
community_fetched_at: 2026-04-16T09:43:36.104Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "speech",
      "options": [
        {
          "name": "Speech",
          "value": "speech"
        },
        {
          "name": "Voice",
          "value": "voice"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get All Voices",
          "value": "getMany",
          "action": "Get all voices",
          "description": "Get all available voice models"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "textToSpeech",
      "options": [
        {
          "name": "Text to Speech",
          "value": "textToSpeech",
          "action": "Convert text to speech",
          "description": "Convert text to speech using a specified voice"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "speech"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get All Voices",
      "value": "getMany",
      "action": "Get all voices",
      "description": "Get all available voice models",
      "resource": "voice"
    },
    {
      "name": "Text to Speech",
      "value": "textToSpeech",
      "action": "Convert text to speech",
      "description": "Convert text to speech using a specified voice",
      "resource": "speech"
    }
  ]

npm_readme:
  # n8n-nodes-typecast

  [![npm version](https://img.shields.io/npm/v/@neosapience/n8n-nodes-typecast.svg)](https://www.npmjs.com/package/@neosapience/n8n-nodes-typecast)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

  Integrate [Typecast](https://typecast.ai/) AI TTS into your [n8n](https://n8n.io/) workflows with this community node.

  ## Features

  - **Voice Resource**
    - Get All Voices: List all available voice models
  - **Speech Resource**
    - Text to Speech: Convert text to speech using a selected voice

  ## Node Structure

  - Node: `Typecast`
    - Resources: `voice`, `speech`
    - Operations:
      - `voice`: `getMany`
      - `speech`: `textToSpeech`

  ## Credentials Setup

  1. Get your API key from [Typecast Dashboard](https://typecast.ai/developers/api/api-key)
  2. In n8n, add new credentials of type **Typecast API**
  3. Enter your API key

  ## Usage Example

  1. Add the **Typecast** node to your workflow
  2. Select a resource and operation (e.g., Speech > Text to Speech)
  3. Provide required parameters (e.g., Voice ID, Text)
  4. Connect and run your workflow

  ## Installation

  ### Via npm

  ```bash
  npm install @neosapience/n8n-nodes-typecast
  ```

  ### Via n8n Community Nodes

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

  In n8n, go to **Settings > Community Nodes** and install:

  ```
  @neosapience/n8n-nodes-typecast
  ```

  ## Compatibility

  - n8n v1.0+

  ## Development

  ```bash
  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Lint & format
  npm run lint
  npm run format

  # Run development mode
  npm run dev
  ```

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Typecast API Docs](https://typecast.ai/docs/api-reference/endpoint/text-to-speech/text-to-speech)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the Typecast TTS API to retrieve available voice models and convert text to speech.","capabilities":["List all available voice models","Convert text to speech using a selected voice"],"authentication":"API key required","commonUseCases":["Text-to-speech generation for audio content","Voice model selection and testing"],"limitations":[],"relatedNodes":["Text to Speech","API Request"]}


node_type: @picsart/n8n-nodes-picsart-creative-apis.picsartGeneration
package_name: @picsart/n8n-nodes-picsart-creative-apis
display_name: Picsart Generative AI-Hub
description: Generate images and stickers with Picsart API: generate from prompt
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: romiksar
author_github_url: https://github.com/PicsArt/n8n-plugin.git
npm_package_name: @picsart/n8n-nodes-picsart-creative-apis
npm_version: 5.3.2
community_fetched_at: 2026-04-16T09:43:36.105Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "text2Image",
      "options": [
        {
          "name": "text2Image",
          "value": "text2Image",
          "action": "Generate an image from text prompt",
          "description": "Generate an image from a text prompt using AI"
        },
        {
          "name": "text2Sticker",
          "value": "text2Sticker",
          "action": "Generate a sticker from text prompt",
          "description": "Generate a sticker from a text prompt using AI"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "text2Image",
      "value": "text2Image",
      "action": "Generate an image from text prompt",
      "description": "Generate an image from a text prompt using AI"
    },
    {
      "name": "text2Sticker",
      "value": "text2Sticker",
      "action": "Generate a sticker from text prompt",
      "description": "Generate a sticker from a text prompt using AI"
    }
  ]

npm_readme:
  # @picsart/n8n-nodes-picsart-creative-apis

  [![npm version](https://img.shields.io/npm/v/@picsart/n8n-nodes-picsart-creative-apis.svg)](https://www.npmjs.com/package/@picsart/n8n-nodes-picsart-creative-apis)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  npx @n8n/scan-community-package n8n-nodes-PACKAGE

  n8n community nodes for image processing and generation using Picsart APIs.
  ## 💻 Development

  ### Setup
  ```bash
  git clone <repository-url>
  cd n8n-nodes-picsart-creative-apis
  pnpm install
  pnpm run build
  ```

  ### Available Scripts
  ```bash
  pnpm run dev        # Watch mode
  pnpm run build      # Build
  pnpm run lint       # Lint code
  pnpm run lintfix    # Fix linting issues
  ```

  ### Docker Development
  ```bash
  ./rebuild.sh
  # Open http://localhost:5678
  ```

  ## 🚀 Release

  Use the automated release script:

  ```bash
  ./release.sh patch    # Bug fixes (0.1.0 → 0.1.1)
  ./release.sh minor    # New features (0.1.0 → 0.2.0)
  ./release.sh major    # Breaking changes (0.1.0 → 1.0.0)
  ```

  Then push:
  ```bash
  git push && git push --tags
  ```

  CI/CD will automatically publish to npm.

  ## 📖 Resources

  - [Picsart API Documentation](https://docs.picsart.io/)
  - [n8n Documentation](https://docs.n8n.io/)
  - [Creating n8n Nodes](https://docs.n8n.io/integrations/creating-nodes/)
    
  ## Installation

  **For n8n Cloud:**
  1. Settings > Community Nodes > Install
  2. Enter: `@picsart/n8n-nodes-picsart-creative-apis`

  **For Self-hosted:**

  npm install @picsart/n8n-nodes-picsart-creative-apis

  Then restart n8n.

  **Setup Credentials:**
  1. Get API key from [Picsart Console](https://console.picsart.io/dashboard)
  2. In n8n: Settings → Credentials → Add "Picsart API"
  3. Paste your API key


  ## 📚 Nodes

  ### Picsart Text2Image
  Generate images from text prompts using Picsart GenAI API.

  **Key Parameters:**
  - Prompt (required): Text description of the image to generate
  - Width: Image width in pixels (default: 1024, max: 1024)
  - Height: Image height in pixels (default: 1024, max: 1024)

  **Output:** Binary image + JSON with prompt, dimensions, transaction ID, and image URL

  **Documentation:** [Picsart Text2Image API](https://docs.picsart.io/reference/genai-text2image-1)

  ### Picsart Enhance
  Upscale and enhance images with AI.

  **Key Parameters:**
  - Image URL (required, supports JPG/PNG/WEBP)
  - Upscale Factor: 2x, 4x, 6x, 8x, 16x
  - Format: JPG | PNG | WEBP

  **Output:** Binary image + JSON with URL and credits

  ### Picsart Remove Background

  **Key Parameters:**
  - Image URL (required)
  - Output Type: cutout | mask
  - Background: color, image URL, or transparent
  - Effects: blur, stroke, shadow
  - Format: JPG | PNG | WEBP

  **Output:** Binary image + JSON with URL and credits

ai_documentation_summary:
  {"purpose":"A community n8n node package that enables image generation and manipulation using Picsart's creative APIs, including text-to-image generation, image enhancement, and background removal.","capabilities":["Generate images from text prompts (Text2Image)","Upscale and enhance images (Enhance)","Remove image backgrounds (Remove Background)","Support for JPG, PNG, and WEBP formats","Variable image dimensions for generation","Multiple upscale factors (2x to 16x)","Customizable background options (color, image URL, transparent)"],"authentication":"API Key required (obtained from Picsart Console)","commonUseCases":["Creating images from descriptive text prompts for content generation","Upscaling low-resolution images for high-quality output","Removing backgrounds from product photos or illustrations","Batch processing image enhancements in automated workflows"],"limitations":["Text2Image generation is limited to 1024x1024 pixel dimensions","Enhance and Remove Background nodes require input image URLs","Background removal supports limited effect types (blur, stroke, shadow)","No specific rate limits mentioned in documentation"],"relatedNodes":["Picsart Text2Image","Picsart Enhance","Picsart Remove Background","n8n Binary Node","n8n HTTP Request Node"]}


node_type: n8n-nodes-addtowallet.addToWallet
package_name: n8n-nodes-addtowallet
display_name: Add To Wallet
description: Create digital wallet passes via AddToWallet API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: addtowallet-npm
author_github_url: https://github.com/AddToWalletCo/addtowallet-node.git
npm_package_name: n8n-nodes-addtowallet
npm_version: 1.1.8
community_fetched_at: 2026-04-16T09:43:36.106Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "pass",
      "options": [
        {
          "name": "Pass",
          "value": "pass"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a pass",
          "description": "Create a new wallet pass"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pass"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a pass",
      "description": "Create a new wallet pass",
      "resource": "pass"
    }
  ]

npm_readme:
  # n8n-nodes-add-to-wallet

  This is an n8n community node. It lets you use _app/service name_ in your n8n workflows.

  _App/service name_ is _one or two sentences describing the service this node integrates with_.

  [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

  _List the operations supported by your node._

  ## Credentials

  _If users need to authenticate with the app/service, provide details here. You should include prerequisites (such as signing up with the service), available authentication methods, and how to set them up._

  ## Compatibility

  _State the minimum n8n version, as well as which versions you test against. You can also include any known version incompatibility issues._

  ## Usage

  _This is an optional section. Use it to help users with any difficult or confusing aspects of the node._

  _By the time users are looking for community nodes, they probably already know n8n basics. But if you expect new users, you can link to the [Try it out](https://docs.n8n.io/try-it-out/) documentation to help them get started._

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * _Link to app/service documentation._

  ## Version history

  _This is another optional section. If your node has multiple versions, include a short description of available versions and what changed, as well as any compatibility impact._

ai_documentation_summary:
  {"purpose":"Creates digital wallet passes by integrating with the AddToWallet API within n8n workflows.","capabilities":["Create digital wallet passes","Integrate with AddToWallet API"],"authentication":"Not specified in README","commonUseCases":["Automating digital wallet pass creation","Integrating wallet services into n8n workflows"],"limitations":["Authentication method not documented","No specific compatibility information provided"],"relatedNodes":[]}


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-04-16 09:43:36
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-04-16T09:43:36.107Z
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-scraping-dog.scrapingDog
package_name: n8n-nodes-scraping-dog
display_name: ScrapingDog
description: Get data from ScrapingDog API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: darshan_sd12
author_github_url: https://github.com/Darshan972/scrappingDog.git
npm_package_name: n8n-nodes-scraping-dog
npm_version: 0.4.2
community_fetched_at: 2026-04-16T09:43:36.108Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Scrape URL",
          "value": "scrapeUrl"
        },
        {
          "name": "Google Search",
          "value": "googleSearch"
        },
        {
          "name": "Google Images",
          "value": "googleImages"
        },
        {
          "name": "Google News",
          "value": "googleNews"
        },
        {
          "name": "Bing Search",
          "value": "bingSearch"
        },
        {
          "name": "Amazon Search",
          "value": "amazonSearch"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Scrape URL",
          "description": "Scrape a URL"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter[\"url\"]}}",
            "wait": "={{$parameter[\"dynamic\"] === true && $parameter[\"wait\"] ? $parameter[\"wait\"] : undefined}}",
            "image": "={{$parameter[\"image\"] === true ? \"true\" : \"false\"}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"premium\"] === true && $parameter[\"country\"] ? $parameter[\"country\"] : undefined}}",
            "dynamic": "={{$parameter[\"dynamic\"] === true ? \"true\" : \"false\"}}",
            "premium": "={{$parameter[\"premium\"] === true ? \"true\" : \"false\"}}",
            "ai_query": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"aiQuery\"] ? $parameter[\"additionalFields\"][\"aiQuery\"] : undefined}}",
            "markdown": "={{$parameter[\"markdown\"] === true ? \"true\" : \"false\"}}",
            "super_proxy": "={{$parameter[\"superProxy\"] === true ? \"true\" : \"false\"}}",
            "custom_headers": "={{$parameter[\"customHeaders\"] === true ? \"true\" : undefined}}",
            "session_number": "={{$parameter[\"sessionNumber\"] || undefined}}",
            "ai_extract_rules": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"aiExtractRules\"] ? $parameter[\"additionalFields\"][\"aiExtractRules\"] : undefined}}"
          },
          "url": "scrape",
          "method": "GET",
          "returnFullResponse": true
        },
        "returnFullResponse": true
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scrapeUrl"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Google search",
          "description": "Perform a Google Search"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "page": "={{$parameter[\"page\"]}}",
            "query": "={{$parameter[\"query\"]}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"location\"]}}",
            "results": "={{$parameter[\"results\"]}}",
            "advance_search": "={{$parameter[\"advance\"]}}"
          },
          "url": "google",
          "method": "GET"
        }
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search Google Images",
          "description": "Search Google Images"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "tbs": "={{$parameter[\"timePeriod\"] || undefined}}",
            "imgsz": "={{$parameter[\"imageSize\"] || undefined}}",
            "query": "={{$parameter[\"query\"]}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"country\"] || undefined}}",
            "results": "={{$parameter[\"results\"]}}",
            "language": "={{$parameter[\"language\"] || undefined}}",
            "licenses": "={{$parameter[\"usageRights\"] || undefined}}",
            "image_type": "={{$parameter[\"imageType\"] || undefined}}",
            "image_color": "={{$parameter[\"imageColor\"] || undefined}}",
            "safe_search": "={{$parameter[\"safeSearch\"] || undefined}}"
          },
          "url": "google_images",
          "method": "GET"
        }
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleImages"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search Google News",
          "description": "Search Google News"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "lr": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"lr\"] || undefined}}",
            "tbs": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"tbs\"] || undefined}}",
            "nfpr": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"nfpr\"] === true ? \"1\" : \"0\"}}",
            "page": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"page\"] || undefined}}",
            "safe": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"safe\"] || undefined}}",
            "uule": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"uule\"] || undefined}}",
            "query": "={{$parameter[\"query\"]}}",
            "domain": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"domain\"] || undefined}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"country\"] === \"custom\" ? $parameter[\"additionalFields\"][\"customCountry\"] : $parameter[\"additionalFields\"][\"country\"] || undefined}}",
            "results": "={{$parameter[\"results\"]}}",
            "language": "={{$parameter[\"additionalFields\"] && $parameter[\"additionalFields\"][\"language\"] || undefined}}"
          },
          "url": "google_news",
          "method": "GET"
        }
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleNews"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Bing search",
          "description": "Perform a Bing Search"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "page": "={{$parameter[\"page\"]}}",
            "query": "={{$parameter[\"query\"]}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"country\"]}}",
            "filters": "={{$parameter[\"filters\"]}}",
            "results": "={{$parameter[\"results\"]}}"
          },
          "url": "bing/search",
          "method": "GET"
        }
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "bingSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Amazon search",
          "description": "Perform a Amazon Search"
        }
      ],
      "routing": {
        "request": {
          "qs": {
            "page": "={{$parameter[\"page\"]}}",
            "query": "={{$parameter[\"query\"]}}",
            "domain": "={{$parameter[\"domain\"]}}",
            "api_key": "={{$credentials.apiKey}}",
            "country": "={{$parameter[\"country\"]}}",
            "postal_code": "={{$parameter[\"postal_code\"]}}"
          },
          "url": "amazon/search",
          "method": "GET"
        }
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "amazonSearch"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Scrape URL",
      "description": "Scrape a URL",
      "resource": "scrapeUrl"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Google search",
      "description": "Perform a Google Search",
      "resource": "googleSearch"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search Google Images",
      "description": "Search Google Images",
      "resource": "googleImages"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search Google News",
      "description": "Search Google News",
      "resource": "googleNews"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Bing search",
      "description": "Perform a Bing Search",
      "resource": "bingSearch"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Amazon search",
      "description": "Perform a Amazon Search",
      "resource": "amazonSearch"
    }
  ]

npm_readme:
  # ScrapingDog Node for n8n

  This is a custom n8n node that integrates with the ScrapingDog API, providing web scraping and search capabilities. The node has been converted to use n8n's declarative style for better maintainability and reliability.

  ## Key Highlights

  - ✅ **6 Different APIs**: URL Scraping, Google Search, Google Images, Google News, Bing Search, and Amazon Search
  - ✅ **Declarative Style**: Modern n8n node implementation for better performance
  - ✅ **Comprehensive Filtering**: Advanced search options for all supported APIs
  - ✅ **Multi-language Support**: Support for multiple languages and regions
  - ✅ **Rate Limit Handling**: Built-in error handling for API limitations
  - ✅ **TypeScript**: Fully typed for better development experience

  ## Features

  - 🌐 **URL Scraping**: Extract content from any webpage
  - 🔍 **Google Search**: Perform Google searches with advanced options
  - 🖼️ **Google Images**: Search Google Images with advanced filtering options
  - 📰 **Google News**: Search Google News with time-based and geographic filtering
  - 🔎 **Bing Search**: Search Bing with customizable filters
  - 🛍️ **Amazon Search**: Search products on Amazon

  ## Directory Structure

  ```
  nodes/ScrapingDog/
  ├── ScrapingDog.node.ts      # Main node implementation (Declarative Style)
  ├── ScrapingDog.node.json    # Node metadata
  ├── scrappingDog.svg         # Node icon
  ├── types/
  │   └── index.ts             # TypeScript interfaces and types
  ├── resources/
  │   ├── index.ts             # Resource exports
  │   ├── scrapeUrl.ts         # Scrape URL resource
  │   ├── googleSearch.ts      # Google Search resource
  │   ├── googleImages.ts      # Google Images resource
  │   ├── googleNews.ts        # Google News resource
  │   ├── bingSearch.ts        # Bing Search resource
  │   ├── amazonSearch.ts      # Amazon Search resource
  │   └── staticResource.ts    # Static data (countries, etc.)
  ```

  ## Recent Updates

  ### Version 0.4.2 - LinkedIn API Removal & Documentation Updates
  - 🗑️ **REMOVED: LinkedIn Profile and Jobs APIs** - Removed LinkedIn Profile and LinkedIn Jobs functionality
  - **Simplified Interface**: Streamlined resource options for better focus on core web scraping features
  - **Reduced Dependencies**: Cleaner codebase with fewer external integrations
  - **Enhanced Documentation**: Added comprehensive parameter documentation for all remaining APIs
  - **Updated Examples**: Improved usage examples and API response documentation

  ### Version 0.4.1 - Google News API Integration
  - 📰 **NEW: Google News Search** - Added comprehensive Google News API support
  - **Time-Based Filtering**: Filter news by hour, day, week, month, or year
  - **Geographic Targeting**: Country-specific news results with custom domain support
  - **Language Support**: 18 different languages for news results
  - **Advanced Filtering**: Geographic location (UULE), language restrictions, safe search
  - **Auto-Correct Control**: Option to exclude auto-corrected query results

  ### Version 0.4.0 - Google Images API Integration
  - 🖼️ **NEW: Google Images Search** - Added comprehensive Google Images API support
  - **Advanced Image Filtering**: Size, type, color, usage rights, time period filters
  - **Multi-language Support**: 13 different languages for search results
  - **Safe Search Controls**: Strict, moderate, or off filtering options
  - **Geographic Targeting**: Country-specific image search results

  ### Previous Updates
  1. **Converted to Declarative Style**
     - Removed manual HTTP request handling
     - Added routing configuration for each resource
     - Improved error handling
     - Better parameter validation

  2. **Resource Improvements**
     - Added proper parameter descriptions
     - Fixed boolean parameter descriptions to start with "Whether"
     - Sorted option lists alphabetically
     - Improved type safety

  3. **API Integration**
     - Fixed API key handling in requests
     - Proper HTML content handling for scraping
     - Improved response processing

  ## Usage Examples

  ### 1. Scrape URL
  ```javascript
  {
      "resource": "scrapeUrl",
      "operation": "get",
      "parameters": {
          "url": "https://example.com",
          "dynamic": false,
          "markdown": false,
          "premium": false,
          "superProxy": false,
          "additionalFields": {
              "aiQuery": "Extract all product names",
              "aiExtractRules": "Find prices and descriptions"
          }
      }
  }
  ```

  ### 2. Google Search
  ```javascript
  {
      "resource": "googleSearch",
      "operation": "search",
      "parameters": {
          "query": "n8n automation",
          "advance": true,
          "page": "1",
          "location": "US",
          "results": "10"
      }
  }
  ```

  ### 3. Google Images
  ```javascript
  {
      "resource": "googleImages",
      "operation": "search",
      "parameters": {
          "query": "sunset landscape",
          "results": "20",
          "country": "US",
          "language": "en",
          "imgsz": "l",
          "imageType": "photo",
          "imageColor": "bw",
          "licenses": "f",
          "tbs": "qdr:d",
          "safe": "1"
      }
  }
  ```

  ### 4. Google News
  ```javascript
  {
      "resource": "googleNews",
      "operation": "search",
      "parameters": {
          "query": "artificial intelligence technology",
          "results": "50",
          "additionalFields": {
              "country": "us",
              "page": 0,
              "domain": "google.com",
              "language": "en",
              "tbs": "qdr:d",
              "safe": "active",
              "nfpr": false
          }
      }
  }
  ```

  ### 5. Bing Search
  ```javascript
  {
      "resource": "bingSearch",
      "operation": "search",
      "parameters": {
          "query": "web scraping tools",
          "page": 1,
          "country": "US",
          "results": 20,
          "filters": "ex1:'answerType:CalculatorPageType'"
      }
  }
  ```

  ### 6. Amazon Search
  ```javascript
  {
      "resource": "amazonSearch",
      "operation": "search",
      "parameters": {
          "query": "wireless headphones",
          "country": "US",
          "page": 1,
          "domain": "amazon.com",
          "postal_code": "10001"
      }
  }
  ```

  ## Resource Parameters

  ### Scrape URL
  - `url` (Required): Target webpage URL
  - `dynamic`: Whether to enable JavaScript rendering
  - `premium`: Whether to use premium proxy
  - `superProxy`: Whether to enable super proxy
  - `markdown`: Whether to get response in markdown format
  - `wait`: Wait time for dynamic rendering (ms)
  - `country`: Geolocation for the request
  - `aiQuery`: AI-powered data extraction query
  - `aiExtractRules`: Custom extraction rules

  ### Google Search
  - `query` (Required): Search keyword
  - `advance`: Whether to enable advanced features
  - `page`: Result page number (1-10)
  - `location`: Search location/country
  - `results`: Number of results (10-100)

  ### Google Images
  - `query` (Required): Search keyword for images
  - `results`: Number of results (10-100)
  - `country`: Country for geotargeting (US, UK, CA, etc.)
  - `language`: Search language (en, es, fr, de, etc.)
  - `imgsz`: Filter by size (any, large, medium, icon)
  - `imageType`: Filter by type (any, face, photo, clipart, lineart, animated)
  - `imageColor`: Filter by color (any, color, gray, trans, red, orange, yellow, green, teal, blue, purple, pink, white, black, brown)
  - `licenses`: Filter by usage rights (any, labeled-for-reuse, labeled-for-reuse-with-modification, etc.)
  - `tbs`: Filter by time (any, hour, day, week, month, year)
  - `safe`: Safe search level (strict, moderate, off)

  ### Google News
  - `query` (Required): Search keyword for news articles
  - `results`: Number of results (1-100)
  - `country`: Country for geotargeting (us, uk, in, ca, au, de, fr, jp, br, etc.)
  - `page`: Page number (0 for first page, 1 for second page, etc.)
  - `domain`: Google domain for local results (e.g., google.co.uk for UK)
  - `language`: Search language (en, es, fr, de, it, pt, ru, ja, zh-cn, ko, ar, hi, etc.)
  - `lr`: Language restriction in format lang_{language_code} (e.g., lang_en)
  - `uule`: Geographic location parameter for tailored results
  - `tbs`: Time-based search filter (qdr:h for past hour, qdr:d for past day, qdr:w for past week, qdr:m for past month, qdr:y for past year)
  - `safe`: Safe search filter (active/off)
  - `nfpr`: Exclude auto-corrected queries (true to exclude, false to include)

  ### Bing Search
  - `query` (Required): Search keyword
  - `page`: Page number for pagination
  - `country`: Country for geotargeting
  - `filters`: Custom search filters
  - `results`: Number of results to return

  ### Amazon Search
  - `query` (Required): Product search keyword
  - `country`: Country for Amazon marketplace (e.g., US, UK, CA, DE, FR, etc.)
  - `page`: Page number for pagination
  - `domain`: Amazon domain (e.g., amazon.com, amazon.co.uk)
  - `postal_code`: Postal code for location-based results

  ## API Response Examples

  ### Google Images Response
  ```json
  {
    "time_taken": 685.692823,
    "ads": [],
    "images_results": [
      {
        "title": "Beautiful Sunset Landscape",
        "image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:...",
        "source": "example.com",
        "original": "https://example.com/images/sunset.jpg",
        "link": "https://example.com/sunset-photography",
        "original_height": 1080,
        "original_width": 1920,
        "original_size": "245KB",
        "know_more_link": "https://www.google.com/search/about-this-image?...",
        "is_product": false,
        "rank": 1
      }
    ]
  }
  ```

  ### Google News Response
  ```json
  {
    "time_taken": 542.123456,
    "ads": [],
    "news_results": [
      {
        "rank": 1,
        "title": "Breakthrough in Artificial Intelligence Technology",
        "link": "https://example-news.com/ai-breakthrough-2024",
        "source": "TechNews",
        "published_date": "3 hours ago",
        "snippet": "Researchers have developed a new AI system that can understand complex human emotions and respond appropriately, marking a significant milestone in artificial intelligence development.",
        "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:...",
        "rank_page": 1
      },
      {
        "rank": 2,
        "title": "AI Companies Announce Major Partnership",
        "link": "https://business-news.com/ai-partnership",
        "source": "Business Daily",
        "published_date": "5 hours ago",
        "snippet": "Leading technology companies have formed a strategic alliance to accelerate AI research and development, focusing on ethical AI implementation.",
        "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:...",
        "rank_page": 1
      }
    ]
  }
  ```

  ## Installation

  ### For n8n Users

  1. Install the package in your n8n instance:
  ```bash
  npm install n8n-nodes-scraping-dog
  ```

  2. Restart your n8n instance to load the new node.

  3. The ScrapingDog node will appear in the node palette under the "Transform" category.

  ### Credentials Setup

  1. Create a ScrapingDog API account at [ScrapingDog.com](https://scrapingdog.com)
  2. Get your API key from the dashboard
  3. In n8n, create new credentials of type "ScrapingDog API"
  4. Enter your API key in the credentials configuration

  ## Development

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

  2. Build the node:
  ```bash
  npm run build
  ```

  3. Run with Docker:
  ```bash
  make rebuild-and-logs
  ```

  ## Testing

  The node includes proper error handling for:
  - Invalid API key
  - Rate limiting
  - Invalid parameters
  - Network errors
  - Blocked requests

  ## License

  MIT License - see LICENSE file for details 

ai_documentation_summary:
  {"purpose":"A custom n8n node that integrates with the ScrapingDog API to perform web scraping and cross-platform search operations including Google, Bing, and Amazon.","capabilities":["URL scraping with dynamic content extraction","Google Search with advanced filtering","Google Images search with size/type/color filters","Google News search with time-based and geographic filtering","Bing Search with customizable filters","Amazon product search","Multi-language and multi-region support","Safe search controls","AI-powered content extraction via additional fields"],"authentication":"API key required (configured via node settings)","commonUseCases":["Extracting content from websites for data aggregation","Monitoring product availability on Amazon","Gathering news trends by region and language","Searching for images with specific usage rights","Competitor analysis via web scraping"],"limitations":["LinkedIn Profile and Jobs APIs have been removed","Rate limits apply based on ScrapingDog API tier","Requires valid ScrapingDog API key for all operations"],"relatedNodes":["HTTP Request","Webhook","Code","Function Item"]}


node_type: n8n-nodes-hubbi.hubbi
package_name: n8n-nodes-hubbi
display_name: Hubbi
description: Get data from the Hubbi services
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: hubbi.parts
author_github_url: https://github.com/Hubbiparts/
npm_package_name: n8n-nodes-hubbi
npm_version: 1.0.1
community_fetched_at: 2026-04-16T09:43:36.109Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "part",
      "options": [
        {
          "name": "Stock",
          "value": "stock",
          "description": "Operations related to your stock"
        },
        {
          "name": "Autopart",
          "value": "part",
          "description": "Operations related to autoparts"
        },
        {
          "name": "Vehicle",
          "value": "vehicle",
          "description": "Operations related to vehicles"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "part",
      "options": [
        {
          "name": "Autopart",
          "value": "part",
          "description": "Operations related to autoparts"
        },
        {
          "name": "Vehicle",
          "value": "vehicle",
          "description": "Operations related to vehicles"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "userType": [
            "buyer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listParts",
      "options": [
        {
          "name": "Create Autopart in Stock",
          "value": "createPart",
          "action": "Create autopart in stock",
          "routing": {
            "request": {
              "url": "=erps/parts/",
              "body": [
                {
                  "code": "={{$parameter.code}}",
                  "name": "={{$parameter.name}}",
                  "price": "={{$parameter.price}}",
                  "stock": "={{$parameter.stock}}",
                  "erp_id": "={{$parameter.erpId}}"
                }
              ],
              "method": "POST"
            }
          },
          "description": "Create a new autopart",
          "displayOptions": {
            "show": {
              "userType": [
                "dealer"
              ]
            }
          }
        },
        {
          "name": "Delete Stock",
          "value": "deletePart",
          "action": "Delete autopart",
          "routing": {
            "request": {
              "url": "=erps/parts/{{$parameter.id}}/",
              "method": "DELETE"
            }
          },
          "description": "Delete an autopart by ID",
          "displayOptions": {
            "show": {
              "userType": [
                "dealer"
              ]
            }
          }
        },
        {
          "name": "Get Autopart in Stock",
          "value": "getPart",
          "action": "Get autopart",
          "routing": {
            "request": {
              "url": "=erps/parts/{{$parameter.id}}/",
              "method": "GET"
            }
          },
          "description": "Get a specific autopart by ID",
          "displayOptions": {
            "show": {
              "userType": [
                "dealer"
              ]
            }
          }
        },
        {
          "name": "List Stock",
          "value": "listParts",
          "action": "List autoparts",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "results"
                  }
                }
              ]
            },
            "request": {
              "url": "=erps/parts/",
              "method": "GET"
            }
          },
          "description": "List all available autoparts",
          "displayOptions": {
            "show": {
              "userType": [
                "dealer"
              ]
            }
          }
        },
        {
          "name": "Update Stock",
          "value": "updatePart",
          "action": "Update autopart",
          "routing": {
            "request": {
              "url": "=erps/parts/{{$parameter.id}}/",
              "body": {
                "code": "={{$parameter.code}}",
                "name": "={{$parameter.name}}",
                "price": "={{$parameter.price}}",
                "stock": "={{$parameter.stock}}",
                "erp_id": "={{$parameter.erpId}}"
              },
              "method": "PATCH"
            }
          },
          "description": "Update an existing autopart by ID",
          "displayOptions": {
            "show": {
              "userType": [
                "dealer"
              ]
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "stock"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchPart",
      "options": [
        {
          "name": "Search Autopart",
          "value": "searchPart",
          "action": "Search for autoparts",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "results"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "sku": "={{$parameter[\"partNumber\"]}}",
                "limit": 96,
                "stock": "={{$parameter[\"inStock\"] ? \"true\" : \"false\"}}",
                "offset": 0,
                "search": "={{$parameter[\"partName\"]}}",
                "barcode": "={{$parameter[\"barcode\"]}}",
                "state_uf": "={{Array.isArray($parameter[\"uf\"]) ? $parameter[\"uf\"].join(\",\") : $parameter[\"uf\"]}}",
                "positions": "={{Array.isArray($parameter[\"position\"]) ? $parameter[\"position\"].join(\",\") : $parameter[\"position\"]}}",
                "application": "={{$parameter[\"vehicle\"]}}"
              },
              "url": "/catalog/filter/",
              "method": "GET"
            }
          },
          "description": "Retrieve details of a part"
        },
        {
          "name": "Part Specifications",
          "value": "partSpecs",
          "action": "Get part specifications",
          "routing": {
            "request": {
              "qs": {
                "nome_fabricante": "={{$parameter[\"brandName\"]}}",
                "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
              },
              "url": "/public/api/v1/catalog/part/technical-specs",
              "method": "GET"
            }
          },
          "description": "Retrieve specifications of a part"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "part"
          ],
          "userType": [
            "buyer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchPart",
      "options": [
        {
          "name": "Search Autopart",
          "value": "searchPart",
          "action": "Search for autoparts",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "results"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "sku": "={{$parameter[\"partNumber\"]}}",
                "limit": 96,
                "stock": "={{$parameter[\"inStock\"] ? \"true\" : \"false\"}}",
                "offset": 0,
                "search": "={{$parameter[\"partName\"]}}",
                "barcode": "={{$parameter[\"barcode\"]}}",
                "state_uf": "={{Array.isArray($parameter[\"uf\"]) ? $parameter[\"uf\"].join(\",\") : $parameter[\"uf\"]}}",
                "positions": "={{Array.isArray($parameter[\"position\"]) ? $parameter[\"position\"].join(\",\") : $parameter[\"position\"]}}",
                "application": "={{$parameter[\"vehicle\"]}}"
              },
              "url": "/catalog/filter/",
              "method": "GET"
            }
          },
          "description": "Retrieve details of a part"
        },
        {
          "name": "Part Specifications",
          "value": "partSpecs",
          "action": "Get part specifications",
          "routing": {
            "request": {
              "qs": {
                "nome_fabricante": "={{$parameter[\"brandName\"]}}",
                "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
              },
              "url": "/public/api/v1/catalog/part/technical-specs",
              "method": "GET"
            }
          },
          "description": "Retrieve specifications of a part"
        },
        {
          "name": "Part Quotation",
          "value": "partQuotation",
          "action": "Get part quotation",
          "routing": {
            "request": {
              "qs": {
                "nome_fabricante": "={{$parameter[\"brandName\"]}}",
                "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
              },
              "url": "/public/api/v1/catalog/part/quotation",
              "method": "GET"
            }
          },
          "description": "Retrieve quotation details for a part"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "part"
          ],
          "userType": [
            "dealer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "vehicleByPlate",
      "options": [
        {
          "name": "Get Vehicle by Plate",
          "value": "vehicleByPlate",
          "action": "Get vehicle by license plate",
          "routing": {
            "request": {
              "qs": {
                "plate": "={{$parameter[\"plate\"]}}"
              },
              "url": "/platesearch/vehicle-info/",
              "method": "GET"
            }
          },
          "description": "Retrieve vehicle description by plate number"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "vehicle"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Autopart in Stock",
      "value": "createPart",
      "action": "Create autopart in stock",
      "routing": {
        "request": {
          "url": "=erps/parts/",
          "body": [
            {
              "code": "={{$parameter.code}}",
              "name": "={{$parameter.name}}",
              "price": "={{$parameter.price}}",
              "stock": "={{$parameter.stock}}",
              "erp_id": "={{$parameter.erpId}}"
            }
          ],
          "method": "POST"
        }
      },
      "description": "Create a new autopart",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "resource": "stock"
    },
    {
      "name": "Delete Stock",
      "value": "deletePart",
      "action": "Delete autopart",
      "routing": {
        "request": {
          "url": "=erps/parts/{{$parameter.id}}/",
          "method": "DELETE"
        }
      },
      "description": "Delete an autopart by ID",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "resource": "stock"
    },
    {
      "name": "Get Autopart in Stock",
      "value": "getPart",
      "action": "Get autopart",
      "routing": {
        "request": {
          "url": "=erps/parts/{{$parameter.id}}/",
          "method": "GET"
        }
      },
      "description": "Get a specific autopart by ID",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "resource": "stock"
    },
    {
      "name": "List Stock",
      "value": "listParts",
      "action": "List autoparts",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "results"
              }
            }
          ]
        },
        "request": {
          "url": "=erps/parts/",
          "method": "GET"
        }
      },
      "description": "List all available autoparts",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "resource": "stock"
    },
    {
      "name": "Update Stock",
      "value": "updatePart",
      "action": "Update autopart",
      "routing": {
        "request": {
          "url": "=erps/parts/{{$parameter.id}}/",
          "body": {
            "code": "={{$parameter.code}}",
            "name": "={{$parameter.name}}",
            "price": "={{$parameter.price}}",
            "stock": "={{$parameter.stock}}",
            "erp_id": "={{$parameter.erpId}}"
          },
          "method": "PATCH"
        }
      },
      "description": "Update an existing autopart by ID",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "resource": "stock"
    },
    {
      "name": "Search Autopart",
      "value": "searchPart",
      "action": "Search for autoparts",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "results"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "sku": "={{$parameter[\"partNumber\"]}}",
            "limit": 96,
            "stock": "={{$parameter[\"inStock\"] ? \"true\" : \"false\"}}",
            "offset": 0,
            "search": "={{$parameter[\"partName\"]}}",
            "barcode": "={{$parameter[\"barcode\"]}}",
            "state_uf": "={{Array.isArray($parameter[\"uf\"]) ? $parameter[\"uf\"].join(\",\") : $parameter[\"uf\"]}}",
            "positions": "={{Array.isArray($parameter[\"position\"]) ? $parameter[\"position\"].join(\",\") : $parameter[\"position\"]}}",
            "application": "={{$parameter[\"vehicle\"]}}"
          },
          "url": "/catalog/filter/",
          "method": "GET"
        }
      },
      "description": "Retrieve details of a part",
      "resource": "part"
    },
    {
      "name": "Part Specifications",
      "value": "partSpecs",
      "action": "Get part specifications",
      "routing": {
        "request": {
          "qs": {
            "nome_fabricante": "={{$parameter[\"brandName\"]}}",
            "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
          },
          "url": "/public/api/v1/catalog/part/technical-specs",
          "method": "GET"
        }
      },
      "description": "Retrieve specifications of a part",
      "resource": "part"
    },
    {
      "name": "Search Autopart",
      "value": "searchPart",
      "action": "Search for autoparts",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "results"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "sku": "={{$parameter[\"partNumber\"]}}",
            "limit": 96,
            "stock": "={{$parameter[\"inStock\"] ? \"true\" : \"false\"}}",
            "offset": 0,
            "search": "={{$parameter[\"partName\"]}}",
            "barcode": "={{$parameter[\"barcode\"]}}",
            "state_uf": "={{Array.isArray($parameter[\"uf\"]) ? $parameter[\"uf\"].join(\",\") : $parameter[\"uf\"]}}",
            "positions": "={{Array.isArray($parameter[\"position\"]) ? $parameter[\"position\"].join(\",\") : $parameter[\"position\"]}}",
            "application": "={{$parameter[\"vehicle\"]}}"
          },
          "url": "/catalog/filter/",
          "method": "GET"
        }
      },
      "description": "Retrieve details of a part",
      "resource": "part"
    },
    {
      "name": "Part Specifications",
      "value": "partSpecs",
      "action": "Get part specifications",
      "routing": {
        "request": {
          "qs": {
            "nome_fabricante": "={{$parameter[\"brandName\"]}}",
            "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
          },
          "url": "/public/api/v1/catalog/part/technical-specs",
          "method": "GET"
        }
      },
      "description": "Retrieve specifications of a part",
      "resource": "part"
    },
    {
      "name": "Part Quotation",
      "value": "partQuotation",
      "action": "Get part quotation",
      "routing": {
        "request": {
          "qs": {
            "nome_fabricante": "={{$parameter[\"brandName\"]}}",
            "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
          },
          "url": "/public/api/v1/catalog/part/quotation",
          "method": "GET"
        }
      },
      "description": "Retrieve quotation details for a part",
      "resource": "part"
    },
    {
      "name": "Get Vehicle by Plate",
      "value": "vehicleByPlate",
      "action": "Get vehicle by license plate",
      "routing": {
        "request": {
          "qs": {
            "plate": "={{$parameter[\"plate\"]}}"
          },
          "url": "/platesearch/vehicle-info/",
          "method": "GET"
        }
      },
      "description": "Retrieve vehicle description by plate number",
      "resource": "vehicle"
    }
  ]

npm_readme:
  # n8n-nodes-hubbi

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

  Hubbi is a B2B marketplace platform that connects corporate consumers with auto parts suppliers. Using BigData technologies, it enables an agile and assertive quotation, purchase and sale process.

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

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

  ## Installation

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

  ## Operations

  - Vehicle Operations: get detailed information about a vehicle by it's license plate.
  - Stock Operations: List, create, update and delete your stock at Hubbi.
  - Part Operations: Get detailed technical speficiation for an autopart, search for parts in Hubbi's catalog and see the lowest quotation for auto parts.

  ## Credentials

  To use this node, you need to have a Hubbi account and valid API keys.

  1. **Create a Hubbi Account:**  
     Sign up at [Hubbi](https://hubbi.app) if you don't already have an account.

  2. **Generate API Keys:**  
     After logging in, navigate to your account settings to generate your API keys.

  3. **Configure Credentials in n8n:**  
     In n8n, add a new set of credentials for the Hubbi node and enter your API keys.

  These credentials will allow the node to authenticate and interact with Hubbi services securely.

  ## Compatibility

  This node is compatible with n8n version 1.93.0 and onwards.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Hubbi](https://hubbi.app)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with Hubbi, a B2B marketplace connecting corporate consumers with auto parts suppliers.","capabilities":["Retrieve detailed vehicle information by license plate","List stock inventory","Create stock entries","Update stock entries","Delete stock entries","Retrieve detailed technical specifications for auto parts","Search parts in Hubbi's catalog","Retrieve lowest quotations for auto parts"],"authentication":"API key required","commonUseCases":["Automating purchase order creation for auto parts","Tracking vehicle maintenance records via license plate lookup","Managing inventory levels for corporate auto parts suppliers"],"limitations":["Requires a separate Hubbi account and API keys","Compatible only with n8n version 1.93.0 and newer"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.set"]}


