# nodes

node_type: @cometapi-dev/n8n-nodes-cometapi.cometApi
package_name: @cometapi-dev/n8n-nodes-cometapi
display_name: CometAPI
description: Interact with CometAPI large language models
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: tensornull
author_github_url: https://github.com/cometapi-dev/n8n-nodes-cometapi.git
npm_package_name: @cometapi-dev/n8n-nodes-cometapi
npm_version: 0.1.5
community_fetched_at: 2026-02-19T14:41:52.803Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # n8n-nodes-cometapi

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

  CometAPI is a powerful AI language model service that provides OpenAI-compatible API endpoints for various large language models, enabling developers to integrate advanced AI capabilities into their applications.

  [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

  The CometAPI node supports chat completions using various AI language models:

  ### Chat Completions
  - **Model Selection**: Choose from available models (default: gpt-4o-mini)
  - **Message Management**: Support for multi-turn conversations with user, assistant, and system roles
  - **Advanced Parameters**:
    - **Temperature**: Control randomness (0-2, default: 0.7)
    - **Max Tokens**: Set maximum response length (up to 32,768 tokens)
    - **Top P**: Control diversity via nucleus sampling (0-1, default: 1)
    - **Frequency Penalty**: Reduce repetition (-2 to 2, default: 0)
    - **Presence Penalty**: Encourage new topics (-2 to 2, default: 0)
    - **Stream**: Enable streaming responses (default: false)

  ## Credentials

  To use this node, you need to authenticate with CometAPI:

  1. Sign up for a CometAPI account at [CometAPI Console](https://api.cometapi.com/console/token)
  2. Generate an API key from your console dashboard
  3. In n8n, create new CometAPI credentials and enter your API key

  ### Authentication Method
  - **API Key**: Bearer token authentication using your CometAPI key

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Node.js version**: 20.15 or higher
  - **Tested with**: Latest stable versions of n8n

  This node is compatible with all n8n deployment methods including:
  - Self-hosted n8n instances
  - n8n Cloud
  - Docker deployments

  ## Usage

  ### Basic Chat Completion

  1. Add the CometAPI node to your workflow
  2. Configure your CometAPI credentials
  3. Set up your messages:
     - **System message**: Define the AI's behavior (optional)
     - **User message**: Your prompt or question
  4. Choose your preferred model (e.g., gpt-4o-mini)
  5. Execute the workflow

  ### Example Use Cases

  - **Content Generation**: Create articles, summaries, or creative content
  - **Data Analysis**: Analyze and interpret data with AI assistance
  - **Customer Support**: Build intelligent chatbots and support systems
  - **Code Review**: Get AI feedback on code quality and suggestions
  - **Translation**: Translate text between different languages

  ### Advanced Configuration

  For more control over the AI responses, you can adjust:
  - **Temperature**: Lower values (0.1-0.3) for more focused responses, higher values (0.7-1.0) for more creative outputs
  - **Max Tokens**: Limit response length to control costs and response time
  - **Frequency/Presence Penalty**: Fine-tune repetition and topic diversity

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [CometAPI Documentation](https://api.cometapi.com/doc)
  * [CometAPI Console](https://api.cometapi.com/console/token)

  ## License

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

ai_documentation_summary:
  {"purpose":"Provides an n8n node to interact with CometAPI large language models for chat-based completions within n8n workflows, supporting multi-turn conversations and configurable generation parameters.","capabilities":["Chat completions with multi-turn conversations (system, user, assistant roles)","Model selection (default: gpt-4o-mini)","Configure generation parameters: temperature, max tokens (up to 32,768), top_p, frequency_penalty, presence_penalty","Enable streaming responses","Compose message sequences (system/user messages) and execute completions in workflows"],"authentication":"API key required (Bearer token)","commonUseCases":["Content generation (articles, summaries, creative content)","Data analysis and interpretation with AI assistance","Customer support chatbots and automated support systems","Code review and suggestions","Translation between languages"],"limitations":["Operates primarily as a chat completion node — other API capabilities (e.g., embeddings or fine-tuning) are not documented here","Max tokens limited to 32,768 per request","Requires a CometAPI account and API key to authenticate","Requires n8n >= 1.0.0 and Node.js >= 20.15"],"relatedNodes":[]}


node_type: n8n-nodes-famulor.famulor
package_name: n8n-nodes-famulor
display_name: Famulor
description: Make phone calls using AI assistants from Famulor platform
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: bekservice
author_github_url: https://github.com/bekservice/n8n-famulor.git
npm_package_name: n8n-nodes-famulor
npm_version: 1.8.0
community_fetched_at: 2026-02-19T14:41:52.804Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "call",
      "options": [
        {
          "name": "AI",
          "value": "ai"
        },
        {
          "name": "Assistant",
          "value": "assistant"
        },
        {
          "name": "Call",
          "value": "call"
        },
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Conversation",
          "value": "conversation"
        },
        {
          "name": "Lead",
          "value": "lead"
        },
        {
          "name": "SMS",
          "value": "sms"
        },
        {
          "name": "Tool",
          "value": "tool"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "make",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a call",
          "description": "Delete a specific call record"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a call",
          "description": "Get details of a specific call by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all calls",
          "description": "List all calls with filtering options"
        },
        {
          "name": "Make",
          "value": "make",
          "action": "Make a phone call",
          "description": "Make a phone call using an AI assistant"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAssistants",
      "options": [
        {
          "name": "Get Assistants",
          "value": "getAssistants",
          "action": "Get assistants",
          "description": "Get all assistants from your account"
        },
        {
          "name": "Get Languages",
          "value": "getLanguages",
          "action": "Get languages",
          "description": "Get all available languages for assistant configuration"
        },
        {
          "name": "Get Models",
          "value": "getModels",
          "action": "Get models",
          "description": "Get all available LLM models for assistant configuration"
        },
        {
          "name": "Get Phone Numbers",
          "value": "getPhoneNumbers",
          "action": "Get phone numbers",
          "description": "Get available phone numbers for assistant assignment"
        },
        {
          "name": "Get Voices",
          "value": "getVoices",
          "action": "Get voices",
          "description": "Get all available voices for assistant configuration"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assistant"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List all campaigns",
          "description": "List all campaigns"
        },
        {
          "name": "Update Status",
          "value": "updateStatus",
          "action": "Update campaign status",
          "description": "Start or stop a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a lead",
          "description": "Delete a lead"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all leads",
          "description": "List all leads"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a lead",
          "description": "Update an existing lead"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send an SMS",
          "description": "Send an SMS message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sms"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a tool",
          "description": "Create a new mid call tool"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a tool",
          "description": "Delete a mid call tool"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a tool",
          "description": "Get a specific mid call tool by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all tools",
          "description": "List all mid call tools"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a tool",
          "description": "Update an existing mid call tool"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tool"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get current user",
          "description": "Get the authenticated user's profile information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateReply",
      "options": [
        {
          "name": "Generate Reply",
          "value": "generateReply",
          "action": "Generate AI reply",
          "description": "Generate an AI response using an assistant, identified by an external customer identifier"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a conversation",
          "description": "Create a new conversation session with an AI assistant"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a conversation",
          "description": "Retrieve the message history of a conversation"
        },
        {
          "name": "Send Message",
          "value": "sendMessage",
          "action": "Send a message",
          "description": "Send a message in an existing conversation and receive the assistant's response"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a call",
      "description": "Delete a specific call record"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a call",
      "description": "Get details of a specific call by ID"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all calls",
      "description": "List all calls with filtering options"
    },
    {
      "name": "Make",
      "value": "make",
      "action": "Make a phone call",
      "description": "Make a phone call using an AI assistant"
    },
    {
      "name": "Get Assistants",
      "value": "getAssistants",
      "action": "Get assistants",
      "description": "Get all assistants from your account"
    },
    {
      "name": "Get Languages",
      "value": "getLanguages",
      "action": "Get languages",
      "description": "Get all available languages for assistant configuration"
    },
    {
      "name": "Get Models",
      "value": "getModels",
      "action": "Get models",
      "description": "Get all available LLM models for assistant configuration"
    },
    {
      "name": "Get Phone Numbers",
      "value": "getPhoneNumbers",
      "action": "Get phone numbers",
      "description": "Get available phone numbers for assistant assignment"
    },
    {
      "name": "Get Voices",
      "value": "getVoices",
      "action": "Get voices",
      "description": "Get all available voices for assistant configuration"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all campaigns",
      "description": "List all campaigns"
    },
    {
      "name": "Update Status",
      "value": "updateStatus",
      "action": "Update campaign status",
      "description": "Start or stop a campaign"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a lead",
      "description": "Delete a lead"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all leads",
      "description": "List all leads"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a lead",
      "description": "Update an existing lead"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send an SMS",
      "description": "Send an SMS message"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a tool",
      "description": "Create a new mid call tool"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a tool",
      "description": "Delete a mid call tool"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a tool",
      "description": "Get a specific mid call tool by ID"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all tools",
      "description": "List all mid call tools"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a tool",
      "description": "Update an existing mid call tool"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get current user",
      "description": "Get the authenticated user's profile information"
    },
    {
      "name": "Generate Reply",
      "value": "generateReply",
      "action": "Generate AI reply",
      "description": "Generate an AI response using an assistant, identified by an external customer identifier"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a conversation",
      "description": "Create a new conversation session with an AI assistant"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a conversation",
      "description": "Retrieve the message history of a conversation"
    },
    {
      "name": "Send Message",
      "value": "sendMessage",
      "action": "Send a message",
      "description": "Send a message in an existing conversation and receive the assistant's response"
    }
  ]

npm_readme:
  # 🤖 Famulor for n8n

  <div align="center">

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

  **The most powerful AI calling automation for n8n workflows**

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

  [English](#english) • [Deutsch](#deutsch) • [Installation](#installation) • [Documentation](https://docs.famulor.de/)

  ---

  </div>

  ## English

  **Transform your n8n workflows with AI-powered phone calls**

  This official n8n community node integrates [Famulor](https://www.famulor.io/)'s cutting-edge AI calling platform directly into your automation workflows. Make intelligent phone calls, receive real-time call data, and automate complex communication processes with ease.

  ### Why Famulor?

  🎯 **AI-Powered Conversations** - Deploy intelligent virtual assistants that conduct natural phone conversations  
  📊 **Real-time Analytics** - Get instant call results, transcripts, and extracted data  
  🔄 **Seamless Integration** - Native n8n integration with no complex setup required  
  📱 **Global Reach** - Make calls worldwide with enterprise-grade reliability  

  ---

  ## Deutsch

  **Verwandeln Sie Ihre n8n-Workflows mit KI-gestützten Telefonanrufen**

  Dieser offizielle n8n-Community-Node integriert [Famulors](https://www.famulor.de/) hochmoderne KI-Anrufplattform direkt in Ihre Automatisierungs-Workflows. Führen Sie intelligente Telefonanrufe durch, erhalten Sie Echtzeit-Anrufdaten und automatisieren Sie komplexe Kommunikationsprozesse mit Leichtigkeit.

  ### Warum Famulor?

  🎯 **KI-gestützte Gespräche** - Setzen Sie intelligente virtuelle Assistenten ein, die natürliche Telefongespräche führen  
  📊 **Echtzeit-Analytik** - Erhalten Sie sofortige Anrufergebnisse, Transkripte und extrahierte Daten  
  🔄 **Nahtlose Integration** - Native n8n-Integration ohne komplexe Einrichtung  
  📱 **Globale Reichweite** - Führen Sie weltweit Anrufe mit Enterprise-Level-Zuverlässigkeit durch  

  ---

  ## Installation

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

  ### Deutsch
  Befolgen Sie die [Installationsanleitung](https://docs.n8n.io/integrations/community-nodes/installation/) in der n8n Community Nodes Dokumentation.

  ---

  ## Operations / Operationen

  ### English

  **Unified Node Interface** - One node, all capabilities

  When you add the **Famulor** node to your workflow, choose between:

  #### 🚀 Actions (Regular Node)
  **📞 Call Operations**
  - **Make Call**: Initiate AI-powered phone conversations
    - Select from your outbound assistants
    - Specify target phone numbers  
    - Add custom variables for personalized conversations
    - Get instant call results and data

  **🤖 Assistant Management**  
  - **Get Assistants**: Retrieve all your AI assistants
    - Fetch complete assistant configurations
    - Access assistant details (name, ID, status, capabilities)
    - Use in any workflow for dynamic assistant selection

  #### ⚡ Triggers (Webhook Node)
  **📋 Call Monitoring**
  - **Call Ended**: Real-time call completion notifications
    - Monitor specific assistants for call events
    - Receive comprehensive call data:
      - Full conversation transcripts
      - AI-extracted variables and insights
      - Call duration, status, and recordings
      - Lead and campaign information
      - Input/output variable mappings

  ### Deutsch

  **Einheitliche Node-Oberfläche** - Ein Node, alle Funktionen

  Wenn Sie den **Famulor**-Node zu Ihrem Workflow hinzufügen, wählen Sie zwischen:

  #### 🚀 Aktionen (Regulärer Node)
  **📞 Anruf-Operationen**
  - **Anruf tätigen**: KI-gestützte Telefongespräche initiieren
    - Auswahl aus Ihren ausgehenden Assistenten
    - Zieltelefonnummern angeben
    - Benutzerdefinierte Variablen für personalisierte Gespräche hinzufügen
    - Sofortige Anrufergebnisse und Daten erhalten

  **🤖 Assistenten-Verwaltung**
  - **Assistenten abrufen**: Alle Ihre KI-Assistenten abrufen
    - Vollständige Assistenten-Konfigurationen laden
    - Zugriff auf Assistenten-Details (Name, ID, Status, Fähigkeiten)
    - Verwendung in jedem Workflow für dynamische Assistenten-Auswahl

  #### ⚡ Trigger (Webhook-Node)
  **📋 Anruf-Überwachung**
  - **Anruf beendet**: Echtzeit-Benachrichtigungen bei Anrufabschluss
    - Überwachung spezifischer Assistenten für Anruf-Events
    - Umfassende Anrufdaten erhalten:
      - Vollständige Gesprächstranskripte
      - KI-extrahierte Variablen und Erkenntnisse
      - Anrufdauer, Status und Aufzeichnungen
      - Lead- und Kampagnen-Informationen
      - Input/Output-Variablen-Zuordnungen

  ---

  ## Credentials / Anmeldedaten

  ### English

  **Quick Setup in 3 Steps**

  1. **Get Your API Key**
     - Sign up at [Famulor](https://app.famulor.de/) (German) or [Famulor.io](https://www.famulor.io/) (English)
     - Navigate to your account settings
     - Generate a new API key

  2. **Configure n8n**
     - Create new credentials of type "Famulor API"
     - Enter your API key
     - Credentials are automatically validated upon save

  3. **Start Automating**
     - Your Famulor account is now connected
     - All assistants and settings sync automatically

  ### Deutsch

  **Schnelle Einrichtung in 3 Schritten**

  1. **API-Schlüssel erhalten**
     - Registrieren Sie sich bei [Famulor](https://app.famulor.de/) (Deutsch) oder [Famulor.io](https://www.famulor.io/) (Englisch)
     - Gehen Sie zu Ihren Kontoeinstellungen
     - Generieren Sie einen neuen API-Schlüssel

  2. **n8n konfigurieren**
     - Erstellen Sie neue Anmeldedaten vom Typ "Famulor API"
     - Geben Sie Ihren API-Schlüssel ein
     - Anmeldedaten werden beim Speichern automatisch validiert

  3. **Automatisierung starten**
     - Ihr Famulor-Konto ist jetzt verbunden
     - Alle Assistenten und Einstellungen synchronisieren automatisch

  ---

  ## Compatibility / Kompatibilität

  ### English
  - **Minimum n8n version**: 0.36.1
  - **Tested with**: n8n 1.0.0+
  - **Platform support**: All n8n deployment types

  ### Deutsch
  - **Minimale n8n-Version**: 0.36.1
  - **Getestet mit**: n8n 1.0.0+
  - **Plattform-Unterstützung**: Alle n8n-Deployment-Typen

  ---

  ## Usage / Verwendung

  ### English

  #### 🎯 Getting Started

  1. **Add the Famulor Node** to your workflow
  2. **Choose your mode**: Action (for outbound operations) or Trigger (for receiving data)
  3. **Configure credentials** using your Famulor API key
  4. **Start automating** your phone operations

  #### 📞 Making Phone Calls (Actions)

  **Quick Setup:**
  1. Select **Action** → **Call** → **Make**
  2. Choose your **outbound assistant** (loaded from your account)
  3. Enter the **target phone number**
  4. Add **custom variables** for personalized conversations:
     ```
     customer_name: "John Smith"
     order_id: "12345"
     appointment_time: "3 PM"
     ```
  5. **Execute** and receive instant results

  #### 🤖 Managing Assistants (Actions)

  **Retrieve All Assistants:**
  1. Select **Action** → **Assistant** → **Get Assistants**
  2. Fetches all assistants with complete configuration data
  3. Use for dynamic assistant selection in complex workflows

  #### ⚡ Real-time Call Monitoring (Triggers)

  **Setup Webhook Triggers:**
  1. Select **Trigger** → **Call** → **Call Ended**
  2. Choose which **assistant to monitor**
  3. Copy the **generated webhook URL**
  4. **Important**: Add this URL to your assistant settings in Famulor dashboard
  5. Enable webhook notifications in your assistant configuration

  **Data You Receive:**
  - 📋 Complete call transcripts and recordings
  - 📊 AI-extracted variables and insights
  - ⏱️ Call duration, timestamps, and status
  - 📱 Phone numbers and participant details
  - 🎯 Campaign and lead information (if applicable)

  ### Deutsch

  #### 🎯 Erste Schritte

  1. **Famulor-Node hinzufügen** zu Ihrem Workflow
  2. **Modus wählen**: Aktion (für ausgehende Operationen) oder Trigger (für Datenempfang)
  3. **Anmeldedaten konfigurieren** mit Ihrem Famulor-API-Schlüssel
  4. **Automatisierung starten** Ihrer Telefon-Operationen

  #### 📞 Telefonanrufe tätigen (Aktionen)

  **Schnelle Einrichtung:**
  1. Wählen Sie **Aktion** → **Call** → **Make**
  2. Wählen Sie Ihren **ausgehenden Assistenten** (aus Ihrem Konto geladen)
  3. Geben Sie die **Zieltelefonnummer** ein
  4. Fügen Sie **benutzerdefinierte Variablen** für personalisierte Gespräche hinzu:
     ```
     kundenname: "Max Mustermann"
     bestell_id: "12345"
     termin_zeit: "15 Uhr"
     ```
  5. **Ausführen** und sofortige Ergebnisse erhalten

  #### 🤖 Assistenten verwalten (Aktionen)

  **Alle Assistenten abrufen:**
  1. Wählen Sie **Aktion** → **Assistant** → **Get Assistants**
  2. Lädt alle Assistenten mit vollständigen Konfigurationsdaten
  3. Verwenden Sie für dynamische Assistenten-Auswahl in komplexen Workflows

  #### ⚡ Echtzeit-Anrufüberwachung (Trigger)

  **Webhook-Trigger einrichten:**
  1. Wählen Sie **Trigger** → **Call** → **Call Ended**
  2. Wählen Sie, welchen **Assistenten Sie überwachen** möchten
  3. Kopieren Sie die **generierte Webhook-URL**
  4. **Wichtig**: Fügen Sie diese URL in Ihre Assistenten-Einstellungen im Famulor-Dashboard hinzu
  5. Aktivieren Sie Webhook-Benachrichtigungen in Ihrer Assistenten-Konfiguration

  **Erhaltene Daten:**
  - 📋 Vollständige Anruftranskripte und Aufzeichnungen
  - 📊 KI-extrahierte Variablen und Erkenntnisse
  - ⏱️ Anrufdauer, Zeitstempel und Status
  - 📱 Telefonnummern und Teilnehmerdetails
  - 🎯 Kampagnen- und Lead-Informationen (falls zutreffend)

  ---

  ## Resources / Ressourcen

  ### English

  📚 **Documentation & Guides**
  - [Famulor Documentation](https://docs.famulor.de/) - Complete platform documentation  
  - [Famulor API Reference](https://docs.famulor.de/api-reference/) - Technical API documentation
  - [n8n Community Nodes Guide](https://docs.n8n.io/integrations/#community-nodes) - n8n integration docs

  🌐 **Platforms & Support**
  - [Famulor.io](https://www.famulor.io/) - English platform & signup
  - [Famulor.de](https://www.famulor.de/) - German platform & signup  
  - [Famulor App](https://app.famulor.de/) - Login to your dashboard

  ### Deutsch

  📚 **Dokumentation & Anleitungen**
  - [Famulor-Dokumentation](https://docs.famulor.de/) - Vollständige Plattform-Dokumentation
  - [Famulor-API-Referenz](https://docs.famulor.de/api-reference/) - Technische API-Dokumentation  
  - [n8n-Community-Nodes-Anleitung](https://docs.n8n.io/integrations/#community-nodes) - n8n-Integrations-Dokumentation

  🌐 **Plattformen & Support**
  - [Famulor.io](https://www.famulor.io/) - Englische Plattform & Anmeldung
  - [Famulor.de](https://www.famulor.de/) - Deutsche Plattform & Anmeldung
  - [Famulor App](https://app.famulor.de/) - Anmeldung zu Ihrem Dashboard

  ---

  ## About Famulor / Über Famulor

  ### English

  Famulor is the leading AI-powered calling platform that revolutionizes business communications. Our intelligent virtual assistants conduct natural phone conversations, extract meaningful data, and integrate seamlessly into your existing workflows.

  **Why Choose Famulor?**
  - 🧠 **Advanced AI** - GPT-powered conversations that sound human  
  - 🔒 **Enterprise Security** - GDPR-compliant with enterprise-grade encryption
  - 🌍 **Global Scale** - Make calls worldwide with local presence
  - 📈 **Proven Results** - Trusted by businesses across industries

  ### Deutsch

  Famulor ist die führende KI-gestützte Anrufplattform, die die Geschäftskommunikation revolutioniert. Unsere intelligenten virtuellen Assistenten führen natürliche Telefongespräche, extrahieren aussagekräftige Daten und integrieren sich nahtlos in Ihre bestehenden Workflows.

  **Warum Famulor wählen?**
  - 🧠 **Fortgeschrittene KI** - GPT-gestützte Gespräche, die menschlich klingen
  - 🔒 **Unternehmenssicherheit** - DSGVO-konform mit Enterprise-Level-Verschlüsselung  
  - 🌍 **Globale Reichweite** - Weltweite Anrufe mit lokaler Präsenz
  - 📈 **Bewährte Ergebnisse** - Vertrauen von Unternehmen aller Branchen

  ---

  <div align="center">

  **Ready to automate your phone calls? / Bereit, Ihre Telefonanrufe zu automatisieren?**

  [🚀 Get Started with Famulor](https://app.famulor.de/) • [📖 Read the Docs](https://docs.famulor.de/) • [💬 Get Support](https://www.famulor.io/support)

  *Built with ❤️ by the Famulor team*

  </div>

ai_documentation_summary:
  {"purpose":"Integrate Famulor's AI calling platform into n8n workflows to initiate AI-powered phone calls, manage assistants, and receive real-time call events and data.","capabilities":["Make Call: initiate AI-powered outbound phone conversations","Select outbound assistant for each call","Specify target phone numbers for calls","Pass custom input variables for personalized conversations","Receive instant call results and structured call data","Get Assistants: retrieve all assistants and their full configurations (name, ID, status, capabilities)","Trigger (Call Ended): webhook-based real-time notifications when calls complete","Receive full conversation transcripts","Receive AI-extracted variables and insights from calls","Receive call metadata: duration, status, recordings"],"authentication":"API key required (Famulor API credentials)","commonUseCases":["Automated outbound calling using AI virtual assistants","Real-time monitoring of call completion events in workflows","Transcription and extraction of structured data from phone conversations","Dynamic selection of assistants based on workflow data","Lead qualification and campaign tracking via call interactions"],"limitations":[],"relatedNodes":["Webhook (trigger)","Standard action node (regular node operations)"]}


node_type: n8n-nodes-nimbasms.nimbaSMS
package_name: n8n-nodes-nimbasms
display_name: Nimba SMS
description: Send SMS, manage campaigns, and track delivery reports using the Nimba SMS API with ease.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: diallo
author_github_url: https://github.com/nimbasms/
npm_package_name: n8n-nodes-nimbasms
npm_version: 1.0.36
community_fetched_at: 2026-02-19T14:41:52.805Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message",
          "description": "Send and manage SMS"
        },
        {
          "name": "Contact",
          "value": "contact",
          "description": "Manage contacts"
        },
        {
          "name": "Group",
          "value": "group",
          "description": "Manage contact groups"
        },
        {
          "name": "Account",
          "value": "account",
          "description": "Account information and billing"
        },
        {
          "name": "Purchase",
          "value": "purchase",
          "description": "View purchase history and invoices"
        },
        {
          "name": "Sender Name",
          "value": "senderName",
          "description": "Manage sender names"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send an SMS",
          "description": "Send a single SMS"
        },
        {
          "name": "Verification OTP",
          "value": "verification",
          "action": "Send OTP verification",
          "description": "Send OTP verification code"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many SMS",
          "description": "Get many SMS history"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a Message",
          "description": "Get a specific message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a contact",
          "description": "Create a new contact"
        },
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all contacts",
          "description": "Get all contacts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all groups",
          "description": "Get all groups"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "group"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getBalance",
      "options": [
        {
          "name": "Get Balance",
          "value": "getBalance",
          "action": "Get account balance",
          "description": "Get account balance"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all purchases",
          "description": "Get all purchase history"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "purchase"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send",
      "value": "send",
      "action": "Send an SMS",
      "description": "Send a single SMS"
    },
    {
      "name": "Verification OTP",
      "value": "verification",
      "action": "Send OTP verification",
      "description": "Send OTP verification code"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many SMS",
      "description": "Get many SMS history"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a Message",
      "description": "Get a specific message"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a contact",
      "description": "Create a new contact"
    },
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all contacts",
      "description": "Get all contacts"
    },
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all groups",
      "description": "Get all groups"
    },
    {
      "name": "Get Balance",
      "value": "getBalance",
      "action": "Get account balance",
      "description": "Get account balance"
    },
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all purchases",
      "description": "Get all purchase history"
    }
  ]

npm_readme:
  # n8n-nodes-nimbasms

  ![npm version](https://img.shields.io/npm/v/n8n-nodes-nimbasms)
  ![npm downloads](https://img.shields.io/npm/dm/n8n-nodes-nimbasms)
  ![License](https://img.shields.io/badge/license-MIT-green)
  ![n8n Community Node](https://img.shields.io/badge/n8n-community--node-ff6d5a)

  A comprehensive n8n community node that integrates with the Nimba SMS API, enabling you to send SMS messages, manage contacts, create campaigns, and handle billing operations directly from your n8n workflows.

  <p align="center"><img src="examples/automation_example.png" alt="Nimba SMS in n8n"></p>

  ## 🚀 Features

  - ✅ **SMS Operations**: Send individual SMS and retrieve message history
  - ✅ **Contact Management**: Create, update, delete, and organize contacts
  - ✅ **Group Management**: Organize contacts into groups for targeted campaigns
  - ✅ **Account Operations**: Check balance, view SMS packs, and monitor usage
  - ✅ **Purchase Management**: View purchase history and invoices
  - ✅ **Sender Name Management**: Manage custom sender names

  ## 📦 Installation

  ### Option 1: Install via n8n Community Nodes (Recommended)

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

  ### Option 2: Manual Installation

  ```bash
  # For self-hosted n8n instances
  npm install n8n-nodes-nimbasms

  # For global n8n installation
  npm install -g n8n-nodes-nimbasms
  ```

  ### Option 3: Docker Installation

  Add to your n8n Docker configuration:

  ```dockerfile
  FROM n8nio/n8n:latest
  USER root
  RUN npm install -g n8n-nodes-nimbasms
  USER node
  ```

  ## 🔑 Credentials Setup

  Before using this node, configure your Nimba SMS API credentials:

  1. In n8n, go to **Credentials** and create **Nimba SMS API** credentials
  2. Fill in the required information:
     - **Service ID (SID)**: Your Nimba SMS Service ID
     - **Secret Token**: Your Nimba SMS Secret Token
     - **Base URL**: Default is `https://api.nimbasms.com`

  > 💡 Get your credentials from your [Nimba SMS Dashboard](https://wwww.nimbasms.com/app)

  ## 📱 Supported Operations

  ### SMS Operations
  - **Send**: Send individual SMS messages
  - **Get Many**: Retrieve SMS history with filtering options
  - **Get**: Get details of a specific SMS message

  ### Contact Operations
  - **Create**: Add new contacts with optional group assignment
  - **Update**: Modify contact information and group memberships

  ### Group Operations
  - **Get**: Retrieve group details

  ### Account Operations
  - **Get Balance**: Check your SMS credit balance

  ### Purchase Operations
  - **Get All**: Retrieve purchase history with filtering options
  - **Get**: Get details of a specific purchase by UID

  ### Sender Name Operations
  - **Get**: Check sender name status
  - **Get Many**: List all your sender names

  ## 🎯 Quick Start Examples

  ### Send a Simple SMS

  ```json
  {
    "resource": "sms",
    "operation": "send",
    "senderName": "YourBrand",
    "contact": "+224123456789",
    "message": "Hello from n8n! Your order has been confirmed."
  }
  ```

  ### Get Purchase History

  ```json
  {
    "resource": "purchase",
    "operation": "getAll",
    "returnAll": false,
    "limit": 10,
    "additionalFields": {
      "payment_type": "Orange",
      "start_date": "2024-01-01T00:00:00Z",
      "end_date": "2024-12-31T23:59:59Z"
    }
  }
  ```

  ### Get Specific Purchase Details

  ```json
  {
    "resource": "purchase",
    "operation": "get",
    "purchaseUid": "07cc67f4-45d6-494b-adac-09b5cbc7e2b5"
  }
  ```

  ### Create a Contact with Group Assignment

  ```json
  {
    "resource": "contact",
    "operation": "create",
    "numero": "+224123456789",
    "additionalFields": {
      "name": "John Doe",
      "groupes_id": "1,2,3"
    }
  }
  ```

  ### Launch an SMS Campaign

  ```json
  {
    "resource": "campaign",
    "operation": "create",
    "name": "Welcome Campaign",
    "senderName": "YourBrand",
    "message": "Welcome to our service! Enjoy 20% off your first order.",
    "groupsIds": "1,2"
  }
  ```

  ### Check Account Balance

  ```json
  {
    "resource": "account",
    "operation": "getBalance"
  }
  ```

  ## 🌍 Regional Support

  Optimized for African markets with:
  - Guinea country code (+224) auto-formatting
  - Support for local phone number formats

  ## 🛠️ Compatibility

  - **n8n Version**: 0.190.0 or later
  - **Node.js Version**: 16.x or later
  - **API Version**: Nimba SMS API v1

  ## 📈 Use Cases

  ### E-commerce
  - Order confirmations and shipping notifications
  - Abandoned cart recovery campaigns
  - Customer support and feedback collection

  ### Marketing
  - Promotional campaigns and special offers
  - Event notifications and reminders
  - Customer segmentation and targeting

  ### Business Operations
  - Employee notifications and alerts
  - Appointment reminders
  - System status updates and monitoring

  ### Customer Service
  - Support ticket updates
  - Account verification codes
  - Service outage notifications

  ## 🤝 Support & Resources

  - **Documentation**: [Nimba SMS API Docs](https://developers.nimbasms.com)
  - **Community**: [n8n Community Forum](https://community.n8n.io)
  - **Issues**: [GitHub Issues](https://github.com/nimbasms/n8n-nodes-nimbasms/issues)
  - **Support**: Contact contact@nimbasms.com for API-related questions

  ## 📄 License

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

  ## 🔗 Links

  - [npm Package](https://www.npmjs.com/package/n8n-nodes-nimbasms)
  - [Nimba SMS Website](https://www.nimbasms.com)
  - [n8n Website](https://n8n.io)

ai_documentation_summary:
  {"purpose":"Integrate n8n workflows with the Nimba SMS API to send SMS, manage contacts and groups, create campaigns, monitor account balance and purchases, and manage sender names.","capabilities":["Send individual SMS messages","Retrieve SMS history (get many) and get SMS details","Create, update, and delete contacts (with optional group assignment)","Retrieve group details (group management/organization)","Create SMS campaigns (launch campaigns targeted to groups)","Check account balance and monitor SMS usage / SMS packs","Retrieve purchase history and get specific purchase/invoice details","Manage sender names (check status, list sender names)","Phone number regional support and auto-formatting for Guinea (+224)"],"authentication":"API credentials required (Service ID (SID) and Secret Token) with configurable Base URL (default: https://api.nimbasms.com)","commonUseCases":["E-commerce: order confirmations, shipping notifications, abandoned cart recovery","Marketing: promotional campaigns, event reminders, customer segmentation targeting","Business operations: appointment reminders, employee notifications, system alerts","Customer service: verification codes, support ticket updates, outage notifications"],"limitations":["Requires n8n 0.190.0+ and Node.js 16.x+; targets Nimba SMS API v1","Group operations surface is limited in docs (only 'Get' explicitly listed)","Delivery-report handling is referenced but no explicit delivery-report operation is documented in the README"],"relatedNodes":[]}


node_type: n8n-nodes-htmlcsstopdf.htmlcsstopdf
package_name: n8n-nodes-htmlcsstopdf
display_name: HTML to PDF
description: Convert HTML to PDF or Capture Website Screenshots to PDF
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: htmlcsstoimage
author_github_url: https://github.com/PdfMunk/n8n-nodes-htmltopdf.git
npm_package_name: n8n-nodes-htmlcsstopdf
npm_version: 3.0.0
community_fetched_at: 2026-02-19T14:41:52.807Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "pdfCreation",
      "options": [
        {
          "name": "PDF Creation",
          "value": "pdfCreation",
          "description": "Create PDF documents from various sources"
        },
        {
          "name": "PDF Manipulation",
          "value": "pdfManipulation",
          "description": "Merge, split, or compress PDF documents"
        },
        {
          "name": "PDF Security",
          "value": "pdfSecurity",
          "description": "Lock and unlock password-protected PDFs"
        },
        {
          "name": "PDF Extraction & Parsing",
          "value": "pdfParsing",
          "description": "Parse PDFs into structured JSON data"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "htmlToPdf",
      "options": [
        {
          "name": "HTML to PDF",
          "value": "htmlToPdf",
          "action": "Convert HTML to PDF",
          "description": "Generate PDF from HTML/CSS"
        },
        {
          "name": "URL to PDF",
          "value": "urlToPdf",
          "action": "Capture a screenshot of a website in PDF format",
          "description": "Capture Website Screenshot to PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfCreation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "mergePdfs",
      "options": [
        {
          "name": "Merge PDFs",
          "value": "mergePdfs",
          "action": "Merge multiple PDFS into one",
          "description": "Merge multiple PDF files into one"
        },
        {
          "name": "Split PDF",
          "value": "splitPdf",
          "action": "Split PDF",
          "description": "Split or extract pages from a PDF"
        },
        {
          "name": "Compress PDF",
          "value": "compressPdf",
          "action": "Compress PDF",
          "description": "Compress a PDF to reduce file size"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfManipulation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "lockPdf",
      "options": [
        {
          "name": "Lock PDF",
          "value": "lockPdf",
          "action": "Lock PDF with password",
          "description": "Add password protection to a PDF"
        },
        {
          "name": "Unlock PDF",
          "value": "unlockPdf",
          "action": "Unlock password protected PDF",
          "description": "Remove password protection from a PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfSecurity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parsePdf",
      "options": [
        {
          "name": "Parse PDF",
          "value": "parsePdf",
          "action": "Parse PDF to JSON",
          "description": "Extract structured data from PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfParsing"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "HTML to PDF",
      "value": "htmlToPdf",
      "action": "Convert HTML to PDF",
      "description": "Generate PDF from HTML/CSS"
    },
    {
      "name": "URL to PDF",
      "value": "urlToPdf",
      "action": "Capture a screenshot of a website in PDF format",
      "description": "Capture Website Screenshot to PDF"
    },
    {
      "name": "Merge PDFs",
      "value": "mergePdfs",
      "action": "Merge multiple PDFS into one",
      "description": "Merge multiple PDF files into one"
    },
    {
      "name": "Split PDF",
      "value": "splitPdf",
      "action": "Split PDF",
      "description": "Split or extract pages from a PDF"
    },
    {
      "name": "Compress PDF",
      "value": "compressPdf",
      "action": "Compress PDF",
      "description": "Compress a PDF to reduce file size"
    },
    {
      "name": "Lock PDF",
      "value": "lockPdf",
      "action": "Lock PDF with password",
      "description": "Add password protection to a PDF"
    },
    {
      "name": "Unlock PDF",
      "value": "unlockPdf",
      "action": "Unlock password protected PDF",
      "description": "Remove password protection from a PDF"
    },
    {
      "name": "Parse PDF",
      "value": "parsePdf",
      "action": "Parse PDF to JSON",
      "description": "Extract structured data from PDF"
    }
  ]

npm_readme:
  # n8n-nodes-htmlcsstopdf

  [![PDFMunk Banner](images/pdfmunkbanner.png)](https://pdfmunk.com/)

  **Get your api key from** [https://pdfapihub.com](https://pdfapihub.com)) 

  An n8n community node for creating PDFs from HTML/CSS or URLs, manipulating PDFs (merge/split/compress), securing PDFs (lock/unlock), and parsing PDFs to structured JSON — powered by the PDFMunk API.

  ## Features

  - **PDF Creation**
    - **HTML to PDF**: Render HTML + optional CSS into a PDF
    - **URL to PDF**: Capture a website as a PDF (full-page support)
    - **Dynamic Params**: Template placeholder replacement for HTML generation
    - **Viewport Control**: Configure viewport width/height
    - **Flexible Output**: Return a direct URL or a binary PDF file
    - **Output Filename**: Set the resulting PDF filename
    - **Configurable Timeout**: Increase timeouts for large/slow renders
  - **PDF Manipulation**
    - **Merge PDFs**: Merge 2–15 PDFs from URLs
    - **Split PDF**: Extract specific pages, split each page, or split into chunks
    - **Compress PDF**: Reduce file size with selectable compression levels
  - **PDF Security**
    - **Lock PDF**: Add password protection (optionally provide input password for already-encrypted PDFs)
    - **Unlock PDF**: Remove password protection
  - **PDF Extraction & Parsing**
    - **Parse PDF to JSON**: Extract text/layout/tables/full extraction with page selection

  ## Installation

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

  ### Community Nodes (Recommended)

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

  ### Manual Installation

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

  # Install the package
  npm install n8n-nodes-htmlcsstopdf
  ```

  ### Docker

  Add the package to your n8n Docker container:

  ```dockerfile
  FROM n8nio/n8n:latest
  USER root
  RUN npm install -g n8n-nodes-htmlcsstopdf
  USER node
  ```

  ## Getting Your PDFMunk API Key

  1. **Sign Up**: Visit [PDFMunk.com](https://pdfmunk.com) and create an account
  2. **Verify Email**: Check your email and verify your account
  3. **Access Dashboard**: Log in to your PDFMunk dashboard
  4. **Generate API Key**: 
     - Navigate to the "API Keys" section
     - Click "Generate New API Key"
     - Copy your API key securely
  5. **Choose Plan**: Select a plan based on your usage needs (see PDFMunk pricing for current limits).

  ## Configuration

  ### Setting Up Credentials

  1. In n8n, go to **Credentials**
  2. Click **+ Add Credential**
  3. Search for "HtmlCssToPdf API"
  4. Enter your PDFMunk API key
  5. Test the connection
  6. Save the credential

  ## Operations

  The node exposes operations grouped by **Resource**.

  ### PDF Creation

  #### HTML to PDF
  Generate a PDF from custom HTML and optional CSS.

  **Parameters:**
  - **HTML Content** (`html_content`)
  - **CSS Content** (`css_content`, optional)
  - **Dynamic Params** (`dynamic_params`, optional key/value pairs for templating)
  - **Viewport Width/Height** (`viewPortWidth`, `viewPortHeight`)
  - **Output Format** (`output_format`: `url` or `file`)
  - **Output Filename** (`output_filename`, without `.pdf`)
  - **Timeout (in Seconds)** (`timeout`, default: 300)

  #### URL to PDF
  Generate a PDF from a website URL.

  **Parameters:**
  - **URL** (`url`)
  - **Full Page** (`full_page`, default: `true`)
  - **Wait Till** (`wait_till`, milliseconds to wait before capture)
  - **Viewport Width/Height** (`viewPortWidth`, `viewPortHeight`)
  - **Output Format** (`output_format`: `url` or `file`)
  - **Output Filename** (`output_filename`, without `.pdf`)
  - **Timeout (in Seconds)** (`timeout`, default: 300)

  ### PDF Manipulation

  #### Merge PDFs
  Merge multiple PDF URLs into one document.

  **Parameters:**
  - **PDF URLs** (`pdf_urls`, comma-separated; minimum 2, maximum 15)
  - **Output Type** (`merge_output`: `url`, `file`, or `base64`)

  #### Split PDF
  Split or extract pages from a PDF.

  **Parameters:**
  - **PDF URL** (`split_url`)
  - **Split Mode** (`split_mode`)
    - `pages`: extract a page range/list via **Page Range** (`pages`)
    - `each`: split each page into its own PDF
    - `chunks`: split into **Number of Chunks** (`chunks`)
  - **Output Type** (`split_output`: `url`, `file`, or `base64`)

  #### Compress PDF
  Compress a PDF to reduce file size.

  **Parameters:**
  - **PDF URL** (`compress_url`, max 10MB)
  - **Compression Level** (`compression`: `low`, `medium`, `high`, `max`)
  - **Output Type** (`compress_output`: `url`, `file`, or `base64`)
  - **Output Filename** (`compress_output_name`, e.g. `compressed.pdf`)

  ### PDF Security

  #### Lock PDF
  Add password protection to a PDF.

  **Parameters:**
  - **PDF URL** (`lock_url`, max 10MB)
  - **Password** (`lock_password`)
  - **Input Password** (`lock_input_password`, optional)
  - **Output Type** (`lock_output`: `url`, `file`, or `base64`)
  - **Output Filename** (`lock_output_name`, e.g. `locked.pdf`)

  #### Unlock PDF
  Remove password protection from a PDF.

  **Parameters:**
  - **PDF URL** (`unlock_url`, max 10MB)
  - **Password** (`unlock_password`)
  - **Output Type** (`unlock_output`: `url`, `file`, or `base64`)
  - **Output Filename** (`unlock_output_name`, e.g. `unlocked.pdf`)

  ### PDF Extraction & Parsing

  #### Parse PDF
  Parse a PDF into structured JSON.

  **Parameters:**
  - **PDF URL** (`parse_url`)
  - **Parse Mode** (`parse_mode`: `text`, `layout`, `tables`, `full`)
  - **Pages** (`parse_pages`: `all` or ranges like `1-3`)

  ## Usage

  ### Basic HTML to PDF Conversion

  ```json
  {
    "operation": "htmlToPdf",
    "html_content": "<h1>Hello World</h1><p>This is a test document.</p>",
    "css_content": "h1 { color: blue; } p { font-size: 14px; }",
    "viewPortWidth": 1080,
    "viewPortHeight": 720,
    "output_format": "file",
    "output_filename": "hello-world",
    "timeout": 300
  }
  ```

  ### Advanced Usage Examples

  #### 1. Invoice Generation
  ```html
  <!DOCTYPE html>
  <html>
  <head>
      <style>
          .invoice { font-family: Arial, sans-serif; }
          .header { background-color: #f0f0f0; padding: 20px; }
          .total { font-weight: bold; font-size: 18px; }
      </style>
  </head>
  <body>
      <div class="invoice">
          <div class="header">
              <h1>Invoice #12345</h1>
          </div>
          <div class="total">Total: $299.99</div>
      </div>
  </body>
  </html>
  ```

  #### 2. Report Generation
  ```html
  <div class="report">
      <h1>Monthly Report</h1>
      <table border="1">
          <tr><th>Metric</th><th>Value</th></tr>
          <tr><td>Sales</td><td>$50,000</td></tr>
          <tr><td>Growth</td><td>15%</td></tr>
      </table>
  </div>
  ```

  #### 3. Certificate Generation
  ```html
  <div class="certificate">
      <h1>Certificate of Completion</h1>
      <p>This certifies that <strong>John Doe</strong> has completed the course.</p>
      <div class="signature">Authorized Signature</div>
  </div>

  ### PDF Manipulation Examples

  #### Merge PDFs
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "mergePdfs",
    "pdf_urls": "https://example.com/a.pdf, https://example.com/b.pdf",
    "merge_output": "url"
  }
  ```

  #### Split PDF (extract pages)
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "splitPdf",
    "split_url": "https://example.com/document.pdf",
    "split_mode": "pages",
    "pages": "1-3",
    "split_output": "url"
  }
  ```

  #### Compress PDF
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "compressPdf",
    "compress_url": "https://example.com/document.pdf",
    "compression": "high",
    "compress_output": "file",
    "compress_output_name": "compressed.pdf"
  }
  ```

  ### PDF Security Examples

  #### Lock PDF
  ```json
  {
    "resource": "pdfSecurity",
    "operation": "lockPdf",
    "lock_url": "https://example.com/document.pdf",
    "lock_password": "your-password",
    "lock_output": "file",
    "lock_output_name": "locked.pdf"
  }
  ```

  #### Unlock PDF
  ```json
  {
    "resource": "pdfSecurity",
    "operation": "unlockPdf",
    "unlock_url": "https://example.com/locked.pdf",
    "unlock_password": "your-password",
    "unlock_output": "file",
    "unlock_output_name": "unlocked.pdf"
  }
  ```

  ### PDF Parsing Example

  #### Parse PDF to JSON
  ```json
  {
    "resource": "pdfParsing",
    "operation": "parsePdf",
    "parse_url": "https://example.com/document.pdf",
    "parse_mode": "full",
    "parse_pages": "all"
  }
  ```
  ```

  ## Use Cases

  ### Business Applications
  - **Invoice Generation**: Automatically generate invoices from order data
  - **Report Creation**: Convert analytics data into professional PDF reports
  - **Contract Generation**: Create contracts from templates with dynamic data
  - **Certificate Issuance**: Generate certificates for course completions
  - **Receipt Creation**: Convert transaction data into PDF receipts

  ### Content Management
  - **Document Archival**: Convert web pages to PDF for archival purposes
  - **Newsletter PDFs**: Transform HTML newsletters into PDF format
  - **eBook Creation**: Generate PDF books from HTML content
  - **Documentation**: Convert online docs to downloadable PDFs

  ### Marketing & Sales
  - **Proposal Generation**: Create branded proposals from CRM data
  - **Brochure Creation**: Generate marketing materials dynamically
  - **Price Lists**: Convert product catalogs to PDF format
  - **Quotation PDFs**: Transform quotes into professional PDFs

  ## Workflow Examples

  ### Example 1: E-commerce Invoice
  ```json
  {
    "nodes": [
      {
        "name": "Order Webhook",
        "type": "n8n-nodes-base.webhook"
      },
      {
        "name": "Generate Invoice HTML",
        "type": "n8n-nodes-base.function"
      },
      {
        "name": "Convert to PDF",
        "type": "n8n-nodes-htmlcsstopdf.htmlcsstopdf"
      },
      {
        "name": "Email PDF",
        "type": "n8n-nodes-base.emailSend"
      }
    ]
  }
  ```

  ### Example 2: Scheduled Reports
  ```json
  {
    "nodes": [
      {
        "name": "Schedule Trigger",
        "type": "n8n-nodes-base.cron"
      },
      {
        "name": "Fetch Analytics Data",
        "type": "n8n-nodes-base.httpRequest"
      },
      {
        "name": "Build Report HTML",
        "type": "n8n-nodes-base.function"
      },
      {
        "name": "Generate PDF Report",
        "type": "n8n-nodes-htmlcsstopdf.htmlcsstopdf"
      },
      {
        "name": "Save to Google Drive",
        "type": "n8n-nodes-base.googleDrive"
      }
    ]
  }
  ```

  ## Output

  The node returns:
  - **URL output**: A direct link (or URL(s), depending on operation)
  - **File output**: Binary PDF file data in n8n (usable by "Write Binary File", email attachments, etc.)
  - **Base64 output** (where available): Base64-encoded result in the JSON response

  ## Error Handling

  The node provides detailed error messages for common issues:

  - **Invalid API Key**: Check your PDFMunk credentials
  - **HTML Parse Error**: Validate your HTML syntax
  - **CSS Error**: Check your CSS for syntax errors
  - **Rate Limit**: Upgrade your PDFMunk plan or wait for reset
  - **Network Error**: Check your internet connection
  - **Timeout Error**: Increase the timeout setting for large PDFs (default: 300 seconds)

  ## FAQ

  **Q: Is there a free tier?**  
  A: PDFMunk may offer trial/free usage depending on current plans. Check the PDFMunk dashboard/pricing for the latest limits.

  **Q: What HTML features are supported?**  
  A: Most modern HTML5 and CSS3 features are supported, including flexbox, grid, and media queries.

  **Q: Can I use external images?**  
  A: Yes, images accessible via URL will be included in the PDF.

  **Q: What's the maximum file size?**  
  A: Some operations in this node expect PDFs up to 10MB (as indicated in the node parameters). Check PDFMunk documentation for current limits and plan-specific constraints.

  **Q: How do I generate large PDFs (100+ pages)?**  
  A: Increase the timeout setting in the node configuration. For large PDFs, set timeout to 600-900 seconds (10-15 minutes).

  **Q: What should I do if I get a gateway timeout error?**  
  A: Increase the timeout parameter in the node settings. The default is 300 seconds (5 minutes), but large PDFs may need 600-900 seconds.

  ## Compatibility

  - **n8n version**: 0.187.0+
  - **Node.js**: 18.0.0+
  - **Supported formats**: HTML, CSS, PDF

  ## Resources

  ### PDF Creation

  - [PDFMunk](https://pdfmunk.com/)
  - [PDFMunk API Documentation](https://pdfmunk.com/api-docs)
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [n8n workflow examples](https://n8n.io/workflows)

  ## Support

  For questions or support, please contact us at: **support@pdfmunk.com**

  You can also join the [n8n community forum](https://community.n8n.io/) for general n8n-related discussions.

  ## Contributing

  Contributions are welcome! Please read our contributing guidelines and submit pull requests for any improvements.

  ## License

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

  ## Changelog

  ### v2.1.1
  - Added configurable timeout parameter for large PDF generation
  - Improved error handling for gateway timeouts
  - Updated documentation with timeout troubleshooting

  ### v2.0.2
  - Improved error handling
  - Performance optimizations

  ### v2.0.1
  - Bug fixes and stability improvements

  ### v2.0.0
  - Complete rewrite with new PDFMunk API
  - Enhanced CSS support
  - Better error messages

  ---

  Built with ❤️ for the n8n community

ai_documentation_summary:
  {"purpose":"Convert HTML or web pages into PDFs and perform PDF manipulation, security, and parsing operations via the PDFMunk API.","capabilities":["HTML to PDF: render custom HTML with optional CSS into a PDF (supports templating via dynamic params)","URL to PDF: capture full or partial web pages as PDFs with wait/delay and viewport control","Set output: return either a hosted URL, a binary file, or base64 output and specify output filename","Configure rendering: viewport width/height and timeout control for long/slow renders","Merge PDFs: combine 2–15 PDF URLs into one document","Split PDF: extract page ranges, split each page into separate PDFs, or split into N chunks","Compress PDF: reduce file size with selectable compression levels (low/medium/high/max)","Lock PDF: add password protection (supports providing input password for already-encrypted PDFs)","Unlock PDF: remove password protection","Parse PDF to JSON: extract text/layout/tables/full extraction with page selection"],"authentication":"API key required (PDFMunk API; add credential as 'HtmlCssToPdf API' in n8n credentials)","commonUseCases":["Generate PDFs from HTML templates (invoices, reports, letters) with dynamic data","Capture website pages or full-page screenshots to PDF for archiving or review","Merge multiple PDFs into a single document for distribution","Split or extract pages from PDFs for processing or reorganization","Compress PDFs to meet size limits for email/storage"],"limitations":["Requires a PDFMunk account and API key; usage subject to plan limits and pricing","Merge operation accepts a minimum of 2 and maximum of 15 PDF URLs","Certain PDF operations (compress, lock, unlock) specify a max input size of 10 MB for the PDF URL","Default timeout is 300 seconds (configurable), large/complex renders may require increasing it","Output formats are limited to url, file (binary), or base64"],"relatedNodes":[]}


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-02-19 14:41:52
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-02-19T14:41:52.808Z
ai_summary_generated_at: 2026-02-19 16:43:57
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":"Populate .docx/.xlsx templates stored in Documentero with JSON data to generate Word, Excel, or PDF documents, and optionally have Documentero send the generated document by email.","capabilities":["Generate Document — populate a .docx or .xlsx template and return the generated file","Generate and Email Document — populate a template and have Documentero send the generated file as an email attachment","Accept JSON payload matching the template's API/JSON structure to fill dynamic fields, tables, formulas, conditional sections, images, HTML, Markdown, and QR codes","Return the generated document as binary (binary.data) with accompanying JSON metadata","Select template from account and use template-defined output format and default filename"],"authentication":"API key required (Documentero API key entered in the node's n8n credentials)","commonUseCases":["Generate invoices, contracts, reports, or other documents from templates and save them to cloud storage (e.g., OneDrive, Google Drive)","Automate sending generated documents via email (using Documentero's email send or downstream Outlook/email nodes)","Create personalized documents by passing customer or transaction data as JSON into templates","Incorporate document generation into broader workflows (attach to CRM records, archive to storage, notify users)"],"limitations":["Requires a Documentero account and pre-uploaded .docx/.xlsx templates (node does not create templates)","Templates must be .docx or .xlsx; outputs are limited to .docx, .xlsx, or .pdf based on template settings","Node provides two operations only (Generate Document and Generate and Email Document); no template management or advanced API surface exposed in-node","Authentication uses a single API key (no OAuth flow)","README does not document rate limits, large-file handling, or streaming behavior"],"relatedNodes":["OneDrive","Google Drive","Outlook"]}


node_type: n8n-nodes-jaasai.jaasai
package_name: n8n-nodes-jaasai
display_name: JaaS AI
description: Evaluate AI Agents with JaaS
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: hljaasai
author_github_url: https://github.com/jaas-a1/
npm_package_name: n8n-nodes-jaasai
npm_version: 0.3.2
community_fetched_at: 2026-02-19T14:41:52.809Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "evaluate",
      "options": [
        {
          "name": "Evaluate",
          "value": "evaluate",
          "description": "Evaluate AI agents and outputs"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "evaluate",
      "options": [
        {
          "name": "Evaluate",
          "value": "evaluate",
          "action": "Evaluate AI agent responses",
          "description": "Evaluate AI agent responses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "evaluate"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Evaluate",
      "value": "evaluate",
      "action": "Evaluate AI agent responses",
      "description": "Evaluate AI agent responses"
    }
  ]

npm_readme:
  ## JAAS AI 

  JaaS AI is a turnkey evaluationAI service that scores, analyzes, validates and monitors any AI-generated text in seconds. Plug JaaS AI into your workflow to ensure accuracy, consistency, and quality—without needing extra reviewers. The system evaluates responses based on customizable criteria and provides detailed scoring and reasoning.
  JaaS AI has been proven to detect Hallucination in AI Agents and chat bots.

  *Put your workflows and chat bots under the microscope and understand when they start to derail, hallucinate or degrade their accuracy.*

  ### Requirements

  To configure you n8n node, you need a JaaS API key. For that you have to register for the service at jaas-ai.net.You will also need a LLM Provider API key.


  ### Understanding the evaluation process

  The evaluation process is very simple. It compares an *answer* to a specific *question* to a *ground truth answer* in a *context* given. A *score* and *reasoning* is provided based on a *criteria* or criterion given to evaluate.

  #### Inputs to the evaluation
  - . **question:** The question that you want to evaluate. Example: *Which is capital of France?*

  - . **answer:** This is the answer that is going to be evaluated. Example: *Paris*.

  - . **ground_truth_answer**: This is the source of truth. It is used as rubric to for the evaluation process to score the criterion. Example: *The capital of France is Paris.*

  - . **context:** Additional information that is used to evaluate. The context becomes more relevant in non-direct comparison criterion. As an example in cases of **hallucination:** The context is key to understand if the evaluated answer related to the conversation that has been happening. Example: *Paris is the capital and largest city of France, with an estimated population of 2,048,472 in January 2025 in an area of more than 105 km2 (41 sq mi).*

  - . **criteria:** The criteria or criterion is the base of the scoring process. The evaluation tool scores the *answer* based on the criteria given. Example: *Accuracy, Hallucination.*

  - . **type:** This is the type of evaluation. There are 4 types: *Simple (S), Conversational Simple (D),
    -  The main differences are: *conversational or non-conversations*: the *conversational* types detect chit-chat conversations that are not evaluated. This is key when evaluating or monitoring *chat bots* or transcripts of *voice conversations*.  

  - . **cohort:** The *cohort* helps in the monitoring and analysis process. It does not intervene in the evaluation itself, while indicates a grouping of evaluation. As an example, if the tool is evaluating conversations from a chat bot, each conversation can have its own cohort for better tracking and monitoring.


  #### Example of a Information for an evaluation
  ```json

  From Input to the Node:	
    "question": "What is the capital of France?",
    "answer": "Paris.",
    "ground_truth_answer": "Paris is the capital of France.",
    "context": "",

  From Configuration:
  	"evaluation_criteria": ["Accuracy", "Hallucination"],
    "type": "S",
    "cohort":"ChatBot1"

  ```
  After the evaluation is completed almost in real time, the system returns the score for each of the metrics and the reasoning behind.


  ### Using the n8n JaaS Module

  ***Configuration:*** The module requires the corresponding configuration:
  	- JaaS API Key: linked to you account in jaas-ai.com
  	- Criteria: you can enter up to 3 criteria for each node. The criteria should be available in teh Criteria Database in jaas-ai.com.
  	- Type of Evaluation: S - Simple, or C- Conversational
  	- Cohort: to groupe the evaluations in groups for better tracking
    
  ***Input:*** You should provide the no de the fields needed for the evaluation:
  	- question: question to answer
  	- answer: answer that has to be evaluated
  	- ground_truth_answer: source of truth for the answer to be evaluated
  	- context: additional information to help the evaluation process
  The inputs should be in Json Format.

  Obtain the results and monitor what is going on with your tools!

  Look for more information and examples in our website!!

  support: support@jaas-ai.com
  website: jaas-ai.net

ai_documentation_summary:
  {"purpose":"Evaluate, score, analyze, validate and monitor AI-generated text (including detecting hallucinations) by comparing answers to ground-truths using customizable criteria and returning scores with reasoning.","capabilities":["Evaluate an answer against a question and a ground-truth answer","Score results across up to 3 customizable criteria (e.g., Accuracy, Hallucination)","Provide reasoning/explanations for each score","Support conversational-aware evaluations to ignore chit-chat when appropriate","Group evaluations by cohort for monitoring and analysis","Accept inputs in JSON (question, answer, ground_truth_answer, context) and return near-real-time results"],"authentication":"API key required: JaaS API key (must register at jaas-ai.net). Also requires an LLM provider API key (external LLM service) as a dependency.","commonUseCases":["Automated QA of model / agent responses against a ground truth","Detecting and monitoring hallucinations in chatbots and AI agents","Ongoing quality monitoring of conversational agents grouped by cohort","Gating or validating outputs in workflows before downstream processing","Collecting per-criterion scores and reasoning for reporting or retraining"],"limitations":["Node accepts only the specified JSON inputs (question, answer, ground_truth_answer, context) — no native multimodal/file inputs mentioned","Configuration limits criteria to up to 3 per node and criteria must exist in the JaaS Criteria Database","Depends on an external LLM provider API key in addition to the JaaS API key","Evaluation types documentation is partially unclear/truncated in README (only Simple and Conversational explicitly described for the node)","No OAuth or other auth methods documented (only API keys)"],"relatedNodes":[]}


node_type: n8n-nodes-tubelab.tubeLab
package_name: n8n-nodes-tubelab
display_name: TubeLab
description: Get trending YouTube channels and outlier videos data for any niche.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: antoniojps
author_github_url: https://github.com/antoniojps/
npm_package_name: n8n-nodes-tubelab
npm_version: 0.4.7
community_fetched_at: 2026-02-19T14:41:52.810Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Channel",
          "value": "channel"
        },
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "Scan",
          "value": "scan"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchOutliers",
      "options": [
        {
          "name": "Search Channels",
          "value": "searchChannels",
          "action": "Search for channels",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/channels",
              "method": "GET"
            }
          },
          "description": "Search for channels directly from the YouTube Niche Finder with AI enhanced data and 30+ filters. Updated in real-time, 24/7."
        },
        {
          "name": "Search Similar Channels",
          "value": "searchChannelsRelated",
          "action": "Search for similar channels",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/channels/related",
              "method": "GET"
            }
          },
          "description": "Search for YouTube channels with related content to another channel"
        },
        {
          "name": "Search Outliers",
          "value": "searchOutliers",
          "action": "Search for outliers",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/outliers",
              "method": "GET"
            }
          },
          "description": "Search for videos directly from the TubeLab Outliers library with AI enhanced data and 30+ filters. Updated in real-time, 24/7."
        },
        {
          "name": "Search Similar Outliers",
          "value": "searchOutliersRelated",
          "action": "Search for similar outliers",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/outliers/related",
              "method": "GET"
            }
          },
          "description": "Search for YouTube outliers with related content to another outlier(s)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "postScan",
      "options": [
        {
          "name": "Start a Scan",
          "value": "postScan",
          "action": "Start a scan",
          "routing": {
            "request": {
              "url": "/v1/scan",
              "method": "POST"
            }
          },
          "description": "Start a TubeLab scan to search for fresh outliers and channels on any given topic"
        },
        {
          "name": "Get Scan",
          "value": "getScan",
          "action": "Get a scan",
          "routing": {
            "request": {
              "url": "=/v1/scan/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Get the status of a scan and used inputs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scan"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getVideoTranscript",
      "options": [
        {
          "name": "Details",
          "value": "getVideoDetails",
          "action": "Get details",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "items"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/video/{{$parameter[\"videoId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetch the details of a video"
        },
        {
          "name": "Transcript",
          "value": "getVideoTranscript",
          "action": "Get transcript",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "items"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/video/transcript/{{$parameter[\"videoId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetches the transcript of a video including timestamps"
        },
        {
          "name": "Comments",
          "value": "getVideoComments",
          "action": "Get comments",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "items"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/video/comments/{{$parameter[\"videoId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetch the first 100 comments of a video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getChannelVideos",
      "options": [
        {
          "name": "Get Videos",
          "value": "getChannelVideos",
          "action": "Get videos",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "item"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/channel/videos/{{$parameter[\"channelId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetch the videos of a channel and relevant metrics"
        },
        {
          "name": "Get Shorts",
          "value": "getChannelShorts",
          "action": "Get shorts",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "item"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/channel/shorts/{{$parameter[\"channelId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetches the shorts of a channel and relevant metrics"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "channel"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search Channels",
      "value": "searchChannels",
      "action": "Search for channels",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/channels",
          "method": "GET"
        }
      },
      "description": "Search for channels directly from the YouTube Niche Finder with AI enhanced data and 30+ filters. Updated in real-time, 24/7."
    },
    {
      "name": "Search Similar Channels",
      "value": "searchChannelsRelated",
      "action": "Search for similar channels",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/channels/related",
          "method": "GET"
        }
      },
      "description": "Search for YouTube channels with related content to another channel"
    },
    {
      "name": "Search Outliers",
      "value": "searchOutliers",
      "action": "Search for outliers",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/outliers",
          "method": "GET"
        }
      },
      "description": "Search for videos directly from the TubeLab Outliers library with AI enhanced data and 30+ filters. Updated in real-time, 24/7."
    },
    {
      "name": "Search Similar Outliers",
      "value": "searchOutliersRelated",
      "action": "Search for similar outliers",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/outliers/related",
          "method": "GET"
        }
      },
      "description": "Search for YouTube outliers with related content to another outlier(s)"
    },
    {
      "name": "Start a Scan",
      "value": "postScan",
      "action": "Start a scan",
      "routing": {
        "request": {
          "url": "/v1/scan",
          "method": "POST"
        }
      },
      "description": "Start a TubeLab scan to search for fresh outliers and channels on any given topic"
    },
    {
      "name": "Get Scan",
      "value": "getScan",
      "action": "Get a scan",
      "routing": {
        "request": {
          "url": "=/v1/scan/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Get the status of a scan and used inputs"
    },
    {
      "name": "Details",
      "value": "getVideoDetails",
      "action": "Get details",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "items"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/video/{{$parameter[\"videoId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetch the details of a video"
    },
    {
      "name": "Transcript",
      "value": "getVideoTranscript",
      "action": "Get transcript",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "items"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/video/transcript/{{$parameter[\"videoId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetches the transcript of a video including timestamps"
    },
    {
      "name": "Comments",
      "value": "getVideoComments",
      "action": "Get comments",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "items"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/video/comments/{{$parameter[\"videoId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetch the first 100 comments of a video"
    },
    {
      "name": "Get Videos",
      "value": "getChannelVideos",
      "action": "Get videos",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "item"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/channel/videos/{{$parameter[\"channelId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetch the videos of a channel and relevant metrics"
    },
    {
      "name": "Get Shorts",
      "value": "getChannelShorts",
      "action": "Get shorts",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "item"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/channel/shorts/{{$parameter[\"channelId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetches the shorts of a channel and relevant metrics"
    }
  ]

npm_readme:
  # n8n-nodes-tubelab

  This is an n8n community node. It lets you get enhanced YouTube data - including 400K+ trending channels, 4M+ outliers and scan niches in real-time with [TubeLab](https://tubelab.ai).

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

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

  ## Installation

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

  1. Go to **Settings > Community Nodes**.
  2. Select **Install**.
  3. Enter `n8n-nodes-tubelab` in **Enter npm package name**.
  4. Agree to the risks of using community nodes: select **I understand the risks of installing unverified code from a public source.**
  5. Select **Install**.

  After installing the node, you can use it like any other node. n8n displays the node in search results in the **Nodes** panel.

  ## Operations

  It supports these TubeLab operations:

  - **Search Outliers**: Search for videos directly from the TubeLab Outliers library with AI enhanced data and 30+ filters. Updated in real-time, 24/7.
  - **Search Similar Outliers**: Search for YouTube outliers with related content to another outlier(s)
  - **Search Channels**: Search for channels directly from the YouTube Niche Finder with AI enhanced data and 30+ filters. Updated in real-time, 24/7.
  - **Search Similar Channels**: Search for YouTube channels with related content to another channel
  - **Get Channel Videos**: Fetch the videos of a channel and relevant metrics (max 100 videos)
  - **Get Channel Shorts**: Fetch the shorts of a channel and relevant metrics (max 100 shorts)
  - **Get Video Details**: Fetch the details of a video
  - **Get Video Transcript**: Fetch the transcript & timestamps of a video
  - **Get Video Comments**: Fetch the first 100 comments of a video
  - **Start a Scan**: Start a TubeLab scan to search for fresh outliers and channels on any given topic
  - **Get a Scan**: Get the status of a scan and used inputs

  ## Credentials

  To use this node, you will need to authenticate with [TubeLab's API](https://tubelab.net/docs/api).

  1. Sign up for a [TubeLab](https://tubelab.net/) account
  2. Go to the [Developers Dashboard](https://tubelab.net/developers) and create an API key
  3. Create new credential in n8n
     - Use TubeLab's node
     - Under Credential to connect with, click Create New Credential
     - Paste API Key

  ## Compatibility

  This node was developed & tested with the `1.112.5` version.

  ## Usage

  Please refer to [TubeLab's Automation documentation](https://tubelab.net/docs/api/automation) with example templates on how to use this node.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [TubeLab's API Documentation](https://tubelab.net/docs/api)
  - [Sign up for a TubeLab API key](https://tubelab.net)
  - Contact support if you have any issues: [https://tubelab.net/support](https://tubelab.net/support)

  ## Version history

  - 0.4.7 - Remove deprecated `requestWithAuthentication` in favor of `httpRequestWithAuthentication`
  - 0.4.5 - Fix `/channel/videos` endpoint
  - 0.4.3 - Fix query params as expressions compiling
  - 0.4.0 - Add operations `Get Channel Videos`, `Get Channel Shorts`, `Get Video Details`, `Get Video Transcript`, `Get Video Comments`
  - 0.3.3 - Fix Start Scan `findBy` input
  - 0.3.2 - Add "publishedAtFrom" to Outliers Filters
  - 0.3.0 - Fix Webhooks Trigger
  - 0.2.0 - Fix API base URL
  - 0.1.1 - Fix package.json metadata details
  - 0.1.0 - Initial release

  ## Contribution Guidelines

  Refer to the [official documentation](https://docs.n8n.io/integrations/creating-nodes/build/n8n-node/#new).

  Requirements:

  - Node JS
  - Install `n8n-node`: `npm install --global @n8n/node-cli`
  - Run `npm run dev`

ai_documentation_summary:
  {"purpose":"Provide access to TubeLab's enhanced YouTube data so workflows can search trending channels and outlier videos, fetch channel/video details, transcripts and comments, and run real-time niche scans.","capabilities":["Search Outliers (query TubeLab outliers library with 30+ filters, real-time)","Search Similar Outliers (find outliers related to given outlier(s))","Search Channels (YouTube Niche Finder with 30+ filters, real-time)","Search Similar Channels (find channels related to a given channel)","Get Channel Videos (fetch up to 100 videos of a channel with metrics)","Get Channel Shorts (fetch up to 100 shorts of a channel with metrics)","Get Video Details (fetch detailed video metadata)","Get Video Transcript (fetch transcript with timestamps)","Get Video Comments (fetch first 100 comments)","Start a Scan (initiate TubeLab scan for fresh outliers/channels on a topic)"],"authentication":"API key required (TubeLab API key via TubeLab Developers Dashboard; create credential in n8n and paste API key)","commonUseCases":["Automated discovery of trending YouTube channels in a niche for content research","Finding viral or outlier videos and similar content for competitive analysis","Scheduled scans to surface fresh opportunities and monitor niche activity in real time","Enriching workflows with video transcripts and metadata for NLP or content classification","Collecting recent comments and engagement metrics for sentiment or community analysis"],"limitations":["Get Channel Videos and Get Channel Shorts return a maximum of 100 items each","Get Video Comments returns only the first 100 comments","Requires a TubeLab account and API key (paid access may be required depending on TubeLab plan)","Community node — installing unverified community code carries inherent risks","Compatibility was tested with n8n version 1.112.5; behavior on other versions is not guaranteed"],"relatedNodes":[]}


node_type: n8n-nodes-jetapi.jetapi
package_name: n8n-nodes-jetapi
display_name: JetAPI
description: Integrate with JetAPI for Telegram and WhatsApp messaging
category: Community
development_style: declarative
version: 6
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: jetapi
author_github_url: https://github.com/jetapi/
npm_package_name: n8n-nodes-jetapi
npm_version: 1.3.0
community_fetched_at: 2026-02-19T14:41:52.810Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "sendText",
      "options": [
        {
          "name": "Send Text Message",
          "value": "sendText",
          "action": "Send a text message"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Text Message",
      "value": "sendText",
      "action": "Send a text message"
    }
  ]

npm_readme:
  # n8n-nodes-jetapi
  This is an n8n community node for [JetAPI](https://jetapi.io/login?referral=n8n&subs_slug=jtp_individ&subs_type=temp) - send messages via Telegram and WhatsApp.

  ## Installation
  ```bash
  npm install n8n-nodes-jetapi

  ## 🎉 Get 10 Days Free Trial!

  [Sign up for JetAPI](https://jetapi.io/login?referral=n8n&subs_slug=jtp_individ&subs_type=temp) and get **10 days free trial** to test all messaging features.

  ## Usage

  Get your API credentials from [JetAPI Dashboard](https://jetapi.io/login?referral=n8n&subs_slug=jtp_individ&subs_type=temp) (10 days free!)
  Create JetAPI credentials in n8n with your Bearer Token
  Add JetAPI node to your workflow
  Configure the message parameters

  ## Features

  WhatsApp messaging - Send messages via phone number
  Telegram messaging - Send via phone number, username, user ID or group ID

  License
  MIT

ai_documentation_summary:
  {"purpose":"Connect n8n workflows to JetAPI to send messages via Telegram and WhatsApp, enabling automated messaging from n8n using JetAPI as the delivery provider.","capabilities":["Send WhatsApp messages to a phone number","Send Telegram messages to a phone number, username, user ID, or group ID","Configure message parameters (message content and recipient settings) within the node","Use JetAPI-provided credentials (Bearer token) to authorize requests"],"authentication":"API key required (Bearer token)","commonUseCases":["Send transactional alerts or notifications to users via WhatsApp or Telegram","Broadcast messages or marketing updates to lists of phone numbers or Telegram groups","Integrate application events with user messaging (e.g., order updates, system alerts)","Connect chatbots or automated workflows to Telegram/WhatsApp for outgoing messages"],"limitations":[],"relatedNodes":[]}


node_type: @xano/n8n-nodes-xano.xano
package_name: @xano/n8n-nodes-xano
display_name: Xano
description: Interact with Xano API to manage workspaces, tables, and content.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: xanosean
author_github_url: https://github.com/xano-inc/n8n-nodes-xano.git
npm_package_name: @xano/n8n-nodes-xano
npm_version: 1.0.6
community_fetched_at: 2026-02-19T14:41:52.811Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "table",
      "options": [
        {
          "name": "Table",
          "value": "table"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTableContent",
      "options": [
        {
          "name": "Create Row",
          "value": "createRow",
          "action": "Create a row",
          "description": "Add a new row to a table"
        },
        {
          "name": "Create Row Bulk",
          "value": "bulkCreateContent",
          "action": "Create bulk rows",
          "description": "Bulk create rows in a table"
        },
        {
          "name": "Delete a Row",
          "value": "deleteSingleContent",
          "action": "Delete a row",
          "description": "Delete a single row from a table"
        },
        {
          "name": "Get a Row",
          "value": "getSingleContent",
          "action": "Get a row",
          "description": "Get a single row from a table"
        },
        {
          "name": "Get Many Rows",
          "value": "getTableContent",
          "action": "Get many rows",
          "description": "Get all rows from a table"
        },
        {
          "name": "Search Row",
          "value": "searchRow",
          "action": "Search row",
          "description": "Search for a row in a table"
        },
        {
          "name": "Update Row by ID",
          "value": "updateRow",
          "action": "Update row by ID",
          "description": "Update a new row to a table"
        },
        {
          "name": "Update Rows in Bulk by ID",
          "value": "bulkUpdateContent",
          "action": "Update rows in bulk by ID",
          "description": "Bulk Update rows to a table"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "table"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Row",
      "value": "createRow",
      "action": "Create a row",
      "description": "Add a new row to a table"
    },
    {
      "name": "Create Row Bulk",
      "value": "bulkCreateContent",
      "action": "Create bulk rows",
      "description": "Bulk create rows in a table"
    },
    {
      "name": "Delete a Row",
      "value": "deleteSingleContent",
      "action": "Delete a row",
      "description": "Delete a single row from a table"
    },
    {
      "name": "Get a Row",
      "value": "getSingleContent",
      "action": "Get a row",
      "description": "Get a single row from a table"
    },
    {
      "name": "Get Many Rows",
      "value": "getTableContent",
      "action": "Get many rows",
      "description": "Get all rows from a table"
    },
    {
      "name": "Search Row",
      "value": "searchRow",
      "action": "Search row",
      "description": "Search for a row in a table"
    },
    {
      "name": "Update Row by ID",
      "value": "updateRow",
      "action": "Update row by ID",
      "description": "Update a new row to a table"
    },
    {
      "name": "Update Rows in Bulk by ID",
      "value": "bulkUpdateContent",
      "action": "Update rows in bulk by ID",
      "description": "Bulk Update rows to a table"
    }
  ]

npm_readme:
  # 📘 n8n-nodes-xano — Custom Node Documentation

  This is an n8n community node. It lets you use [Xano](https://www.xano.com/) in your n8n workflows, enabling workflow automation through custom API actions like managing rows, fetching table schemas, 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) <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage) <!-- delete if not using this section -->  
  [Resources](#resources)  
  [Version history](#version-history) <!-- delete if not using this section -->

  ---

  ## Installation

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

  ## 🔧 Operations

  | Action                   | Value (operation)     | Description                              |
  | ------------------------ | --------------------- | ---------------------------------------- |
  | ✅ Create Row            | `createRow`           | Create a new row in a selected table     |
  | ✅ Update Row            | `updateRow`           | Update a row with specific field values  |
  | ✅ Delete Single Content | `deleteSingleContent` | Delete a single row by ID                |
  | ✅ Get a Row             | `getSingleContent`    | Fetch a row by ID                        |
  | ✅ Get Many Rows         | `getTableContent`     | Fetch multiple rows with pagination      |
  | ✅ Create Bulk Rows      | `bulkCreateContent`   | Insert multiple rows                     |
  | ✅ Update Bulk Rows      | `bulkUpdateContent`   | Bulk update multiple records             |
  | ✅ Search Rows           | `searchRow`           | Search using filter queries (JSON input) |

  ## Credentials

  To use this node in your workflows, you’ll need to authenticate your Xano account using the **Metadata API Access Token**.

  ### 🔑 Step 1: Get Your Xano Metadata API Access Token

  1. **Log in to your Xano account**
     Visit: [https://xano.com](https://xano.com)

  2. **Access your instance**
     In the lower-left corner of the dashboard, click **Instances**.

  3. **Open instance settings**
     Click the ⚙️ icon next to your instance name.

  4. **Select Metadata API**
     From the panel that opens, select **Metadata API**.

  5. **Generate an Access Token**
     Click on **➕ Create Token** and configure the following:
     - **Name**: Something descriptive like `n8n integration token`
     - **Expiry**: Set an expiry (e.g. 7 days, or "Never" if preferred)
     - **Scopes**: Select the necessary access:
       - ✅ `Database` (CRUD)

       - ✅ `Content`, `API Groups`, or other required scopes for your use case

     > ⚠️ Make sure to select `Read` and `Update` at a minimum for basic operations.

  6. **Copy the generated access token**
     This token will be shown only once. Store it securely.

  ### 🔌 Step 2: Add Credentials in n8n

  1. Open your n8n instance
  2. Go to **Credentials** and click **"New"**
  3. Search for **Xano API** (your node’s credential type)
  4. In the **Access Token** field, paste the token from Xano

  #### ✅ Successful connection will show:

  ![Connection Success](./assets/success.png)

  #### ❌ If token is invalid or expired:

  ![Connection Failed](./assets/error.png)

  > If the token is invalid, regenerate one from Xano and repeat the above steps.

  ### ✅ Final Step

  Once the connection is verified, you’re ready to start using Xano in your workflows via this custom node!

  ## Compatibility

  Tested on n8n v1.100.0 and above.

  ## Usage

  Note about the **Search Rows** operation. It uses a simplified version of the [external filtering search](https://docs.xano.com/xano-features/metadata-api/search#search) syntax.

  Here's a quick example where I'm searching for the record where id = 2.

  `[{"id|=":"2"}]`

  Simply add the JSON above to the Search field.

  **Pro tip**: Open Dev Tools in your browser then use the Xano UI filter in your table view to see what syntax gets generated by the /content API request, then copy the value from the search field in the payload and use that.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Xano Documentation](https://docs.xano.com/)

  ## Version history

  ### 1.0.1

  - Initial release

  ### 1.0.2

  - Minor updates

  ### 1.0.3

  - Minor updates

  ### 1.0.4

  - Minor updates

  ### 1.0.5

  - Minor updates

ai_documentation_summary:
  {"purpose":"Provide n8n workflows with programmatic access to Xano via the Metadata API, enabling CRUD, bulk, and search operations on tables and their content.","capabilities":["createRow — create a new row in a selected table","updateRow — update a specific row's fields","deleteSingleContent — delete a single row by ID","getSingleContent — fetch a single row by ID","getTableContent — fetch multiple rows with pagination","bulkCreateContent — insert multiple rows in bulk","bulkUpdateContent — bulk update multiple records","searchRow — search rows using JSON filter queries (simplified external filtering)","fetch table schemas / manage tables and workspace-level content (as exposed via Xano Metadata API)"],"authentication":"Metadata API Access Token (API key). Add the Xano Metadata API access token in the node credentials; token must include appropriate scopes (e.g., Database CRUD and Content/API Groups as needed).","commonUseCases":["Sync records between Xano and other services (create/update/delete rows)","Bulk import or export data to/from Xano tables","Automate record updates and scheduled maintenance tasks","Search and filter table content using JSON-based queries","Pipeline integrations that require fetching individual records or paginated lists"],"limitations":["Search uses a simplified version of Xano's external filtering syntax — queries must be provided as JSON in the expected format (example: [{\"id|=\":\"2\"}])","Authentication is limited to Xano Metadata API access tokens; no alternate auth methods documented in the README","Tokens are shown only once when created and can expire — ensure you store tokens and select appropriate expiry and scopes","Compatibility tested on n8n v1.100.0 and above; behavior on older n8n versions is not guaranteed"],"relatedNodes":[]}


node_type: n8n-nodes-omnara.omnara
package_name: n8n-nodes-omnara
display_name: Omnara
description: Send messages to users via Omnara - a web and mobile platform for human-AI communication
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: ksarangmath
author_github_url: https://github.com/omnara-ai/omnara.git
npm_package_name: n8n-nodes-omnara
npm_version: 0.1.7
community_fetched_at: 2026-02-19T14:41:52.811Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message",
          "description": "Send messages to Omnara agents"
        },
        {
          "name": "Session",
          "value": "session",
          "description": "Manage agent sessions"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send message",
          "description": "Send a non-blocking message to the user (for status updates, progress reports, or sharing your thought process). Use this when you want to inform the user but do not need their response to continue"
        },
        {
          "name": "Send and Wait",
          "value": "sendAndWait",
          "action": "Send message and wait for response",
          "description": "Send a message and wait for the user's response (for questions, approvals, or conversations). Use this when you need the user's input to proceed with your task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "end",
      "options": [
        {
          "name": "End",
          "value": "end",
          "action": "End agent session",
          "description": "End an agent session"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "session"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send",
      "value": "send",
      "action": "Send message",
      "description": "Send a non-blocking message to the user (for status updates, progress reports, or sharing your thought process). Use this when you want to inform the user but do not need their response to continue"
    },
    {
      "name": "Send and Wait",
      "value": "sendAndWait",
      "action": "Send message and wait for response",
      "description": "Send a message and wait for the user's response (for questions, approvals, or conversations). Use this when you need the user's input to proceed with your task"
    },
    {
      "name": "End",
      "value": "end",
      "action": "End agent session",
      "description": "End an agent session"
    }
  ]

npm_readme:
  # n8n-nodes-omnara

  The best human-in-the-loop node for n8n, built for seamless human-agent interaction. Perfect for approval workflows and real-time agent conversations.

  [Omnara](https://omnara.com) lets you monitor and guide AI agents without the noise. View your agent's full thought process through our web and mobile apps with smart notifications - only get alerted when your input is needed. Need urgent responses? Enable email and SMS notifications with zero setup. Stay in control while automation runs.

  ## Installation

  ### Community Node (Recommended)

  ```bash
  npm install n8n-nodes-omnara
  ```

  Or in n8n, go to **Settings** > **Community Nodes** and search for `n8n-nodes-omnara`.

  ### Manual Installation

  1. Clone or download this repository
  2. In the repository folder, run:
     ```bash
     npm install
     npm run build
     ```
  3. Copy the `dist` folder to your n8n custom nodes folder
  4. Restart n8n

  ### Development Installation

  For development and testing:

  ```bash
  # Install dependencies
  npm install

  # Build the node
  npm run build

  # For development with auto-rebuild
  npm run dev

  # Link to n8n for testing
  npm link
  # In your n8n installation:
  npm link n8n-nodes-omnara
  ```

  ## Getting Started

  ### 1. Get Your API Key

  1. Go to [Omnara Dashboard](https://omnara.com/dashboard)
  2. Click on your email in the bottom left corner
  3. Click "API Keys"
  4. Create a new API key and copy it

  ### 2. Add Omnara Credentials in n8n

  1. In n8n, go to Credentials → Add Credential → Omnara API
  2. Paste your API key
  3. Leave the API URL as default (unless you have a custom deployment)
  4. Save the credentials

  ### 3. Important: Agent Instance ID and Agent Type

  **Every Omnara node in your workflow needs:**
  - **Agent Instance ID**: A unique UUID for each workflow run (same across all nodes in one run)
  - **Agent Type**: The name of your agent on the Omnara dashboard (same across all nodes)

  ⚠️ **Critical**: Use the SAME agent instance ID and agent type across ALL Omnara nodes in a single workflow run!

  ## Workflow Setup

  ### Option A: Trigger with Webhook (Recommended)

  This lets you start workflows from the Omnara dashboard.

  **Step 1: Set up n8n Webhook**
  1. Add a **Webhook** node as your trigger
  2. Set it to **POST** method
  3. Copy the webhook URL (looks like: `https://your-n8n.com/webhook/xxx`)

  **Step 2: Configure Omnara Dashboard**
  1. Go to [Omnara Dashboard](https://omnara.com/dashboard)
  2. Click the **+ New Instance** button (top left)
  3. Paste your webhook URL
  4. Create your agent type
  5. Send a message to trigger your workflow

  **Step 3: Use Webhook Data in Omnara Nodes**
  The webhook provides these values - use them in ALL your Omnara nodes:
  - **Agent Instance ID**: `{{ $('Webhook').item.json.body.agent_instance_id }}`
  - **Agent Type**: `{{ $('Webhook').item.json.body.agent_type }}`

  The webhook also provides:
  - **Prompt**: `{{ $('Webhook').item.json.body.prompt }}` - This is the message you entered in Omnara dashboard. Use it as input for your workflow if needed.

  ### Option B: Trigger Without Webhook

  For workflows triggered by other events (cron, manual, other apps).

  **Requirements:**
  1. Generate a unique UUID for Agent Instance ID (use Expression: `{{ $uuid() }}`)
  2. Choose an agent type name (e.g., "customer_support", "code_reviewer")
  3. Store these in Set node variables
  4. Use the SAME values across all Omnara nodes in the workflow

  **Example Setup:**
  ```
  Trigger → Set Node (store UUID & agent type) → Your Workflow → Omnara Nodes
  ```

  In Set node:
  - `agent_instance_id`: `{{ $uuid() }}`
  - `agent_type`: "your_agent_name"

  Then reference in all Omnara nodes:
  - **Agent Instance ID**: `{{ $('Set').item.json.agent_instance_id }}`
  - **Agent Type**: `{{ $('Set').item.json.agent_type }}`

  ## Operations

  ### Message Resource

  #### Send Message (Non-blocking)
  Send status updates and progress reports to users without waiting for a response. Perfect for AI agents to share their thought process, progress updates, or informational messages while continuing to work.

  **Parameters:**
  - **Agent Instance ID**: The ID of the agent instance (creates new if doesn't exist)
  - **Agent Type**: Type of agent (e.g., 'claude_code', 'cursor')
  - **Message**: Status update or informational message (workflow continues immediately)
  - **Additional Options**:
    - Send Email/SMS/Push: Notification preferences

  #### Send and Wait (Blocking)
  Send a question or request and WAIT for the user's response. Essential for AI agents that need human input, approvals, or answers to continue their task. The workflow pauses until the user responds via the Omnara web/mobile app.

  **Parameters:**
  - **Agent Instance ID**: The ID of the agent instance
  - **Agent Type**: Type of agent (e.g., 'claude_code', 'cursor')
  - **Message**: Question or request that requires user response (workflow pauses until answered)
  - **Wait Options**:
    - Timeout: How long to wait (default 24 hours)
    - **Sync Mode (For AI Agents)**: Enable synchronous polling mode for AI Agent compatibility
      - Sync Timeout: Max wait time in sync mode (default 2 hours, max 48 hours)
      - Poll Interval: How often to check for responses (default 5 seconds)
  - **Additional Options**: Same as Send Message

  **How it works:**

  *Normal Mode (for regular workflows):*
  1. Sends message to Omnara with `requires_user_input: true`
  2. Generates a webhook URL and stores it with the message
  3. Pauses workflow execution
  4. When user responds in Omnara dashboard, workflow resumes with the response

  *Sync Mode (for AI Agent tools):*
  1. Sends message to Omnara
  2. Polls for responses every 5 seconds
  3. Returns immediately when response received
  4. Works within AI Agent execution context (avoids async/await issues)

  ### Session Resource

  #### End Session
  End an agent session and mark it as completed.

  **Parameters:**
  - **Agent Instance ID**: The ID of the agent instance session to end

  ## Usage Examples

  ### Basic Message Send
  ```javascript
  // Send a status update to your agent
  {
    "resource": "message",
    "operation": "send",
    "agentInstanceId": "agent-123",
    "content": "Build completed successfully"
  }
  ```

  ### Approval Workflow (Regular)
  ```javascript
  // Ask for approval and wait for response
  {
    "resource": "message",
    "operation": "sendAndWait",
    "agentInstanceId": "agent-456",
    "agentType": "claude_code",
    "message": "Deploy to production? Please approve or decline.",
    "options": {
      "sendEmail": true,
      "sendPush": true
    }
  }
  ```

  ### AI Agent Tool Usage (Sync Mode)
  ```javascript
  // Use sync mode when calling from AI Agent tools
  {
    "resource": "message",
    "operation": "sendAndWait",
    "agentInstanceId": "agent-789",
    "agentType": "claude_code",
    "message": "What changes should I make to the database schema?",
    "options": {
      "syncMode": true,
      "syncTimeout": 600,  // Wait up to 10 minutes
      "pollInterval": 5,   // Check every 5 seconds
      "sendEmail": true,
      "sendPush": true
    }
  }
  ```

  ### End Session
  ```javascript
  // Mark agent session as completed
  {
    "resource": "session",
    "operation": "end",
    "agentInstanceId": "agent-789"
  }
  ```

  ## Agent Tool Support

  This node is configured with `usableAsTool: true`, making it available as a tool for AI agents in n8n. 

  **Important**: When using Send and Wait as an AI Agent tool, you MUST enable **Sync Mode** in the options. This solves the async/await limitations of AI Agents in n8n.

  AI Agents can:
  - Send status updates
  - Ask for human input and wait for responses (using Sync Mode)
  - Manage agent sessions

  ### Why Sync Mode?
  Regular Send and Wait uses `putExecutionToWait()` which doesn't work properly in AI Agent context due to n8n's architecture. Sync Mode polls for responses synchronously, allowing AI Agents to wait for human responses without timing out or returning prematurely.

  ## Webhook Integration

  The Send and Wait operation uses n8n's built-in webhook functionality:
  - Webhook URLs are automatically generated by n8n
  - Omnara stores the webhook URL and triggers it when users respond
  - Workflows resume with the user's response data
  - Supports timeout configuration (max 7 days)

  ## Error Handling

  The node includes comprehensive error handling:
  - Authentication failures
  - Invalid agent instance IDs
  - Timeout handling for wait operations
  - Network errors and API issues

  All operations support the "Continue On Fail" option in n8n.

  ## Development

  ### Building
  ```bash
  npm run build
  ```

  ### Linting
  ```bash
  npm run lint
  npm run lint:fix
  ```

  ### Code Formatting
  ```bash
  npm run format
  ```

  ## Resources

  - [Omnara GitHub](https://github.com/omnara-ai/omnara)
  - [n8n Documentation](https://docs.n8n.io)
  - [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  MIT

  ## Support & Feedback

  Our mission is to make Omnara the best platform for human-in-the-loop workflows and human-AI collaboration. We're actively improving and would love your input!

  - **Issues & feature requests**: [GitHub Issues](https://github.com/omnara-ai/omnara/issues) or contact@omnara.com
  - **Questions & support**: contact@omnara.com

  Share your ideas on how we can make human-AI interaction better!

ai_documentation_summary:
  {"purpose":"Send messages and manage human-in-the-loop interactions via Omnara, enabling workflows to notify users, pause for human input/approval, and integrate real-time agent conversations.","capabilities":["Send Message (non-blocking) — deliver status updates or informational messages while workflow continues","Send and Wait (blocking) — send a question/request and pause the workflow until a user responds","Sync Mode for Send and Wait — synchronous polling for AI agent compatibility (configurable poll interval and sync timeout)","Configure wait options — timeout for waiting, poll interval, and sync timeout limits","Send notifications via Email, SMS, and Push (notification preferences configurable)","Implicitly create or reference Agent Instance by Agent Instance ID (creates new if doesn't exist)","End Session — mark an agent session as completed","Webhook integration — start workflows from Omnara and receive agent_instance_id, agent_type, and prompt payloads","Support use of n8n expressions to generate/store Agent Instance ID and Agent Type (e.g., $uuid() and Set node)"],"authentication":"API key required (Omnara API key added in n8n credentials 'Omnara API'); supports custom API URL if using custom deployment","commonUseCases":["Approval workflows that require human sign-off or decisions","Real-time monitoring and guiding of AI agents with human-in-the-loop interventions","Pausing automated workflows to collect human responses or approvals","Sending agent progress updates, thought-process logs, or status notifications to users","Integrating AI agents into workflows that need synchronous polling (Sync Mode) to avoid async/await issues"],"limitations":["All Omnara nodes in a single workflow run must use the same agent_instance_id and agent_type (critical requirement)","Send and Wait has default timeout of 24 hours; Sync Mode default sync timeout 2 hours and maximum 48 hours (may limit long waits)","Sync Mode relies on frequent polling (default 5s poll interval), which can have resource/latency implications","Authentication limited to API key (no OAuth described)","README only documents send, send-and-wait, and end-session operations — no explicit message/agent listing or advanced management operations described"],"relatedNodes":["Webhook (recommended trigger from Omnara)","Set (to store/generate agent_instance_id and agent_type)","Credentials (Omnara API credential in n8n)"]}


node_type: @cloudconvert/n8n-nodes-cloudconvert.cloudConvert
package_name: @cloudconvert/n8n-nodes-cloudconvert
display_name: CloudConvert
description: Use CloudConvert to convert files, create thumbnails, merge files, add watermarks and more!
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: josiasmontag
author_github_url: https://github.com/cloudconvert/n8n-nodes-cloudconvert.git
npm_package_name: @cloudconvert/n8n-nodes-cloudconvert
npm_version: 1.0.2
community_fetched_at: 2026-02-19T14:41:52.814Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "convert",
      "options": [
        {
          "name": "Add Watermark",
          "value": "watermark",
          "action": "Add watermark to a file",
          "description": "Add a watermark to a PDF file, to an image or to a video"
        },
        {
          "name": "Capture Website",
          "value": "capture-website",
          "action": "Capture website",
          "description": "Creates job to capture a website as PDF or create a website screenshot as JPG or PNG"
        },
        {
          "name": "Convert File",
          "value": "convert",
          "action": "Convert a file",
          "description": "Convert a file to a different format"
        },
        {
          "name": "Create Archive",
          "value": "archive",
          "action": "Create archive",
          "description": "Create an archive (ZIP, RAR...) for multiple files"
        },
        {
          "name": "Create Thumbnail",
          "value": "thumbnail",
          "action": "Create a thumbnail",
          "description": "Create a thumbnail of a file"
        },
        {
          "name": "Get Metadata",
          "value": "metadata",
          "action": "Get metadata from a file",
          "description": "Extract metadata from files"
        },
        {
          "name": "Merge Files",
          "value": "merge",
          "action": "Merge files to PDF",
          "description": "Merge multiple files into a single PDF"
        },
        {
          "name": "Optimize File",
          "value": "optimize",
          "action": "Optimize a file",
          "description": "Optimize / compress a file to reduce its size"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Watermark",
      "value": "watermark",
      "action": "Add watermark to a file",
      "description": "Add a watermark to a PDF file, to an image or to a video"
    },
    {
      "name": "Capture Website",
      "value": "capture-website",
      "action": "Capture website",
      "description": "Creates job to capture a website as PDF or create a website screenshot as JPG or PNG"
    },
    {
      "name": "Convert File",
      "value": "convert",
      "action": "Convert a file",
      "description": "Convert a file to a different format"
    },
    {
      "name": "Create Archive",
      "value": "archive",
      "action": "Create archive",
      "description": "Create an archive (ZIP, RAR...) for multiple files"
    },
    {
      "name": "Create Thumbnail",
      "value": "thumbnail",
      "action": "Create a thumbnail",
      "description": "Create a thumbnail of a file"
    },
    {
      "name": "Get Metadata",
      "value": "metadata",
      "action": "Get metadata from a file",
      "description": "Extract metadata from files"
    },
    {
      "name": "Merge Files",
      "value": "merge",
      "action": "Merge files to PDF",
      "description": "Merge multiple files into a single PDF"
    },
    {
      "name": "Optimize File",
      "value": "optimize",
      "action": "Optimize a file",
      "description": "Optimize / compress a file to reduce its size"
    }
  ]

npm_readme:
  # n8n-nodes-cloudconvert

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

  CloudConvert is an online file conversion and processing API which allows to convert files, create thumbnails, merge files, add watermarks 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)  <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage)  <!-- delete if not using this section -->  
  [Resources](#resources)  
  [Version history](#version-history)  <!-- delete if not using this section -->  

  ## Installation

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

  1. Go to **Settings > Community Nodes**.
  2. Select **Install**.
  3. Enter `@cloudconvert/n8n-nodes-cloudconvert` in **Enter npm package name**.
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes: select **I understand the risks of installing unverified code from a public source**.
  5. Select **Install**.

  After installing the node, you can use it like any other node. n8n displays the node in search results in the **Nodes** panel.

  ## Operations

  It supports these operations:

  - Convert files from one format to another
  - Create thumbnails of files
  - Add watermarks to images, PDFs and videos
  - Capture website screenshots and save websites as PDF
  - Merge multiple input files in one single PDF
  - Create archives (ZIP, RAR...) for multiple input files
  - Get file metadata (EXIF etc)

  ## Credentials

  Create a free CloudConvert account [here](https://cloudconvert.com/register) which allows 25 free credits per day.

  - Generate OAuth 2 credentials (default auth method) here: https://cloudconvert.com/dashboard/api/v2/clients
  - Generate an API key (alternative auth method) here: https://cloudconvert.com/dashboard/api/v2/keys

  ## Compatibility

  Tested against n8n version 0.225+.

  ## Usage

  A typical workflow using this node would look like this:
  <img width="906" alt="image" src="https://github.com/n8n-io/n8n/assets/1945577/3cd6f332-74ee-4997-8e67-7d873a124592">

  This is a workflow merging multiple input files in a single PDF:
  <img width="1276" alt="image" src="https://github.com/n8n-io/n8n/assets/1945577/9324c941-eb86-48ac-8d83-aaeecf16fd09">



  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [CloudConvert API v2 Documentation](https://cloudconvert.com/api/v2)

ai_documentation_summary:
  {"purpose":"Integrate CloudConvert into n8n workflows to convert and process files (convert formats, create thumbnails, add watermarks, merge files, capture websites, create archives, and retrieve metadata).","capabilities":["Convert files between formats","Create thumbnails of files","Add watermarks to images, PDFs, and videos","Capture website screenshots and save websites as PDF","Merge multiple input files into a single PDF","Create archives (ZIP, RAR, etc.) for multiple input files","Retrieve file metadata (EXIF and similar)"],"authentication":"OAuth2 (default) with CloudConvert OAuth2 client credentials; API key supported as an alternative","commonUseCases":["Automated format conversion (e.g., DOCX to PDF or image format conversions)","Generating thumbnails for uploaded images or videos","Applying watermarks to images, PDFs, or videos before distribution","Capturing website screenshots or exporting webpages to PDF for archiving","Merging multiple documents into a single PDF for delivery"],"limitations":["Requires a CloudConvert account (free tier provides 25 credits per day)","Default authentication uses OAuth2 and requires creating OAuth2 client credentials (or alternatively an API key)","Community node (unverified) — installing community nodes involves accepting risks of unverified code","Compatibility explicitly tested against n8n version 0.225+"],"relatedNodes":[]}


node_type: n8n-nodes-exa-official.exa
package_name: n8n-nodes-exa-official
display_name: Exa
description: Semantic web search and research via Exa API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: exa-jakub
author_github_url: https://github.com/exa-labs/n8n-integration.git
npm_package_name: n8n-nodes-exa-official
npm_version: 0.2.0
community_fetched_at: 2026-02-19T14:41:52.815Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Answer",
          "value": "answer",
          "description": "Get an AI-generated answer to a query"
        },
        {
          "name": "Content",
          "value": "contents",
          "description": "Get contents from URLs"
        },
        {
          "name": "Find Similar",
          "value": "findSimilar",
          "description": "Find similar links to a given URL"
        },
        {
          "name": "Research",
          "value": "research",
          "description": "Create and manage asynchronous research tasks"
        },
        {
          "name": "Search",
          "value": "search",
          "description": "Search the web intelligently"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search the web",
          "routing": {
            "request": {
              "url": "/search",
              "method": "POST"
            }
          },
          "description": "Search the web and optionally extract contents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getContents",
      "options": [
        {
          "name": "Get Contents",
          "value": "getContents",
          "action": "Get contents from ur ls",
          "routing": {
            "request": {
              "url": "/contents",
              "method": "POST"
            }
          },
          "description": "Retrieve contents from a list of URLs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contents"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findSimilar",
      "options": [
        {
          "name": "Find Similar Links",
          "value": "findSimilar",
          "action": "Find similar links",
          "routing": {
            "request": {
              "url": "/findSimilar",
              "method": "POST"
            }
          },
          "description": "Find links similar to a given URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "findSimilar"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAnswer",
      "options": [
        {
          "name": "Get Answer",
          "value": "getAnswer",
          "action": "Get an AI answer",
          "routing": {
            "request": {
              "url": "/answer",
              "method": "POST"
            }
          },
          "description": "Get an AI-generated answer to a query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "answer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createTask",
      "options": [
        {
          "name": "Create Task",
          "value": "createTask",
          "action": "Create a research task",
          "routing": {
            "request": {
              "url": "/research/v1",
              "method": "POST"
            }
          },
          "description": "Create an asynchronous research task"
        },
        {
          "name": "Get Task",
          "value": "getTask",
          "action": "Get a research task",
          "routing": {
            "request": {
              "url": "=/research/v1/{{ $parameter.researchId }}",
              "method": "GET"
            }
          },
          "description": "Retrieve status and results of a research task"
        },
        {
          "name": "List Tasks",
          "value": "listTasks",
          "action": "List research tasks",
          "routing": {
            "request": {
              "url": "/research/v1",
              "method": "GET"
            }
          },
          "description": "Retrieve a paginated list of research tasks"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "research"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search",
      "value": "search",
      "action": "Search the web",
      "routing": {
        "request": {
          "url": "/search",
          "method": "POST"
        }
      },
      "description": "Search the web and optionally extract contents"
    },
    {
      "name": "Get Contents",
      "value": "getContents",
      "action": "Get contents from ur ls",
      "routing": {
        "request": {
          "url": "/contents",
          "method": "POST"
        }
      },
      "description": "Retrieve contents from a list of URLs"
    },
    {
      "name": "Find Similar Links",
      "value": "findSimilar",
      "action": "Find similar links",
      "routing": {
        "request": {
          "url": "/findSimilar",
          "method": "POST"
        }
      },
      "description": "Find links similar to a given URL"
    },
    {
      "name": "Get Answer",
      "value": "getAnswer",
      "action": "Get an AI answer",
      "routing": {
        "request": {
          "url": "/answer",
          "method": "POST"
        }
      },
      "description": "Get an AI-generated answer to a query"
    },
    {
      "name": "Create Task",
      "value": "createTask",
      "action": "Create a research task",
      "routing": {
        "request": {
          "url": "/research/v1",
          "method": "POST"
        }
      },
      "description": "Create an asynchronous research task"
    },
    {
      "name": "Get Task",
      "value": "getTask",
      "action": "Get a research task",
      "routing": {
        "request": {
          "url": "=/research/v1/{{ $parameter.researchId }}",
          "method": "GET"
        }
      },
      "description": "Retrieve status and results of a research task"
    },
    {
      "name": "List Tasks",
      "value": "listTasks",
      "action": "List research tasks",
      "routing": {
        "request": {
          "url": "/research/v1",
          "method": "GET"
        }
      },
      "description": "Retrieve a paginated list of research tasks"
    }
  ]

npm_readme:
  # n8n-nodes-exa-official

  This is an n8n community node that provides integration with the Exa API for intelligent web search, async research, and content extraction.

  [Exa](https://exa.ai) is an AI-powered search engine that provides embeddings-based semantic search, deep web research, and structured content extraction.

  [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

  This node supports the following Exa API operations:

  ### Search
  - **Search**: Intelligently search the web with neural or keyword-based search
    - Supports multiple search types: auto, neural, keyword, fast
    - Filter by domain, date, category, and text content
    - Extract page contents (text, highlights, summaries)
    - Configure livecrawl and subpage crawling

  ### Contents
  - **Get Contents**: Retrieve cleaned text, highlights, and summaries from a list of URLs

  ### Find Similar
  - **Find Similar Links**: Discover pages similar to a given URL

  ### Answer
  - **Get Answer**: Get an AI-generated answer to a query using Exa's research capabilities

  ### Research
  - **Create Research Task**: Launch a long-running research job powered by Exa Research or Research Pro
  - **Get Research Task**: Poll a specific research task for status, findings, and generated artifacts
  - **List Research Tasks**: Fetch paginated task history for monitoring and auditing

  ## Credentials

  To use this node, you need an Exa API key. You can obtain one by:

  1. Signing up at [dashboard.exa.ai](https://dashboard.exa.ai)
  2. Navigating to the API Keys section
  3. Creating a new API key

  Add the API key to your n8n credentials as "Exa API".

  ## Compatibility

  - Minimum n8n version: 1.0.0
  - Tested against n8n version: 1.60.0

  ## Usage

  ### Basic Search Example

  1. Add the Exa node to your workflow
  2. Select "Search" as the resource
  3. Enter your search query (e.g., "Latest AI research papers")
  4. Configure search type (auto, neural, keyword, or fast)
  5. Optionally add filters:
     - Category (research paper, news, company, etc.)
     - Date range (published date)
     - Domain filters (include/exclude specific domains)
     - Text filters (include/exclude specific text)

  ### Content Extraction

  Enable content extraction options:
  - **Text**: Get cleaned page text
  - **Highlights**: Get relevant excerpts
  - **Summary**: Get AI-generated summaries
  - **Livecrawl**: Crawl pages in real-time
  - **Subpages**: Crawl linked subpages

  ### Advanced Features

  **Date Filtering**: Filter results by publication date
  ```
  Start Published Date: 2024-01-01
  End Published Date: 2024-12-31
  ```

  **Domain Control**: Focus on or exclude specific domains
  ```
  Include Domains: arxiv.org, github.com
  Exclude Domains: reddit.com
  ```

  **Category Filtering**: Focus on specific content types
  - Company profiles
  - Research papers
  - News articles
  - PDFs
  - GitHub repositories
  - Twitter/LinkedIn profiles
  - Financial reports

  ### Research Workflow Example

  1. Add an Exa node and set **Resource** to `Research` with the **Create Research Task** operation.
  2. Provide a clear research instruction (for example, "Compare emerging open-source RAG frameworks and summarize trade-offs").
  3. Choose the Research product tier (`exa-research` or `exa-research-pro`) and optional guardrails like domain/category allowlists.
  4. Store the returned `id` or use paired nodes (Set/Code) to persist it inside the workflow.
  5. Add another Exa node in the same workflow set to **Get Research Task** and reference the saved `id` to poll results until the status becomes `completed`.
  6. Inspect the response for `insights`, `sources`, `outline`, or generated assets, then continue your workflow (e.g., send a Slack summary or populate a database).

  For bulk monitoring, use **List Research Tasks** and apply parameters for pagination, status filtering, or creation date ranges.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Exa API documentation](https://docs.exa.ai)
  * [Exa API reference](https://docs.exa.ai/reference/search)

  ## Development

  To work on this node locally:

  ```bash
  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Link for local testing
  npm link

  # In your n8n installation directory
  cd ~/.n8n/custom
  npm link n8n-nodes-exa-official

  # Start n8n
  n8n start
  ```

  ## License

  [MIT](https://github.com/exa-labs/n8n-integration/blob/main/LICENSE)

ai_documentation_summary:
  {"purpose":"Provides integration with the Exa API to perform semantic web search, long-running AI research jobs, and structured content extraction (text, highlights, summaries) from web pages.","capabilities":["Search: neural/keyword/fast/auto search with filters (domain, date, category, text)","Search: extract page contents (cleaned text, highlights, AI summaries)","Search: livecrawl and subpage crawling configuration","Get Contents: retrieve cleaned text, highlights, and summaries from a list of URLs","Find Similar Links: discover pages similar to a given URL","Get Answer: generate AI answers to queries using Exa research capabilities","Research: Create Research Task (launch long-running research jobs, choose product tier and guardrails)","Research: Get Research Task (poll task status, findings, insights, sources, outlines, generated assets)","Research: List Research Tasks (paginated history with filters for status and date ranges)","Advanced filters: date filtering, domain include/exclude, category filtering"],"authentication":"API key required (add Exa API key in n8n credentials as 'Exa API')","commonUseCases":["Semantic search for research papers, news, company profiles, code repositories, and PDFs","Extract cleaned text, highlights, and summaries from target URLs for downstream processing","Launch and monitor long-running research jobs (exa-research or exa-research-pro) and poll results","Generate concise AI answers to complex web-research queries","Find pages similar to a given URL for discovery or deduplication"],"limitations":["Research tasks are long-running and must be polled via Get Research Task (no webhook/callback behavior documented)","Requires an Exa API key and n8n compatibility (minimum n8n 1.0.0; tested on 1.60.0)"],"relatedNodes":["Set","Code","Slack","Database"]}


node_type: @decisionrules/n8n-nodes-decisionrules.decisionRules
package_name: @decisionrules/n8n-nodes-decisionrules
display_name: DecisionRules
description: DecisionRules Actions
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: decisionrules
author_github_url: https://github.com/decisionrules/n8n-nodes-decisionrules.git
npm_package_name: @decisionrules/n8n-nodes-decisionrules
npm_version: 1.0.5
community_fetched_at: 2026-02-19T14:41:52.815Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "solveRes",
      "options": [
        {
          "name": "Job",
          "value": "jobRes"
        },
        {
          "name": "Management Folder",
          "value": "managementFolderRes"
        },
        {
          "name": "Management Rule",
          "value": "managementRuleRes"
        },
        {
          "name": "Management Tag",
          "value": "managementTagRes"
        },
        {
          "name": "Management Tool",
          "value": "managementToolsRes"
        },
        {
          "name": "Solve",
          "value": "solveRes"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "solve",
      "options": [
        {
          "name": "Solve Rule",
          "value": "solve",
          "action": "Solve rule",
          "description": "Takes the node input, sends it as data to the defined host, and solves a rule"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "solveRes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "startJob",
      "options": [
        {
          "name": "Start Job",
          "value": "startJob",
          "action": "Start a job",
          "description": "Takes the node input, sends it as data to the defined host, and starts a job for an integration flow rule"
        },
        {
          "name": "Cancel Job",
          "value": "cancelJob",
          "action": "Cancel a job",
          "description": "Cancels a running job"
        },
        {
          "name": "Get Job Info",
          "value": "jobInfo",
          "action": "Get job info",
          "description": "Retrieves information about a job's status (e.g., success, failure, or in process) based on its ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "jobRes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getRule",
      "options": [
        {
          "name": "Create New Rule Version",
          "value": "createNewRuleVersion",
          "action": "Create a new rule version",
          "description": "Creates a new version of an existing rule"
        },
        {
          "name": "Create Rule",
          "value": "createRule",
          "action": "Create a rule",
          "description": "Creates a new rule"
        },
        {
          "name": "Delete Rule",
          "value": "deleteRule",
          "action": "Delete a rule",
          "description": "Deletes a specific rule or a version of a rule"
        },
        {
          "name": "Get Rule",
          "value": "getRule",
          "action": "Get a rule",
          "description": "Retrieves a specific rule by its ID or alias"
        },
        {
          "name": "Get Rules for Space",
          "value": "getRulesForSpace",
          "action": "Get all rules for a space",
          "description": "Retrieves all rules within the configured space"
        },
        {
          "name": "Lock Rule",
          "value": "lockRule",
          "action": "Lock or unlock a rule",
          "description": "Locks or unlocks a rule to prevent edits"
        },
        {
          "name": "Update Rule",
          "value": "updateRule",
          "action": "Update a rule",
          "description": "Updates the content or properties of a rule"
        },
        {
          "name": "Update Rule Status",
          "value": "updateRuleStatus",
          "action": "Update a rule s status",
          "description": "Changes a rule's status (e.g., to published or pending)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "managementRuleRes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTags",
      "options": [
        {
          "name": "Delete Tags",
          "value": "deleteTags",
          "action": "Delete tags from a rule",
          "description": "Removes one or more tags from a rule"
        },
        {
          "name": "Get Rules by Tags",
          "value": "getTags",
          "action": "Get tags for a rule",
          "description": "Retrieves all tags associated with a rule"
        },
        {
          "name": "Update Tags",
          "value": "updateTags",
          "action": "Update tags for a rule",
          "description": "Adds or overwrites tags for a rule"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "managementTagRes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFolderStructure",
      "options": [
        {
          "name": "Create Folder",
          "value": "createFolder",
          "action": "Create a folder",
          "description": "Creates a new folder at a specified location"
        },
        {
          "name": "Delete Folder",
          "value": "deleteFolder",
          "action": "Delete a folder",
          "description": "Deletes a folder and optionally all its contents"
        },
        {
          "name": "Export Folder",
          "value": "exportFolder",
          "action": "Export a folder",
          "description": "Exports the contents of a folder as a JSON object"
        },
        {
          "name": "Find Folder or Rule",
          "value": "findFolderOrRule",
          "action": "Find a folder or rule",
          "description": "Finds a folder or rule by various attributes"
        },
        {
          "name": "Get Folder Structure",
          "value": "getFolderStructure",
          "action": "Get the folder structure",
          "description": "Retrieves the folder and rule hierarchy"
        },
        {
          "name": "Import Folder",
          "value": "importFolder",
          "action": "Import a folder",
          "description": "Imports a folder structure from a JSON object"
        },
        {
          "name": "Move Folder",
          "value": "moveFolder",
          "action": "Move a folder or rule",
          "description": "Moves a folder or rule to a different location"
        },
        {
          "name": "Rename Folder",
          "value": "renameFolder",
          "action": "Rename a folder",
          "description": "Renames an existing folder"
        },
        {
          "name": "Update Node Folder Structure",
          "value": "updateNodeFolderStructure",
          "action": "Update a node folder structure",
          "description": "Updates the structure of a folder or node"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "managementFolderRes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findDependencies",
      "options": [
        {
          "name": "Find Dependencies",
          "value": "findDependencies",
          "action": "Find rule dependencies",
          "description": "Finds all dependencies for a given rule"
        },
        {
          "name": "Find Duplicates",
          "value": "findDuplicates",
          "action": "Find duplicates in a rule",
          "description": "Finds duplicate conditions within a rule"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "managementToolsRes"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Solve Rule",
      "value": "solve",
      "action": "Solve rule",
      "description": "Takes the node input, sends it as data to the defined host, and solves a rule"
    },
    {
      "name": "Start Job",
      "value": "startJob",
      "action": "Start a job",
      "description": "Takes the node input, sends it as data to the defined host, and starts a job for an integration flow rule"
    },
    {
      "name": "Cancel Job",
      "value": "cancelJob",
      "action": "Cancel a job",
      "description": "Cancels a running job"
    },
    {
      "name": "Get Job Info",
      "value": "jobInfo",
      "action": "Get job info",
      "description": "Retrieves information about a job's status (e.g., success, failure, or in process) based on its ID"
    },
    {
      "name": "Create New Rule Version",
      "value": "createNewRuleVersion",
      "action": "Create a new rule version",
      "description": "Creates a new version of an existing rule"
    },
    {
      "name": "Create Rule",
      "value": "createRule",
      "action": "Create a rule",
      "description": "Creates a new rule"
    },
    {
      "name": "Delete Rule",
      "value": "deleteRule",
      "action": "Delete a rule",
      "description": "Deletes a specific rule or a version of a rule"
    },
    {
      "name": "Get Rule",
      "value": "getRule",
      "action": "Get a rule",
      "description": "Retrieves a specific rule by its ID or alias"
    },
    {
      "name": "Get Rules for Space",
      "value": "getRulesForSpace",
      "action": "Get all rules for a space",
      "description": "Retrieves all rules within the configured space"
    },
    {
      "name": "Lock Rule",
      "value": "lockRule",
      "action": "Lock or unlock a rule",
      "description": "Locks or unlocks a rule to prevent edits"
    },
    {
      "name": "Update Rule",
      "value": "updateRule",
      "action": "Update a rule",
      "description": "Updates the content or properties of a rule"
    },
    {
      "name": "Update Rule Status",
      "value": "updateRuleStatus",
      "action": "Update a rule s status",
      "description": "Changes a rule's status (e.g., to published or pending)"
    },
    {
      "name": "Delete Tags",
      "value": "deleteTags",
      "action": "Delete tags from a rule",
      "description": "Removes one or more tags from a rule"
    },
    {
      "name": "Get Rules by Tags",
      "value": "getTags",
      "action": "Get tags for a rule",
      "description": "Retrieves all tags associated with a rule"
    },
    {
      "name": "Update Tags",
      "value": "updateTags",
      "action": "Update tags for a rule",
      "description": "Adds or overwrites tags for a rule"
    },
    {
      "name": "Create Folder",
      "value": "createFolder",
      "action": "Create a folder",
      "description": "Creates a new folder at a specified location"
    },
    {
      "name": "Delete Folder",
      "value": "deleteFolder",
      "action": "Delete a folder",
      "description": "Deletes a folder and optionally all its contents"
    },
    {
      "name": "Export Folder",
      "value": "exportFolder",
      "action": "Export a folder",
      "description": "Exports the contents of a folder as a JSON object"
    },
    {
      "name": "Find Folder or Rule",
      "value": "findFolderOrRule",
      "action": "Find a folder or rule",
      "description": "Finds a folder or rule by various attributes"
    },
    {
      "name": "Get Folder Structure",
      "value": "getFolderStructure",
      "action": "Get the folder structure",
      "description": "Retrieves the folder and rule hierarchy"
    },
    {
      "name": "Import Folder",
      "value": "importFolder",
      "action": "Import a folder",
      "description": "Imports a folder structure from a JSON object"
    },
    {
      "name": "Move Folder",
      "value": "moveFolder",
      "action": "Move a folder or rule",
      "description": "Moves a folder or rule to a different location"
    },
    {
      "name": "Rename Folder",
      "value": "renameFolder",
      "action": "Rename a folder",
      "description": "Renames an existing folder"
    },
    {
      "name": "Update Node Folder Structure",
      "value": "updateNodeFolderStructure",
      "action": "Update a node folder structure",
      "description": "Updates the structure of a folder or node"
    },
    {
      "name": "Find Dependencies",
      "value": "findDependencies",
      "action": "Find rule dependencies",
      "description": "Finds all dependencies for a given rule"
    },
    {
      "name": "Find Duplicates",
      "value": "findDuplicates",
      "action": "Find duplicates in a rule",
      "description": "Finds duplicate conditions within a rule"
    }
  ]

npm_readme:
  # n8n-nodes-decisionrules

  This is an n8n community node that integrates DecisionRules with your n8n workflows, so you can execute business rules, run integration flows, and automate complex logic-based tasks.

  [DecisionRules](https://www.decisionrules.io) is a no-code business rules engine that allows you to manage and execute complex logic without programming. n8n is a fair-code licensed tool for workflow automation that allows you to connect various services.

  [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 (self-hosted)

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

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

  ## Installation (n8n Cloud)

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

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


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


  ## Installation (development and contributing) 
  To contribute to our DecisionRules node, you can install the node and link it to your n8n instance. Follow the steps below:

  ### ⚙️ Prerequisites

  - Node.js (recommended: v18.10+)
  - pnpm installed globally

  ---

  ### 1. Initialize n8n locally

  Begin by installing and running n8n to create the necessary configuration directory (`~/.n8n`):

  ```bash
  npm install -g n8n # Skip this step if you already have n8n installed globally
  n8n start # This will generate the ~/.n8n directory
  ```

  ### 2. Clone and build the Node Package

  Install dependencies and build the node:

  ```bash
  pnpm install
  pnpm run build
  ```

  ### 3. Link the custom node to n8n

  Create the `custom` directory inside `~/.n8n` (if it doesn't exist), then symlink your local node package:

  ```bash
  mkdir -p ~/.n8n/custom
  ln -s /full/path/to/n8n-nodes-decisionrules ~/.n8n/custom/n8n-nodes-decisionrules # replace full/path/to with the path to your n8n-nodes-decisionrules directory
  ```

  > **Note:** Use the absolute path in the symlink for compatibility.

  ### 4. Restart n8n

  Now that your custom node is linked, start n8n again:

  ```bash
  n8n start
  ```

  ---

  ### 🔁 Making changes

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

  ```bash
  pnpm run build
  n8n start
  ```

  ---

  ## Operations

  This node supports the following operations:
  ### Rules
  - Solve Rule
  Takes the input data from a previous node and sends it to the DecisionRules API to solve a rule (e.g., decision table, decision tree). The node then outputs the result from the API.
  ### Integration Flows
  - Start Job:
  Takes the input data from a previous node to start a new asynchronous job for a specific Integration Flow rule. The node outputs the job initiation details.
  - Get Job Info:
  Retrieves the status and information (e.g., success, failure, in-process) for a specific job using its Job ID.
  - Cancel Job:
  Cancels a running or waiting job using its Job ID.

  ### Management
  The Management operations allow you to programmatically manage your DecisionRules rules, folders, and tags.

  #### Rule Management
  - **Get Rule**: Retrieves all information about a rule, including its content, version, input/output schemas. Can fetch by rule ID, alias, or path.
  - **Create Rule**: Creates a new rule based on the request body.
  - **Create New Rule Version**: Creates a new version of an existing rule with modifications.
  - **Update Rule**: Modifies an existing rule (cannot change rule ID, version, alias, or last update date).
  - **Update Rule Status**: Changes rule status between 'pending' and 'published'.
  - **Delete Rule**: Deletes a rule by ID, alias, or path.
  - **Lock Rule**: Locks or unlocks a rule to prevent/allow modifications.
  - **Get Rules For Space**: Retrieves all rules and rule flows in the current space.

  #### Rule Analysis
  - **Find Dependencies**: Identifies all dependencies for a specific rule.
  - **Find Duplicates**: Finds duplicate rules in decision tables.

  #### Tag Management
  - **Get Tags**: Retrieves all rules/rule flows with specific tags.
  - **Update Tags**: Adds tags to a rule (all versions or specific version).
  - **Delete Tags**: Removes tags from a rule (all versions or specific version).

  #### Folder Management
  - **Get Folder Structure**: Retrieves the folder hierarchy and contents by node ID or path.
  - **Create Folder**: Creates a new folder structure under a target location.
  - **Update Node Folder Structure**: Modifies existing folder structure and moves rules.
  - **Delete Folder**: Deletes a folder and optionally all its contents.
  - **Rename Folder**: Changes the name of a folder.
  - **Move Folder**: Moves folders and/or rules to a different parent location.
  - **Export Folder**: Exports a folder with all its rules.
  - **Import Folder**: Imports a folder structure with rules into a target location.
  - **Find Folder or Rule**: Searches for folders and rules by various attributes (name, ID, tags, type, etc.).

  ---

  ## Credentials

  To use this node, you will need to authenticate with the DecisionRules Solve API and specify host URL.

  To configure your credentials:
  1.  Log in to your DecisionRules account.
  2.  To specify the host correctly you can use the URL that you logged in by and you change app to api.
  (app.decisionrules.io -> api.decisionrules.io)
  2.  Navigate to **Space > API Keys > Solver** to find your API Token.
  3.  In n8n, go to the Credentials section and add new credentials for the 'DecisionRules API'.
  4.  Enter your API Token and host in the respective field.

  ### For Management API (Management Operations)

  To configure your Management API credentials:
  1. Log in to your DecisionRules account.
  2. Use the same host format as above (e.g., `api.decisionrules.io`).
  3. Navigate to **Space > API Keys > Management** to find your Management API Token.
  4. In n8n, add the Management API credentials.
  5. Enter your Management API Token and host in the respective fields.


  ---

  ## Compatibility

  This node has been tested with n8n version 1.16.3.

  ---

  ## Usage

  This node is designed to integrate your n8n workflows with the DecisionRules engine. Here's how to understand its behavior:

  ### Operations Using Input Data (`Solve Rule`, `Start Job`, `Create Rule`, `Create New Rule Version`, `Update Rule`, `Create Folder`, `Update Node Folder Structure`, `Import Folder`)

  These operations process data from previous nodes in your workflow. The JSON output of a preceding node will be used as the input payload for the DecisionRules API call.

  **Example:** You can have an 'HTTP Request' node that fetches user data. When you connect it to the DecisionRules node and select the `Solve Rule` operation, the fetched user data is sent to your rule for evaluation. The result of that rule is then available as the output of the DecisionRules node for the next steps in your workflow.

  **Management Example:** You can prepare a rule definition in JSON format in a previous node, then use `Create Rule` to add it to your DecisionRules space.

  ### Operations Using Node Parameters (All other operations)

  Operations like `Get Job Info`, `Cancel Job`, `Get Rule`, `Delete Rule`, etc. do **not** use the data from previous nodes. Instead, they rely on parameters you configure directly in the node's properties panel in the n8n UI, such as `Job ID`, `Rule ID`, `Node ID`, or `Path`.

  **Example:** After using a `Start Job` operation, you can use a 'Wait' node and then a `Get Job Info` node to check the status of that job. You would pass the `jobId` from the `Start Job` output into the 'Job ID' field of the `Get Job Info` node.

  ---

  ## Troubleshooting

  ### Common issues

  ---

  ### Authentication errors
  - Verify your **Host** is correct (e.g., `https://api.decisionrules.io`).
  - Verify your **Solver API Key** is correct.
  - Verify your **Management API Key** is correct for Management operations.

  ---

  ### Resource Not Found
  - Verify the **Rule ID**, **rule alias**, or **Job ID** is correct.
  - Check if the resource exists in the **DecisionRules space** associated with your API key.
  - Ensure you have access to the resource with the provided key.

  ---

  ### Operation failures
  - Check that the **input parameters** from the previous node are a valid JSON object.
  - For **Solve Rule** and **Start Job**, ensure the incoming data structure matches the expected input model for your rule in DecisionRules.
  - For **Create Rule**, **Update Rule**, and **Create New Rule Version**, ensure the rule definition follows the correct format.
  - For **Folder operations**, verify the folder structure and node IDs are valid.
  - Review the **error message** in the n8n output panel for detailed error messages from the DecisionRules API.

  ---

  ## Resources

  * [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [DecisionRules Documentation](https://docs.decisionrules.io/doc)

  ---

ai_documentation_summary:
  {"purpose":"Integrate DecisionRules (a no-code business rules engine) into n8n workflows to execute business rules, run integration flows (asynchronous jobs), and manage rules, folders, and tags programmatically.","capabilities":["Solve Rule — send input data to DecisionRules API and return rule execution results (decision tables, decision trees, etc.)","Start Job — start an asynchronous Integration Flow job with input data and return job initiation details","Get Job Info — retrieve status and details for a job by Job ID (success, failure, in-process)","Cancel Job — cancel a running or queued job by Job ID","Get Rule — retrieve full rule details (content, version, input/output schemas) by ID, alias, or path","Create Rule — create a new rule from a request body","Create New Rule Version — create a new version of an existing rule","Update Rule — modify an existing rule (with constraints)","Update Rule Status — change rule status (e.g., pending ↔ published)","Delete Rule — delete a rule by ID, alias, or path"],"authentication":"Not specified in the provided README excerpt (requires DecisionRules credentials; likely an API key or token)","commonUseCases":["Execute decision logic (decision tables/trees) within an n8n workflow to return decisions or outputs","Start and manage asynchronous integration flow jobs and poll/cancel job status","Programmatically create, update, version, publish, or delete business rules","Organize and manage rules via folders and tags, and import/export rule sets","Analyze rules to find dependencies or duplicate rules for maintenance"],"limitations":["When updating a rule, you cannot change the rule ID, version, alias, or last update date","README excerpt does not document authentication details or rate limits (credentials section referenced but not shown)","Community-node installation requires enabling community nodes on n8n Cloud or agreeing to community-node risks for self-hosted installs"],"relatedNodes":[]}


node_type: @respond-io/n8n-nodes-respond-io.respondio
package_name: @respond-io/n8n-nodes-respond-io
display_name: Respond.io
description: Read, update, write and delete data from Respond.io
category: Community
development_style: declarative
version: 1.5.0
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: respond.io
author_github_url: https://github.com/respond-io/n8n-integration.git
npm_package_name: @respond-io/n8n-nodes-respond-io
npm_version: 1.5.0
community_fetched_at: 2026-02-19T14:41:52.816Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # n8n-nodes-respondio

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

  Respond.io is a customer conversation management platform that helps businesses manage customer conversations across multiple channels like WhatsApp, Facebook Messenger, Instagram, and more. This node provides comprehensive integration with the Respond.io API to automate customer communication workflows.

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

  - [Installation](#installation)
  - [Operations](#operations)
  - [Triggers](#triggers)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [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

  ### Respond.io Actions Node

  The Respond.io Actions node supports the following operations:

  #### Channels

  - **Get All Channels** - Retrieve all channels connected to your workspace

  #### Closing Notes

  - **Get All Closing Notes** - Retrieve all closing notes templates

  #### Comments

  - **Add Comment** - Add a comment to a conversation

  #### Contacts

  - **Create Contact** - Create a new contact
  - **Create or Update Contact** - Create or update an existing contact
  - **Update Contact** - Update an existing contact's information
  - **Find Contact** - Find a specific contact by identifier
  - **Get Many Contacts** - Retrieve multiple contacts with search filtering
  - **Add Tags** - Add tags to a contact
  - **Remove Tags** - Remove tags from a contact
  - **Add Space Tag** - Add a space tag to a contact
  - **Delete Space Tag** - Delete a space tag
  - **Update Space Tag** - Update a space tag
  - **Delete Contact** - Delete a contact
  - **Find Contact Channels** - Find channels associated with a contact

  #### Contact Fields

  - **Get All Custom Fields** - Retrieve all custom fields
  - **Find Custom Field** - Find a specific custom field
  - **Create Custom Field** - Create a new custom field

  #### Conversations

  - **Assign or Unassign Conversation** - Assign or unassign a conversation to/from a user
  - **Open or Close Conversation** - Open or close a conversation

  #### Lifecycle

  - **Update Contact Lifecycle** - Update a contact's lifecycle stage
  - **Remove Contact Lifecycle** - Remove a contact's lifecycle stage

  #### Messages

  - **Send Message** - Send a message to a contact (supports text, email, attachments, quick replies, WhatsApp templates, and custom payloads)
  - **Find Message** - Find a specific message by ID

  #### Users

  - **Find User** - Find a specific user by ID
  - **Get All Users** - Retrieve all users in the workspace

  ## Triggers

  ### Respond.io Trigger Node

  The Respond.io Trigger node can listen for the following events:

  - **New Incoming Message** - Triggered when a new message is received
  - **New Outgoing Message** - Triggered when a new outgoing message is sent
  - **New Comment** - Triggered when a new comment is added to a conversation
  - **Conversation Opened** - Triggered when a conversation is opened
  - **Conversation Closed** - Triggered when a conversation is closed
  - **New Contact** - Triggered when a new contact is created
  - **Contact Updated** - Triggered when a contact is updated
  - **Contact Assignee Updated** - Triggered when a contact's assignee is changed
  - **Contact Tag Updated** - Triggered when a contact's tags are modified
  - **Contact Lifecycle Updated** - Triggered when a contact's lifecycle stage changes

  ## Credentials

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

  1. **API Key** - Your Respond.io API key

  ### How to get your API Key

  1. Log in to your Respond.io account
  2. Go to **Settings** → **Integrations** → **N8N**
  3. Generate a new API key
  4. Copy the API key and use it in the credentials

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Tested with n8n versions**: 1.0.0+
  - **Node.js version**: >=18.0.0

  ## Usage

  ### Basic Workflow Example

  1. **Set up a trigger** - Use the Respond.io Trigger node to listen for new incoming messages
  2. **Process the message** - Use the Respond.io Actions node to find the contact and send a response
  3. **Add automation** - Create workflows that automatically assign conversations, update contact information, or send follow-up messages

  ### Advanced Workflow Example

  1. **New message trigger** → **Find contact** → **Check contact tags** → **Send automated response** → **Assign to team member**

  ### Message Types Supported

  The Send Message operation supports multiple message types:

  - **Text messages** - Simple text messages
  - **Email messages** - Rich email content with subject and body
  - **Attachments** - Send files and media
  - **Quick replies** - Interactive quick reply buttons
  - **WhatsApp templates** - Pre-approved WhatsApp message templates
  - **Custom payloads** - Custom message formats for specific channels

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Respond.io API Documentation](https://developers.respond.io/)
  - [Respond.io Platform](https://respond.io/)

  ## Version history

  ### Version 1.0.0

  - Initial release
  - Support for all major Respond.io API operations
  - Webhook triggers for real-time events
  - Comprehensive contact and conversation management
  - Multi-channel message sending capabilities

ai_documentation_summary:
  {"purpose":"Provides n8n nodes to integrate Respond.io into workflows, allowing read, create, update, delete and messaging operations against the Respond.io platform and to trigger workflows from Respond.io events.","capabilities":["Channels: Get All Channels","Closing Notes: Get All Closing Notes","Comments: Add Comment to a conversation","Contacts: Create Contact, Create or Update Contact, Update Contact, Find Contact, Get Many Contacts (with search), Delete Contact","Contact Tagging: Add Tags, Remove Tags, Add/Update/Delete Space Tag","Contact Channels: Find Contact Channels","Contact Fields: Get All Custom Fields, Find Custom Field, Create Custom Field","Conversations: Assign or Unassign Conversation, Open or Close Conversation","Lifecycle: Update Contact Lifecycle, Remove Contact Lifecycle","Messages: Send Message (supports text, email, attachments, quick replies, WhatsApp templates, custom payloads), Find Message by ID"],"authentication":"API key required","commonUseCases":["Listen for incoming messages and automatically send replies","Find or create contacts and update contact data when messages arrive","Automate conversation assignment to team members","Send multi-channel messages (text, email, attachments, quick replies, WhatsApp templates)","Add comments or tags to conversations/contacts as part of automation"],"limitations":["No explicit runtime or API usage limitations documented in the README","Compatibility requirements: n8n >= 1.0.0 and Node.js >= 18.0.0"],"relatedNodes":["Respond.io Actions (node)","Respond.io Trigger (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-02-19 14:41:52
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-02-19T14:41:52.816Z
ai_summary_generated_at: 2026-02-19 16:43:57
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"
    }
  ]

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":"Create digital wallet passes using the AddToWallet API from within n8n workflows, enabling automated generation of wallet-compatible pass files/payloads.","capabilities":["Create digital wallet passes via the AddToWallet API"],"authentication":"Not specified in README","commonUseCases":["Automatically generate wallet passes (boarding passes, tickets, coupons, loyalty cards) from workflow data","Create and attach a wallet pass to transactional emails or SMS notifications","Generate passes in bulk for marketing or event campaigns from a data source or spreadsheet","Trigger pass creation from form submissions or e‑commerce order events"],"limitations":["README does not list supported operations in detail","No credentials/authentication setup documented in README","Compatibility (n8n version) and tested versions are not provided","No usage examples, resources, or API reference links included in README"],"relatedNodes":[]}


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

updated_at: 2026-02-19 14:41:52
author_name: videodb-admin
author_github_url: https://github.com/video-db/n8n-nodes-videodb.git
npm_package_name: @videodb/n8n-nodes-videodb
npm_version: 1.1.0
community_fetched_at: 2026-02-19T14:41:52.817Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "fetchVideos",
      "options": [
        {
          "name": "Index Spoken Words",
          "value": "indexSpokenWords",
          "action": "Index spoken words",
          "description": "Perform semantic indexing on the spoken words in a video"
        },
        {
          "name": "Get Transcript",
          "value": "getTranscript",
          "action": "Get Transcript",
          "description": "Get transcript for a video"
        },
        {
          "name": "Search in a Video",
          "value": "searchInVideo",
          "action": "Search in a Video",
          "description": "Search for a query within a video"
        },
        {
          "name": "Generate Stream",
          "value": "generateStream",
          "action": "Generate a video stream",
          "description": "Generates a stream URL for the video"
        },
        {
          "name": "Index Scenes",
          "value": "indexScenes",
          "action": "Index scenes",
          "description": "Indexes the scenes of the video"
        },
        {
          "name": "List Scene Indexes",
          "value": "listSceneIndexes",
          "action": "List scene indexes",
          "description": "Lists all the scene indexes for the video"
        },
        {
          "name": "Get Scene Index",
          "value": "getSceneIndex",
          "action": "Get scene index",
          "description": "Retrieves a specific scene index"
        },
        {
          "name": "Delete Scene Index",
          "value": "deleteSceneIndex",
          "action": "Delete scene index",
          "description": "Deletes a specific scene index"
        },
        {
          "name": "Add Subtitle",
          "value": "addSubtitle",
          "action": "Add subtitles",
          "description": "Adds subtitles to the video"
        },
        {
          "name": "Translate Transcript",
          "value": "translateTranscript",
          "action": "Translate transcript",
          "description": "Translate transcript of a video to a given language"
        },
        {
          "name": "Generate Audio URL",
          "value": "generateAudioUrl",
          "action": "Generate Audio URL",
          "description": "Generates a temporary, signed URL to access the audio file"
        },
        {
          "name": "Generate Image URL",
          "value": "generateImageUrl",
          "action": "Generate Image URL",
          "description": "Generates a temporary, signed URL to access the image file"
        },
        {
          "name": "Create Collection",
          "value": "createCollection",
          "action": "Create Collection",
          "description": "Creates a new collection"
        },
        {
          "name": "Download",
          "value": "download",
          "action": "Download",
          "description": "Requests a download URL for a given stream link"
        },
        {
          "name": "Get Collection",
          "value": "getCollection",
          "action": "Get Collection",
          "description": "Fetches a single collection by its ID"
        },
        {
          "name": "Get Collections",
          "value": "getCollections",
          "action": "Get Collections",
          "description": "Fetches all collections for the user"
        },
        {
          "name": "Update Collection",
          "value": "updateCollection",
          "action": "Update Collection",
          "description": "Updates a collection's name or description"
        },
        {
          "name": "YouTube Search",
          "value": "youtubeSearch",
          "action": "YouTube Search",
          "description": "Performs a YouTube search within a collection"
        },
        {
          "name": "Delete Audio",
          "value": "deleteAudio",
          "action": "Delete Audio",
          "description": "Deletes a specific audio asset by its ID from a collection"
        },
        {
          "name": "Delete Image",
          "value": "deleteImage",
          "action": "Delete Image",
          "description": "Deletes a specific image by its ID from a collection"
        },
        {
          "name": "Delete Video",
          "value": "deleteVideo",
          "action": "Delete Video",
          "description": "Deletes a specific video by its ID from a collection"
        },
        {
          "name": "Delete Collection",
          "value": "deleteCollection",
          "action": "Delete Collection",
          "description": "Deletes a collection and all its assets"
        },
        {
          "name": "Dub Video",
          "value": "dubVideo",
          "action": "Dub Video",
          "description": "Dubs a video into a different language"
        },
        {
          "name": "Generate Image",
          "value": "generateImage",
          "action": "Generate Image",
          "description": "Generates an image from a text prompt"
        },
        {
          "name": "Generate Music",
          "value": "generateMusic",
          "action": "Generate Music",
          "description": "Generates music from a text prompt"
        },
        {
          "name": "Generate Sound Effect",
          "value": "generateSoundEffect",
          "action": "Generate Sound Effect",
          "description": "Generates a sound effect from a text prompt"
        },
        {
          "name": "Generate Voice",
          "value": "generateVoice",
          "action": "Generate Voice",
          "description": "Generates voice from text"
        },
        {
          "name": "Generate Video",
          "value": "generateVideo",
          "action": "Generate Video",
          "description": "Generates a video from a text prompt"
        },
        {
          "name": "Generate Text",
          "value": "generateText",
          "action": "Generate Text",
          "description": "Generates text from a prompt using AI models"
        },
        {
          "name": "Get Audio",
          "value": "getAudio",
          "action": "Get Audio",
          "description": "Retrieves a specific audio asset by its ID from a collection"
        },
        {
          "name": "Get Audios",
          "value": "getAudios",
          "action": "Get Audios",
          "description": "Retrieves a list of all audio assets within a collection"
        },
        {
          "name": "Get Image",
          "value": "getImage",
          "action": "Get Image",
          "description": "Retrieves a specific image by its ID from a collection"
        },
        {
          "name": "Get Images",
          "value": "getImages",
          "action": "Get Images",
          "description": "Retrieves a list of all images within a collection"
        },
        {
          "name": "Get Video",
          "value": "getVideo",
          "action": "Get Video",
          "description": "Retrieves a specific video by its ID from a collection"
        },
        {
          "name": "Get Videos",
          "value": "getVideos",
          "action": "Get Videos",
          "description": "Retrieves a list of all videos within a collection"
        },
        {
          "name": "Search in a Collection",
          "value": "search",
          "action": "Search in a Collection",
          "description": "Performs a search query across the collection"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload",
          "description": "Uploads a media file (video, audio, or image) from a URL"
        },
        {
          "name": "Record Meeting",
          "value": "recordMeeting",
          "action": "Record Meeting",
          "description": "Records a meeting using a bot and saves it to the collection"
        },
        {
          "name": "Get Meeting",
          "value": "getMeeting",
          "action": "Get Meeting",
          "description": "Retrieves a specific meeting recording by its ID from a collection"
        },
        {
          "name": "Compile Timeline (VideoDB's Video Editor)",
          "value": "compileTimeline",
          "action": "Compile Timeline (VideoDB's Video Editor)",
          "description": "VideoDB's Video Editor - Build a multi-track timeline (video + overlays) and get a stream/player URL"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Index Spoken Words",
      "value": "indexSpokenWords",
      "action": "Index spoken words",
      "description": "Perform semantic indexing on the spoken words in a video"
    },
    {
      "name": "Get Transcript",
      "value": "getTranscript",
      "action": "Get Transcript",
      "description": "Get transcript for a video"
    },
    {
      "name": "Search in a Video",
      "value": "searchInVideo",
      "action": "Search in a Video",
      "description": "Search for a query within a video"
    },
    {
      "name": "Generate Stream",
      "value": "generateStream",
      "action": "Generate a video stream",
      "description": "Generates a stream URL for the video"
    },
    {
      "name": "Index Scenes",
      "value": "indexScenes",
      "action": "Index scenes",
      "description": "Indexes the scenes of the video"
    },
    {
      "name": "List Scene Indexes",
      "value": "listSceneIndexes",
      "action": "List scene indexes",
      "description": "Lists all the scene indexes for the video"
    },
    {
      "name": "Get Scene Index",
      "value": "getSceneIndex",
      "action": "Get scene index",
      "description": "Retrieves a specific scene index"
    },
    {
      "name": "Delete Scene Index",
      "value": "deleteSceneIndex",
      "action": "Delete scene index",
      "description": "Deletes a specific scene index"
    },
    {
      "name": "Add Subtitle",
      "value": "addSubtitle",
      "action": "Add subtitles",
      "description": "Adds subtitles to the video"
    },
    {
      "name": "Translate Transcript",
      "value": "translateTranscript",
      "action": "Translate transcript",
      "description": "Translate transcript of a video to a given language"
    },
    {
      "name": "Generate Audio URL",
      "value": "generateAudioUrl",
      "action": "Generate Audio URL",
      "description": "Generates a temporary, signed URL to access the audio file"
    },
    {
      "name": "Generate Image URL",
      "value": "generateImageUrl",
      "action": "Generate Image URL",
      "description": "Generates a temporary, signed URL to access the image file"
    },
    {
      "name": "Create Collection",
      "value": "createCollection",
      "action": "Create Collection",
      "description": "Creates a new collection"
    },
    {
      "name": "Download",
      "value": "download",
      "action": "Download",
      "description": "Requests a download URL for a given stream link"
    },
    {
      "name": "Get Collection",
      "value": "getCollection",
      "action": "Get Collection",
      "description": "Fetches a single collection by its ID"
    },
    {
      "name": "Get Collections",
      "value": "getCollections",
      "action": "Get Collections",
      "description": "Fetches all collections for the user"
    },
    {
      "name": "Update Collection",
      "value": "updateCollection",
      "action": "Update Collection",
      "description": "Updates a collection's name or description"
    },
    {
      "name": "YouTube Search",
      "value": "youtubeSearch",
      "action": "YouTube Search",
      "description": "Performs a YouTube search within a collection"
    },
    {
      "name": "Delete Audio",
      "value": "deleteAudio",
      "action": "Delete Audio",
      "description": "Deletes a specific audio asset by its ID from a collection"
    },
    {
      "name": "Delete Image",
      "value": "deleteImage",
      "action": "Delete Image",
      "description": "Deletes a specific image by its ID from a collection"
    },
    {
      "name": "Delete Video",
      "value": "deleteVideo",
      "action": "Delete Video",
      "description": "Deletes a specific video by its ID from a collection"
    },
    {
      "name": "Delete Collection",
      "value": "deleteCollection",
      "action": "Delete Collection",
      "description": "Deletes a collection and all its assets"
    },
    {
      "name": "Dub Video",
      "value": "dubVideo",
      "action": "Dub Video",
      "description": "Dubs a video into a different language"
    },
    {
      "name": "Generate Image",
      "value": "generateImage",
      "action": "Generate Image",
      "description": "Generates an image from a text prompt"
    },
    {
      "name": "Generate Music",
      "value": "generateMusic",
      "action": "Generate Music",
      "description": "Generates music from a text prompt"
    },
    {
      "name": "Generate Sound Effect",
      "value": "generateSoundEffect",
      "action": "Generate Sound Effect",
      "description": "Generates a sound effect from a text prompt"
    },
    {
      "name": "Generate Voice",
      "value": "generateVoice",
      "action": "Generate Voice",
      "description": "Generates voice from text"
    },
    {
      "name": "Generate Video",
      "value": "generateVideo",
      "action": "Generate Video",
      "description": "Generates a video from a text prompt"
    },
    {
      "name": "Generate Text",
      "value": "generateText",
      "action": "Generate Text",
      "description": "Generates text from a prompt using AI models"
    },
    {
      "name": "Get Audio",
      "value": "getAudio",
      "action": "Get Audio",
      "description": "Retrieves a specific audio asset by its ID from a collection"
    },
    {
      "name": "Get Audios",
      "value": "getAudios",
      "action": "Get Audios",
      "description": "Retrieves a list of all audio assets within a collection"
    },
    {
      "name": "Get Image",
      "value": "getImage",
      "action": "Get Image",
      "description": "Retrieves a specific image by its ID from a collection"
    },
    {
      "name": "Get Images",
      "value": "getImages",
      "action": "Get Images",
      "description": "Retrieves a list of all images within a collection"
    },
    {
      "name": "Get Video",
      "value": "getVideo",
      "action": "Get Video",
      "description": "Retrieves a specific video by its ID from a collection"
    },
    {
      "name": "Get Videos",
      "value": "getVideos",
      "action": "Get Videos",
      "description": "Retrieves a list of all videos within a collection"
    },
    {
      "name": "Search in a Collection",
      "value": "search",
      "action": "Search in a Collection",
      "description": "Performs a search query across the collection"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload",
      "description": "Uploads a media file (video, audio, or image) from a URL"
    },
    {
      "name": "Record Meeting",
      "value": "recordMeeting",
      "action": "Record Meeting",
      "description": "Records a meeting using a bot and saves it to the collection"
    },
    {
      "name": "Get Meeting",
      "value": "getMeeting",
      "action": "Get Meeting",
      "description": "Retrieves a specific meeting recording by its ID from a collection"
    },
    {
      "name": "Compile Timeline (VideoDB's Video Editor)",
      "value": "compileTimeline",
      "action": "Compile Timeline (VideoDB's Video Editor)",
      "description": "VideoDB's Video Editor - Build a multi-track timeline (video + overlays) and get a stream/player URL"
    }
  ]

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

  # n8n-nodes-videodb

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

  Power your video and media automation with VideoDB. Access advanced video indexing, search, and management features. Get started at https://console.videodb.io

  [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 supports the following operations:

  **Video**
  - Fetch, upload, index, search, and manage videos
  - Get transcripts and generate streams
  - Translate transcripts to any language
  - Scene extraction and indexing
  - Add subtitles

  **Timeline Editor**
  - Compile multi-track timelines with inline videos
  - Overlay images, audio, and text with custom styling

  **Audio & Images**
  - Upload and manage audio/image assets
  - Generate voice and URLs

  **Collections**
  - Create, list, and manage collections

  ## Credentials

  An API key is required in order to issue calls to the VideoDB API. Sign up to retrieve your API key at https://console.videodb.io.

  ## Compatibility

  Tested locally against n8n v1.93.0.

  ## Usage

  You should familiarize 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 VideoDB API documentation.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [VideoDB API documentation](https://docs.videodb.io)

  ## Development

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

  1. Install _n8n_ globally (`npm add -g n8n`).
  2. Set the `N8N_CUSTOM_EXTENSIONS` environment variable to the `/dist` directory of this repository.
  3. Enable hot reloading by setting the `N8N_DEV_RELOAD` environment variable to `true`.
  4. Run `npm run dev` to watch for changes and automatically rebuild the node as you develop.
  5. Start n8n with `n8n start` to launch the editor UI.
  6. Open the n8n editor UI in your browser.

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

  > **Note:** When launching n8n locally for the first time, you will be prompted to create a user account. If you forget your credentials, you can reset n8n to its initial state by running `n8n user-management:reset`.

  ## Version history

  - 1.1.0 - Added `Translate Transcript` operation for videos
  - 1.0.9 - Fixed timeline overlay text style parsing; added helpful notice in credentials and UTM tracking
  - 1.0.8 - Explicitly pass `error` message in JSON output when `continueOnFail` is enabled
  - 1.0.7 - Added `pairedItem` item linking and robust error handling with `continueOnFail` and `NodeOperationError`
  - 1.0.6 - `generateVoice` now sends `audio_type: voice`
  - 1.0.5 - Added the `Create Timeline (VideoDB's Video Editor)` action
  - 1.0.4 - README update
  - 1.0.3 - Dropdowns for `collection`, `image`, `audio` and `video` IDs along with minor bug fixes
  - 1.0.2 - Filtered nodes to most useful ones
  - 1.0.1 - Filtered nodes to most useful ones
  - 1.0.0 — Initial release of the VideoDB API n8n node

ai_documentation_summary:
  {"purpose":"Provides n8n workflow integration with the VideoDB API to upload, index, search, transcribe, translate, edit, and manage video, audio, image assets and collections.","capabilities":["Upload, fetch, update, and manage videos","Index videos and extract scenes for searchable insights","Search video content and indexed metadata","Get transcripts, translate transcripts to any language, and generate streaming outputs","Add subtitles to videos","Compile multi-track timelines (video editor) and export timelines","Overlay images, audio, and styled text on timelines","Upload and manage audio and image assets","Generate voice audio from text (generateVoice)","Create, list, and manage collections"],"authentication":"API key required","commonUseCases":["Automate ingestion and indexing of new video assets into VideoDB","Extract transcripts from videos and translate them for multilingual workflows","Search across indexed video content and metadata to route or tag media","Assemble and export multi-track timelines or apply overlays (images/audio/text) programmatically","Generate voice audio and manage audio/image assets for media pipelines"],"limitations":["Requires a VideoDB API key (sign up at https://console.videodb.io)","README notes that users should familiarize themselves with VideoDB response object formats (see API docs)","Compatibility tested locally against n8n v1.93.0 — other n8n versions not explicitly tested"],"relatedNodes":[]}


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

updated_at: 2026-02-19 14:41:52
author_name: joelrose
author_github_url: https://github.com/oregister/n8n-nodes-openregister.git
npm_package_name: @oregister/n8n-nodes-openregister
npm_version: 0.1.1
community_fetched_at: 2026-02-19T14:41:52.818Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "company",
      "options": [
        {
          "name": "Company",
          "value": "company"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Get Company Details",
          "value": "companyDetails",
          "action": "Get company details",
          "routing": {
            "request": {
              "url": "={{\"/v1/company/\" + encodeURIComponent($parameter[\"companyId\"])}}",
              "method": "GET"
            }
          },
          "description": "Fetch company details by ID"
        },
        {
          "name": "Get Company Financials",
          "value": "companyFinancials",
          "action": "Get company financials",
          "routing": {
            "request": {
              "url": "={{\"/v1/company/\" + encodeURIComponent($parameter[\"companyId\"]) + \"/financials\"}}",
              "method": "GET"
            }
          },
          "description": "Fetch company financials by ID"
        },
        {
          "name": "Get Company Holdings",
          "value": "companyHoldings",
          "action": "Get company holdings",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "holdings"
                  }
                }
              ]
            },
            "request": {
              "url": "={{\"/v1/company/\" + encodeURIComponent($parameter[\"companyId\"]) + \"/holdings\"}}",
              "method": "GET"
            }
          },
          "description": "Fetch companies this company holds stakes in"
        },
        {
          "name": "Get Company Owners",
          "value": "companyOwners",
          "action": "Get company owners",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "owners"
                  }
                }
              ]
            },
            "request": {
              "url": "={{\"/v1/company/\" + encodeURIComponent($parameter[\"companyId\"]) + \"/owners\"}}",
              "method": "GET"
            }
          },
          "description": "Fetch company owners by ID"
        },
        {
          "name": "Search for a Company",
          "value": "search",
          "action": "Get companies by name",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "results"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "query": "={{$parameter[\"query\"]}}"
              },
              "url": "=/v1/autocomplete/company",
              "method": "GET"
            }
          },
          "description": "Search companies by name"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "company"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Company Details",
      "value": "companyDetails",
      "action": "Get company details",
      "routing": {
        "request": {
          "url": "={{\"/v1/company/\" + encodeURIComponent($parameter[\"companyId\"])}}",
          "method": "GET"
        }
      },
      "description": "Fetch company details by ID"
    },
    {
      "name": "Get Company Financials",
      "value": "companyFinancials",
      "action": "Get company financials",
      "routing": {
        "request": {
          "url": "={{\"/v1/company/\" + encodeURIComponent($parameter[\"companyId\"]) + \"/financials\"}}",
          "method": "GET"
        }
      },
      "description": "Fetch company financials by ID"
    },
    {
      "name": "Get Company Holdings",
      "value": "companyHoldings",
      "action": "Get company holdings",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "holdings"
              }
            }
          ]
        },
        "request": {
          "url": "={{\"/v1/company/\" + encodeURIComponent($parameter[\"companyId\"]) + \"/holdings\"}}",
          "method": "GET"
        }
      },
      "description": "Fetch companies this company holds stakes in"
    },
    {
      "name": "Get Company Owners",
      "value": "companyOwners",
      "action": "Get company owners",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "owners"
              }
            }
          ]
        },
        "request": {
          "url": "={{\"/v1/company/\" + encodeURIComponent($parameter[\"companyId\"]) + \"/owners\"}}",
          "method": "GET"
        }
      },
      "description": "Fetch company owners by ID"
    },
    {
      "name": "Search for a Company",
      "value": "search",
      "action": "Get companies by name",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "results"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "query": "={{$parameter[\"query\"]}}"
          },
          "url": "=/v1/autocomplete/company",
          "method": "GET"
        }
      },
      "description": "Search companies by name"
    }
  ]

npm_readme:
  # n8n-nodes-openregister

  This package provides n8n community nodes to interact with the OpenRegister API from your workflows. See the official documentation at [docs.openregister.de](https://docs.openregister.de).

  OpenRegister provides programmatic access to structured company registry data from official sources in Germany. See what data exactly are available [here](https://docs.openregister.de/coverage).

  [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 to add this package (`n8n-nodes-openregister`) to your n8n instance.

  ## Operations

  Resource: Company

  - **Search for a Company:** Search companies by name. Endpoint: `/v1/autocomplete/company` (query param: `query`).
  - **Get Company Details:** Fetch company details by ID. Endpoint: `/v1/company/{companyId}`.
  - **Get Company Financials:** Fetch company financials by ID. Endpoint: `/v1/company/{companyId}/financials`.
  - **Get Company Owners:** Fetch company owners by ID. Endpoint: `/v1/company/{companyId}/owners`.
  - **Get Company Holdings:** Fetch companies this company holds stakes in. Endpoint: `/v1/company/{companyId}/holdings`.

  The company ID is a unique identifier for a company inside the OpenRegister ecosystem. You can get the company ID for a company in the results of the `Search for a Company` operation.

  ## Credentials

  This node uses API key authentication via an `Authorization: Bearer` header.

  How to get an API key:

  1. Create an account at [openregister.de](https://openregister.de) and sign in.
  2. In your dashboard, open the API keys section and create a new API key.
  3. Copy the key value. Keep it secure.

  Details and up-to-date instructions: see [Authentication](https://docs.openregister.de/authentication).

  In n8n, create credentials of type `OpenRegister API` and set:

  - Base URL: `https://api.openregister.de` (default)
  - API Key: your generated key

  Requests are sent with:

  ```
  Authorization: Bearer YOUR_API_KEY
  ```

  ## Compatibility

  - n8n Nodes API version: 1
  - Node.js: >= 20.15

  ## Usage

  - Search companies: Choose resource `Company` and operation `Search for a Company`, set "Company Name" (`query`). The node returns the `results` array of the matching companies.
  - Get details/financials/owners/holdings: Use the `id` from a previous search as `Company ID`.

  An example workflow doing exactly that is available [here](./examples/openregister-example-workflow.json).
  To try it out, just add a company name as the search parameter in the first node and click _Execute Workflow_.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [OpenRegister Documentation](https://docs.openregister.de)
  - [OpenRegister Authentication](https://docs.openregister.de/authentication)
  - [OpenRegister Coverage](https://docs.openregister.de/coverage)
  - [OpenRegister Example Workflow](./examples/openregister-example-workflow.json)

  ## Version history

  - 0.1.0: Initial release

ai_documentation_summary:
  {"purpose":"Provide n8n nodes to interact with the OpenRegister API so workflows can search German company registry data and retrieve company details and related records.","capabilities":["Search for a Company by name (GET /v1/autocomplete/company with query param `query`)","Get Company Details by company ID (GET /v1/company/{companyId})","Get Company Financials by company ID (GET /v1/company/{companyId}/financials)","Get Company Owners by company ID (GET /v1/company/{companyId}/owners)","Get Company Holdings by company ID (GET /v1/company/{companyId}/holdings)"],"authentication":"API key required (Authorization: Bearer <API_KEY>). In n8n create credentials type 'OpenRegister API' with Base URL (default https://api.openregister.de) and API Key.","commonUseCases":["Lookup companies by name to obtain company IDs for downstream processing","Enrich records with full company details inside workflows","Retrieve company financial reports for reporting or analysis pipelines","Fetch company ownership information for KYC or due-diligence automations","Discover holdings / subsidiaries a company has for entity relationship mapping"],"limitations":["Only the Company resource and the five listed operations are provided (no other OpenRegister resources exposed)","Requires an OpenRegister API key/account (no anonymous access)","Compatibility constraints: n8n Nodes API v1 and Node.js >= 20.15"],"relatedNodes":[]}


node_type: n8n-nodes-presenton.presenton
package_name: n8n-nodes-presenton
display_name: Presenton
description: Interact with presenton API (async generation + status checking)
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: badu5
author_github_url: https://github.com/shivarajbadu/
npm_package_name: n8n-nodes-presenton
npm_version: 1.2.7
community_fetched_at: 2026-02-19T14:41:52.819Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "generateAsync",
      "options": [
        {
          "name": "Generate Presentation (Async)",
          "value": "generateAsync",
          "action": "Initiate presentation generation",
          "description": "Initiate presentation generation asynchronously"
        },
        {
          "name": "Check Presentation Status",
          "value": "checkStatus",
          "action": "Poll or check until presentation is done",
          "description": "Poll or check until presentation is done"
        },
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload a file to presenton to reference later",
          "description": "Upload a file to Presenton to reference later"
        }
      ],
      "required": true,
      "description": "What you want to do with Presenton",
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Presentation (Async)",
      "value": "generateAsync",
      "action": "Initiate presentation generation",
      "description": "Initiate presentation generation asynchronously"
    },
    {
      "name": "Check Presentation Status",
      "value": "checkStatus",
      "action": "Poll or check until presentation is done",
      "description": "Poll or check until presentation is done"
    },
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload a file to presenton to reference later",
      "description": "Upload a file to Presenton to reference later"
    }
  ]

npm_readme:
  ## Presenton for n8n

  Generate professional presentations with the Presenton API directly from your n8n workflows. This community node supports asynchronous presentation generation, file uploads, and task status checks.

  Homepage: [presenton.ai](https://presenton.ai) • API docs: [presenton.ai/docs/api-reference](https://presenton.ai/docs/api-reference)

  ### Features

  - **Generate Presentation (Async)**: Kick off a background job to create PPTX or PDF
  - **Check Presentation Status**: Poll a task by ID until it’s complete
  - **Upload File**: Upload binary files and reference them during generation

  ## Installation

  ### Install in n8n (Community nodes)

  1. In n8n, go to Settings → Community Nodes → Install.
  2. Search for or enter the package name: `n8n-nodes-Presenton`.
  3. Confirm installation and restart n8n if prompted.

  ### Self-hosted filesystem install

  If you mount community nodes from disk, add this package to your custom nodes directory and install:

  ```bash
  npm install n8n-nodes-Presenton
  ```

  Minimum Node.js version: 20

  ## Credentials

  Create credentials of type `Presenton API`:

  - **API Key**: Your Presenton API key
  - **Base API URL** (optional): Override the default `https://api.presenton.ai` for staging or self-hosted deployments

  The node adds the `Authorization: Bearer <apiKey>` header automatically.

  ## Node operations

  ### Generate Presentation (Async)

  Starts a background job: `POST /api/v1/ppt/presentation/generate/async`

  - **content**: Main content to generate from
  - **slides_markdown**: Optional list of slide markdown strings
  - **instructions**: Additional guidance for the generator
  - **tone**: `default | professional | educational | funny | sale_pitch | causal`
  - **verbosity**: `standard | concise | text-heavy`
  - **web_search**: Allow web search during generation (boolean)
  - **image_type**: `stock | ai-generated`
  - **theme**: Theme name (string)
  - **noOfSlides**: Number of slides (number)
  - **language**: e.g. `English`
  - **template**: e.g. `general`
  - **include_table_of_contents**: boolean
  - **include_title_slide**: boolean
  - **files**: A file ID returned by the Upload File operation (string[])
  - **export_as**: `pptx | pdf`

  The node cleans empty values before sending. Response typically includes a task identifier you can pass to Check Presentation Status.

  ### Check Presentation Status

  Checks a task: `GET /api/v1/ppt/presentation/status/{taskId}`

  - **taskId**: The ID returned by Generate Presentation (Async)

  Returns the current status. When complete, the API usually includes result metadata (such as download links) defined by Presenton.

  ### Upload File

  Uploads a binary file: `POST /api/v1/ppt/files/upload`

  - **binaryPropertyName**: Name of the binary property on the incoming item (default: `data`)

  Returns a file ID you can set in the `files` field of the Generate Presentation (Async) operation.

  ## Typical workflow examples

  ### Generate a presentation from text

  1. Set operation to “Generate Presentation (Async)”.
  2. Fill in `content`, choose `export_as` (e.g. `pptx`), adjust options (tone, verbosity, slides, etc.).
  3. Use “Check Presentation Status” with the returned `taskId` until status is complete.

  ### Upload then generate

  1. Add a node with operation “Upload File” and set `binaryPropertyName` to the property holding your file.
  2. From its response, read the returned `file id`.
  3. Pass that id into the `files` field of “Generate Presentation (Async)”, then check status as above.

  ## Error handling

  - The node validates required parameters and throws meaningful errors (e.g., invalid slide count, missing task ID, or missing binary data).
  - If you enable “Continue On Fail”, errors are returned in the item’s JSON so your workflow can handle them.

  ## Development

  Clone, install, and build:

  ```bash
  npm i
  npm run dev   # TypeScript watch
  # or
  npm run build # build to dist
  ```

  Linting and formatting:

  ```bash
  npm run lint
  npm run lintfix
  npm run format
  ```

  To test locally, follow n8n’s guide to running custom nodes and point n8n to your built `dist` directory.

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"Start asynchronous presentation generation (PPTX or PDF), upload supporting files, and poll task status using the Presenton API from n8n workflows.","capabilities":["Generate Presentation (Async) — start background job to create PPTX or PDF with options (content, slides_markdown, instructions, tone, verbosity, web_search, image_type, theme, noOfSlides, language, template, include_table_of_contents, include_title_slide, files, export_as)","Check Presentation Status — poll task status by taskId and receive result metadata/download links when complete","Upload File — upload binary files and return a file ID to reference in generation requests","Automatic Authorization header (Authorization: Bearer <apiKey>) and automatic cleaning of empty request values","Validation of required parameters and meaningful error messages (e.g., invalid slide count, missing task ID, missing binary data)"],"authentication":"API key required (Presenton API key used as Bearer token). Optional custom Base API URL can be provided to override https://api.presenton.ai.","commonUseCases":["Generate a presentation from plain text or markdown and poll until the file is ready for download","Upload binary assets (images, files) then include their file IDs in a generation job to incorporate them into slides","Automate generation of tailored slide decks with different tones, verbosity levels, themes, templates, and languages","Create workflows that kick off async jobs and check status to retrieve download links or metadata when complete"],"limitations":["Generation is asynchronous only — no synchronous generation endpoint; workflows must poll status (no webhook/callback flow described)","Export formats limited to pptx or pdf (as documented)","Image types limited to 'stock' or 'ai-generated' and tone/verbosity options are limited to the predefined values","Binary upload requires the node to receive binary data on a named property (default 'data'); missing binary data causes errors","README does not document rate limits, webhook support, or streaming of progress updates"],"relatedNodes":[]}


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

updated_at: 2026-02-19 14:41:52
author_name: matheins
author_github_url: https://github.com/steuerboard/n8n-nodes-steuerboard.git
npm_package_name: @steuerboard/n8n-nodes-steuerboard
npm_version: 1.8.0
community_fetched_at: 2026-02-19T14:41:52.819Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "client",
      "options": [
        {
          "name": "Admin User",
          "value": "adminUser"
        },
        {
          "name": "Client",
          "value": "client"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "User",
          "value": "user"
        },
        {
          "name": "Workspace",
          "value": "workspace"
        },
        {
          "name": "Workspace Member",
          "value": "workspaceMember"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List accountant users",
          "routing": {
            "request": {
              "url": "=/admin/users",
              "method": "GET"
            }
          },
          "description": "Returns a paginated list of accountant users"
        },
        {
          "name": "Get by ID",
          "value": "get",
          "action": "Get an accountant user by ID",
          "routing": {
            "request": {
              "url": "=/admin/users/{{$parameter.userId}}",
              "method": "GET"
            }
          },
          "description": "Returns a single accountant user by ID"
        },
        {
          "name": "Invite",
          "value": "create",
          "action": "Invite an accountant user",
          "routing": {
            "request": {
              "url": "=/admin/users",
              "method": "POST"
            }
          },
          "description": "Invites a new accountant user and returns the created record"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an accountant user",
          "routing": {
            "request": {
              "url": "=/admin/users/{{$parameter.userId}}",
              "method": "PATCH"
            }
          },
          "description": "Updates an accountant user by ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an accountant user",
          "routing": {
            "request": {
              "url": "=/admin/users/{{$parameter.userId}}",
              "method": "DELETE"
            }
          },
          "description": "Deletes an accountant user by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "adminUser"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a client",
          "routing": {
            "request": {
              "url": "=/admin/clients",
              "method": "POST"
            }
          },
          "description": "Creates a new client for the accountant"
        },
        {
          "name": "Get by ID",
          "value": "get",
          "action": "Get a client by ID",
          "routing": {
            "request": {
              "url": "=/admin/clients/{{$parameter.clientId}}",
              "method": "GET"
            }
          },
          "description": "Returns a single client object by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List clients",
          "routing": {
            "request": {
              "url": "=/admin/clients",
              "method": "GET"
            }
          },
          "description": "Returns a list of clients"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a client",
          "routing": {
            "request": {
              "url": "=/admin/clients/{{$parameter.clientId}}",
              "method": "PATCH"
            }
          },
          "description": "Updates a client by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List users",
          "routing": {
            "request": {
              "url": "=/users",
              "method": "GET",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Returns a paginated list of client users"
        },
        {
          "name": "Get by ID",
          "value": "get",
          "action": "Get a user by ID",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter.userId}}",
              "method": "GET",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Returns a single client user by ID"
        },
        {
          "name": "Invite",
          "value": "create",
          "action": "Invite a user",
          "routing": {
            "request": {
              "url": "=/users",
              "method": "POST",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Invites a new client user and returns the created record"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a user",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter.userId}}",
              "method": "PATCH",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Updates a client user by ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a user",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter.userId}}",
              "method": "DELETE",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Deletes a client user by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List workspaces",
          "routing": {
            "request": {
              "url": "=/workspaces",
              "method": "GET",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Returns a list of workspaces"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a workspace",
          "routing": {
            "request": {
              "url": "=/workspaces",
              "method": "POST",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Creates a new workspace and returns the created workspace"
        },
        {
          "name": "Get by ID",
          "value": "get",
          "action": "Get a workspace by ID",
          "routing": {
            "request": {
              "url": "=/workspaces/{{$parameter.workspaceId}}",
              "method": "GET",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Returns a single workspace object by ID"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a workspace",
          "routing": {
            "request": {
              "url": "=/workspaces/{{$parameter.workspaceId}}",
              "method": "PATCH",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Updates a workspace by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workspace"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List workspace members",
          "routing": {
            "request": {
              "url": "=/workspaces/{{$parameter.workspaceId}}/members",
              "method": "GET",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Returns workspace members for a workspace"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a workspace member",
          "routing": {
            "request": {
              "url": "=/workspaces/{{$parameter.workspaceId}}/members",
              "method": "POST",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Creates a new workspace member"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Remove a workspace member",
          "routing": {
            "request": {
              "url": "=/workspaces/{{$parameter.workspaceId}}/members",
              "method": "DELETE",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Removes a workspace member from a workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workspaceMember"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List files",
          "routing": {
            "request": {
              "url": "=/files",
              "method": "GET",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Returns a paginated list of files"
        },
        {
          "name": "Upload",
          "value": "create",
          "action": "Upload a file",
          "routing": {
            "request": {
              "url": "=/files",
              "method": "POST",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Uploads a new file"
        },
        {
          "name": "Get by ID",
          "value": "get",
          "action": "Get a file by ID",
          "routing": {
            "request": {
              "url": "=/files/{{$parameter.fileId}}",
              "method": "GET",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Returns a single file object by ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a file",
          "routing": {
            "request": {
              "url": "=/files/{{$parameter.fileId}}",
              "method": "DELETE",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Deletes a file by ID"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a file",
          "routing": {
            "request": {
              "url": "=/files/{{$parameter.fileId}}",
              "method": "PATCH",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Updates a file by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List tasks",
          "routing": {
            "request": {
              "url": "=/tasks",
              "method": "GET",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Returns a list of tasks"
        },
        {
          "name": "Get by ID",
          "value": "get",
          "action": "Get a task by ID",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}",
              "method": "GET",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Returns a single task object by ID"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task",
          "routing": {
            "request": {
              "url": "=/tasks",
              "method": "POST",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Creates a new task"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}",
              "method": "PATCH",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Updates an existing task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}",
              "method": "DELETE",
              "headers": {
                "x-client-id": "={{ $parameter.clientId }}"
              }
            }
          },
          "description": "Deletes a task by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "List",
      "value": "list",
      "action": "List accountant users",
      "routing": {
        "request": {
          "url": "=/admin/users",
          "method": "GET"
        }
      },
      "description": "Returns a paginated list of accountant users"
    },
    {
      "name": "Get by ID",
      "value": "get",
      "action": "Get an accountant user by ID",
      "routing": {
        "request": {
          "url": "=/admin/users/{{$parameter.userId}}",
          "method": "GET"
        }
      },
      "description": "Returns a single accountant user by ID"
    },
    {
      "name": "Invite",
      "value": "create",
      "action": "Invite an accountant user",
      "routing": {
        "request": {
          "url": "=/admin/users",
          "method": "POST"
        }
      },
      "description": "Invites a new accountant user and returns the created record"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an accountant user",
      "routing": {
        "request": {
          "url": "=/admin/users/{{$parameter.userId}}",
          "method": "PATCH"
        }
      },
      "description": "Updates an accountant user by ID"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an accountant user",
      "routing": {
        "request": {
          "url": "=/admin/users/{{$parameter.userId}}",
          "method": "DELETE"
        }
      },
      "description": "Deletes an accountant user by ID"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a client",
      "routing": {
        "request": {
          "url": "=/admin/clients",
          "method": "POST"
        }
      },
      "description": "Creates a new client for the accountant"
    },
    {
      "name": "Get by ID",
      "value": "get",
      "action": "Get a client by ID",
      "routing": {
        "request": {
          "url": "=/admin/clients/{{$parameter.clientId}}",
          "method": "GET"
        }
      },
      "description": "Returns a single client object by ID"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List clients",
      "routing": {
        "request": {
          "url": "=/admin/clients",
          "method": "GET"
        }
      },
      "description": "Returns a list of clients"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a client",
      "routing": {
        "request": {
          "url": "=/admin/clients/{{$parameter.clientId}}",
          "method": "PATCH"
        }
      },
      "description": "Updates a client by ID"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List users",
      "routing": {
        "request": {
          "url": "=/users",
          "method": "GET",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Returns a paginated list of client users"
    },
    {
      "name": "Get by ID",
      "value": "get",
      "action": "Get a user by ID",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter.userId}}",
          "method": "GET",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Returns a single client user by ID"
    },
    {
      "name": "Invite",
      "value": "create",
      "action": "Invite a user",
      "routing": {
        "request": {
          "url": "=/users",
          "method": "POST",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Invites a new client user and returns the created record"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a user",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter.userId}}",
          "method": "PATCH",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Updates a client user by ID"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a user",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter.userId}}",
          "method": "DELETE",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Deletes a client user by ID"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List workspaces",
      "routing": {
        "request": {
          "url": "=/workspaces",
          "method": "GET",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Returns a list of workspaces"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a workspace",
      "routing": {
        "request": {
          "url": "=/workspaces",
          "method": "POST",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Creates a new workspace and returns the created workspace"
    },
    {
      "name": "Get by ID",
      "value": "get",
      "action": "Get a workspace by ID",
      "routing": {
        "request": {
          "url": "=/workspaces/{{$parameter.workspaceId}}",
          "method": "GET",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Returns a single workspace object by ID"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a workspace",
      "routing": {
        "request": {
          "url": "=/workspaces/{{$parameter.workspaceId}}",
          "method": "PATCH",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Updates a workspace by ID"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List workspace members",
      "routing": {
        "request": {
          "url": "=/workspaces/{{$parameter.workspaceId}}/members",
          "method": "GET",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Returns workspace members for a workspace"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a workspace member",
      "routing": {
        "request": {
          "url": "=/workspaces/{{$parameter.workspaceId}}/members",
          "method": "POST",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Creates a new workspace member"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Remove a workspace member",
      "routing": {
        "request": {
          "url": "=/workspaces/{{$parameter.workspaceId}}/members",
          "method": "DELETE",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Removes a workspace member from a workspace"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List files",
      "routing": {
        "request": {
          "url": "=/files",
          "method": "GET",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Returns a paginated list of files"
    },
    {
      "name": "Upload",
      "value": "create",
      "action": "Upload a file",
      "routing": {
        "request": {
          "url": "=/files",
          "method": "POST",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Uploads a new file"
    },
    {
      "name": "Get by ID",
      "value": "get",
      "action": "Get a file by ID",
      "routing": {
        "request": {
          "url": "=/files/{{$parameter.fileId}}",
          "method": "GET",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Returns a single file object by ID"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a file",
      "routing": {
        "request": {
          "url": "=/files/{{$parameter.fileId}}",
          "method": "DELETE",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Deletes a file by ID"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a file",
      "routing": {
        "request": {
          "url": "=/files/{{$parameter.fileId}}",
          "method": "PATCH",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Updates a file by ID"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List tasks",
      "routing": {
        "request": {
          "url": "=/tasks",
          "method": "GET",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Returns a list of tasks"
    },
    {
      "name": "Get by ID",
      "value": "get",
      "action": "Get a task by ID",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}",
          "method": "GET",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Returns a single task object by ID"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "routing": {
        "request": {
          "url": "=/tasks",
          "method": "POST",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Creates a new task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}",
          "method": "PATCH",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Updates an existing task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}",
          "method": "DELETE",
          "headers": {
            "x-client-id": "={{ $parameter.clientId }}"
          }
        }
      },
      "description": "Deletes a task by ID"
    }
  ]

npm_readme:
  # n8n-nodes-steuerboard

  This is an n8n community node. It lets you use Steuerboard 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)
  [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

  - Clients
    - List clients
    - Get client by ID

  ## Credentials

  This node uses API key authentication via an Authorization: Bearer header.

  How to get an API key:

  - Create an account at steuerboard.net and sign in.
  - In your dashboard, open the API keys section and create a new API key.
  - Copy the key value. Keep it secure.
  - Details and up-to-date instructions: see Authentication.

  In n8n, create credentials of type Steuerboard API and set:

  API Key: your generated key
  Requests are sent with:

  Authorization: Bearer YOUR_API_KEY

  ## Compatibility

  Compatible with n8n@1.60.0 or later

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Steuerboard docs](https://docs.steuerboard.com)
  - [Steuerboard Website](https://steuerboard.net)

ai_documentation_summary:
  {"purpose":"Provide access to the Steuerboard API from n8n workflows, enabling retrieval of Steuerboard client data for automation and integration.","capabilities":["List clients","Get client by ID"],"authentication":"API key required (send Authorization: Bearer YOUR_API_KEY)","commonUseCases":["Sync Steuerboard clients into a CRM or database","Fetch client details for invoicing, accounting, or billing workflows","Enrich or validate client data as part of automated reporting or ETL pipelines","Periodic retrieval of client lists for audits or reconciliations"],"limitations":["Exposes only Clients operations (List, Get) — no create/update/delete or other resource endpoints documented","Requires n8n version 1.60.0 or later","Authentication only via API key (no OAuth2 or other auth methods mentioned)"],"relatedNodes":[]}


node_type: n8n-nodes-evolution-api.evolutionapi
package_name: n8n-nodes-evolution-api
display_name: evolutionapi
description: A Evolution API é um hub de canais com foco no WhatsApp
category: Community
development_style: declarative
version: 1.0.4
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: oriondesign
author_github_url: git+https://github.com/oriondesign2015/n8n-nodes-evolution-api.git
npm_package_name: n8n-nodes-evolution-api
npm_version: 1.0.4
community_fetched_at: 2026-02-19T14:41:54.105Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  ![image](https://github.com/user-attachments/assets/813b7b34-377c-42e8-9f1a-12e27e682c7f)

  <p align="center"><br>
  Este Community Nodes é uma solução 100% gratuita, criada com o intuito de simplificar e auxiliar toda a comunidade a integrar e utilizar ao máximo os principais recursos oferecidos pela <b>Evolution API v2.2+</b> em seus projetos no N8N. <b>Desenvolvido por OrionDesign.</b>
  </p>
  <br>
  	
  <div align="center">
    <img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.npmjs.org%2Fdownloads%2Fpoint%2Flast-year%2Fn8n-nodes-evolution-api&query=downloads&style=for-the-badge&label=Total%20de%20Downloads&labelColor=%230d1117&color=%23359514&cacheSeconds=30&link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fn8n-nodes-evolution-api" alt="Dynamic JSON Badge">
  </div>
  <br>
  </p>
  <p align="center">
    <a href="https://oriondesign.art.br/whatsapp1"><img src="https://github.com/user-attachments/assets/5a469114-2054-4f01-85b2-51a282518658" alt=”SetupOrion” ></a>     
    <a href="https://oriondesign.art.br/whatsapp2"><img src="https://github.com/user-attachments/assets/3e3580a9-ae8e-4209-84fc-cfc1c03a8f12" alt=”SetupOrion” ></a>     
    <a href="https://oriondesign.art.br/whatsapp3"><img src="https://github.com/user-attachments/assets/91aa7733-c09c-474f-9483-54cb678213d2" alt=”SetupOrion” ></a>
  </p>


  <h1></h1>

  <h3>⚙️ Requisitos</h3>

  Para utilizar o nosso **Community Node**, é necessário atender aos seguintes requisitos:  
  - **N8N** na versão **1.54.4** ou superior  
  - **Evolution API** na versão **2.2.0** ou superior  

  <h1></h1>

  <h3>📌 Recursos Disponíveis</h3>

  <h3>Instância</h3>
  🖥️ Este recurso oferece acesso completo às principais funcionalidades relacionadas às instâncias da Evolution API. Ele permite realizar operações essenciais, como criar novas instâncias, conectar-se a elas, obter informações detalhadas, personalizar comportamentos, monitorar presença, reiniciar e até mesmo excluir instâncias de forma prática e eficiente.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Criar Instancia</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Gerar Qr-Code</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Buscar Instancia</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Definir Comportamento</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Definir Presença</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Definir Proxy</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Buscar Proxy</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Desconectar WhatsApp</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Deletar Instancia</b></summary>
  	</details>
  </details>

  <h3> Mensagem</h3>
  ✉️ Este recurso concentra todas as funcionalidades relacionadas ao envio e gerenciamento de mensagens através da Evolution API. Com ele, você pode enviar diversos tipos de conteúdo como textos, imagens, vídeos, áudios, documentos, contatos, listas interativas, botões e até mesmo mensagens PIX. Cada tipo de mensagem possui opções avançadas como delay, mentions, replies e formatações especiais. O recurso foi desenvolvido para proporcionar uma experiência completa de comunicação, permitindo explorar ao máximo os recursos nativos do WhatsApp de forma simples e eficiente.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Enviar Texto</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Imagem</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Video</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Audio</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Documento</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Enquete</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Contato</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Lista</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Botão</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Pix</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Status</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Reagir a Mensagem</b></summary>
  	</details>
  </details>

  <h3>Grupo</h3>
  👥 Com este recurso, você conta com um conjunto completo de funcionalidades para gerenciamento de grupos no WhatsApp por meio da Evolution API. Ele abrange desde a criação e administração de grupos até o gerenciamento de participantes, configuração de permissões, links de convite e mensagens temporárias. Tudo foi projetado para oferecer controle eficiente e simplificado na administração de grupos.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Criar Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Atualizar Imagem do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Atualizar Nome do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Atualizar Descrição do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Atualizar Configurações do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Atualizar Membros</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Buscar Link de convite do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Revogar Link de convite do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Link de Convite do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Encontrar Participantes</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Mensagens Temporarias</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Sair do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Entrar no Grupo</b></summary>
  	</details>
  </details>

  <h3>Chat</h3>
  💬 Este recurso disponibiliza um conjunto abrangente de ferramentas para o gerenciamento de conversas e interações utilizando a Evolution API. Com ele, é possível verificar números, enviar e gerenciar mensagens, manipular arquivos de mídia, controlar status de leitura, administrar contatos e monitorar presença. Todas as operações são desenvolvidas para proporcionar um controle completo e eficiente das comunicações, facilitando a gestão tanto de conversas individuais quanto em grupo.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Verificar Numero</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Ler Mensagem</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Gerenciar Arquivoo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Marcar como Não lido</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Deletar Mensagem</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Buscar Foto de Perfil</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Obter Midia em Base64</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Editar Mensagem</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Presença</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Bloquear Contato</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Buscar Contatos</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Procurar Mensagens</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Procurar Status</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Procurar Chats</b></summary>
  	</details>
  </details>

  <h3>Evento</h3>
  ⚡ Este recurso oferece mecanismos avançados para integração e monitoramento em tempo real das atividades da Evolution API. Ele permite configurar e gerenciar Webhooks e RabbitMQ, possibilitando o acompanhamento de eventos como mensagens recebidas, alterações em grupos, status de conexão e muito mais. Essas funcionalidades foram projetadas para garantir uma comunicação ágil e automatizada entre sua aplicação e a API, promovendo respostas imediatas a diferentes eventos do WhatsApp.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Webhook</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> RabbitMQ</b></summary>
  	</details>
  </details>

  <h3>Integração</h3>
  🔗 Este recurso disponibiliza uma ampla gama de conectores para integrar a Evolution API a diversas plataformas e serviços externos. Entre as possibilidades estão conexões com Chatwoot para atendimento ao cliente, Evolution Bot para automações, Typebot para fluxos conversacionais, além de integrações com Flowise e Dify para soluções de inteligência artificial. Essas integrações ampliam as capacidades da API, permitindo criar soluções robustas e automatizadas para diferentes cenários de negócios.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Chatwoot</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Evolution Bot</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Typebot</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Dify</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Floise</b></summary>
  	</details>
  </details>

  <h1></h1>

  <h3>🤝 Contribuição</h3>

  Contribua para o crescimento deste projeto! Você pode ajudar de diversas formas:  
  - **Pull Requests**: Envie melhorias, correções ou novas funcionalidades.  
  - **Issues**: Relate problemas ou sugira novas ideias.  
  - **Sugestões**: Compartilhe suas opiniões e feedbacks.  
  - **Documentação**: Ajude a melhorar ou expandir a documentação existente.  

  <h1></h1>

  <h3>📌 Principais contribuidores</h3>
  <a align="center" href="https://github.com/oriondesign2015/n8n-nodes-evolution-api/graphs/contributors">
    <img src="https://contrib.rocks/image?repo=oriondesign2015/n8n-nodes-evolution-api" />
  </a>

  <h1></h1>
  <a href="https://star-history.com/#oriondesign2015/SetupOrion&Date">
   <picture>
     <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=oriondesign2015/SetupOrion&type=Date&theme=dark" />
     <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=oriondesign2015/SetupOrion&type=Date" />
     <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=oriondesign2015/SetupOrion&type=Date" />
   </picture>
  </a>

  <h1></h1>
  <p align="center">
  Desenvolvido com ❤️ por OrionDesign
  </p>

ai_documentation_summary:
  {"purpose":"Provides n8n workflow nodes to integrate with Evolution API (v2.2+) for managing WhatsApp instances, sending and managing messages, and administering groups via a community-developed connector.","capabilities":["Create Instance","Generate QR Code for instance","Get / Fetch Instance details","Set Instance Behavior","Set Presence for instance","Configure Proxy for instance","Fetch Proxy information","Disconnect WhatsApp from instance","Delete Instance","Send Text messages (with mentions, replies, delays, formatting)"],"authentication":"Not specified in README","commonUseCases":["Automate sending various WhatsApp message types (text, media, interactive) from n8n workflows","Provision and manage Evolution API WhatsApp instances (create, connect via QR, set behavior/presence, delete)","Manage WhatsApp groups programmatically (create, update settings, manage members, invite links)","React to messages and send status updates as part of customer support or notification flows","Use proxies and instance configuration to scale or customize WhatsApp channel behavior"],"limitations":["README does not specify authentication method or credentials setup","Requires n8n >= 1.54.4 and Evolution API >= 2.2.0","Documentation is a community-maintained README (free/community node) — may lack official support or full enterprise guarantees","README provided is truncated (Chat resource details incomplete)"],"relatedNodes":[]}


node_type: n8n-nodes-chatwoot.chatwoot
package_name: n8n-nodes-chatwoot
display_name: chatwoot
description: This is an n8n community node. It lets you use ChatWoot in your n8n workflows.
category: Community
development_style: declarative
version: 0.1.40
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: hugodeco
author_github_url: git+https://github.com/sufficit/n8n-nodes-chatwoot.git
npm_package_name: n8n-nodes-chatwoot
npm_version: 0.1.40
community_fetched_at: 2026-02-19T14:41:54.106Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # n8n-nodes-chatwoot

  This is an n8n community node. It lets you use ChatWoot 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)  <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage)  <!-- delete if not using this section -->  
  [Resources](#resources)  
  [Version history](#version-history)  <!-- delete if not using this section -->  

  ## Installation

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

  ## Operations

  _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

  Tested on N8N > v0.210 (Success)

  ## 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":"Provides access to ChatWoot from n8n workflows so you can interact with the ChatWoot platform (e.g., manage conversations and messages) from automation flows.","capabilities":["Integrate with the ChatWoot API from n8n workflows","(Not specified in README) — typical ChatWoot node operations (inferred): sending messages","(Not specified in README) — typical ChatWoot node operations (inferred): creating and updating conversations/tickets","(Not specified in README) — typical ChatWoot node operations (inferred): listing and retrieving conversation history","(Not specified in README) — typical ChatWoot node operations (inferred): managing contacts/customers and inboxes"],"authentication":"Not specified in README (Credentials section placeholder). Likely requires ChatWoot API key / access token configured in node credentials.","commonUseCases":["Automate sending and replying to customer messages from workflows","Create or update support conversations/tickets in ChatWoot","Sync contacts or conversation data between ChatWoot and other systems","Trigger workflows based on conversation data retrieved from ChatWoot","Proactively send notifications or follow-ups to customers via ChatWoot"],"limitations":["README does not list specific operations or parameters supported by the node","Authentication details are not provided in the README (credentials section is a placeholder)","No usage examples, input/output schemas, or request/response samples included","No links to ChatWoot API docs or concrete resource references in the node README"],"relatedNodes":[]}


node_type: n8n-nodes-kommo.kommo
package_name: n8n-nodes-kommo
display_name: kommo
description: n8n node for Kommo Api
category: Community
development_style: declarative
version: 0.0.16
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: yatolstoy
author_github_url: git+https://github.com/yatolstoy/n8n-node-kommo.git
npm_package_name: n8n-nodes-kommo
npm_version: 0.0.16
community_fetched_at: 2026-02-19T14:41:54.107Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # n8n-nodes-kommo

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

  Kommo allows you to save the history of interaction with customers, as well as automate sales department processes.

  [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)
  [Donation](#donation)

  ## Installation

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

  1. Go to **Settings > Community Nodes**.
  2. Select **Install**.
  3. Enter `n8n-nodes-kommo` in **Enter npm package name**.
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes: select **I understand the risks of installing unverified code from a public source**.
  5. Select **Install**.

  After installing the node, you can use it like any other node. n8n displays the node in search results in the **Nodes** panel.

  ## Operations

  It supports these operations:

  - Get account information
  - Add modify and retrieve companies
  - Add modify and retrieve contacts
  - Add change and get deals
  - Add modify and retrieve tasks
  - Add modify and retrieve notes
  - Add modify and retrieve lists
  - Add modify and retrieve list elements

  ## Credentials

  Create an Kommo account [here](https://www.kommo.com/). For 14 days free of charge.

  - Go to n8n and create a new credential Kommo. Copy OAuth Redirect URL.
  - Go to your Kommo account and create a new widget https://your-domain.kommo.com/settings/widgets/
  - Paste the previously copied OAuth Redirect URL into the "Redirect Link" field.
  - Provide the accesses required for integration (these may vary depending on your scenario for using this node)
  - Enter an arbitrary name and description of the integration. The integration name may appear in the Kommo event log if the created_by and updated_by parameters are not filled in. Description cannot be shorter than 5 characters
  - Press to Save button
  - Update your page and find your integration in installed section. Press on it.
  - In the settings of the created integration, go to the Keys and Accesses section. Copy Integration ID and Secret key
  - Go to n8n and paste the Integration ID and Secret key you received.
  - Fill Account Subdomain and click on connect my account. Window will open.
  - Select the account to connect to and click the Allow button
  - If everything was successful, you will see a green message indicating successful connection in n8n

  ## Compatibility

  Tested against n8n version 1.20.0+

  ## Usage

  In your Workflow, find the Kommo node and use as you need.
  I accept comments and suggestions in Issues repository on github or in telegram [@yatolstoy](https://t.me/yatolstoy)

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Kommo API Documentation](https://www.kommo.com/developers)

  ## Donation

  This code is developed by an enthusiastic developer on his own initiative. By donations you will force me to develop and improve this node. Thank you!

  - [Link for donation from Russia](https://yoomoney.ru/to/410012112222938)
  - [Link for donation from another countries](https://appstart.easystaff.io/easylancer/yatolstoy)

ai_documentation_summary:
  {"purpose":"Provides an n8n node to interact with the Kommo (CRM) API, enabling workflows to read and modify CRM data and automate sales/customer interaction processes.","capabilities":["Get account information","Create, modify, and retrieve companies","Create, modify, and retrieve contacts","Create, change, and get deals","Create, modify, and retrieve tasks","Create, modify, and retrieve notes","Create, modify, and retrieve lists","Create, modify, and retrieve list elements","Connect account via Kommo OAuth integration flow"],"authentication":"OAuth2 (Kommo Integration ID & Secret with OAuth Redirect URL and account subdomain; standard OAuth authorization flow)","commonUseCases":["Synchronize contacts and companies between Kommo and other systems","Create or update deals as part of automated sales pipelines","Automatically create tasks and notes from workflow events","Fetch account or CRM data for reporting or downstream processing","Manage lists and list elements for segmentation or marketing automation"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-waha.waha
package_name: n8n-nodes-waha
display_name: waha
description: n8n to connect with WAHA (Whatsapp HTTP API)
category: Community
development_style: declarative
version: 2024.11.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: morning-bird
author_github_url: git+https://github.com/devlikeapro/n8n-nodes-waha.git
npm_package_name: n8n-nodes-waha
npm_version: 2024.11.5
community_fetched_at: 2026-02-19T14:41:54.108Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # @devlikeapro/n8n-nodes-waha
  <p align="center">
    <img src="https://github.com/devlikeapro/n8n-nodes-waha/blob/master/WAHA+n8n.png?raw=true" width='300'/>
  </p>

  This is a n8n community node. 
  It lets you use [WAHA - WhatsApp HTTP API](https://waha.devlike.pro) in your n8n workflows.

  - [**WAHA**](https://waha.devlike.pro) - **WhatsApp API** that you can run in a click!
  - [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  👉 Generated from
  [**WAHA OpenAPI**](https://waha.devlike.pro/swagger/)
  using [**devlikeapro/n8n-openapi-node**](https://github.com/devlikeapro/n8n-openapi-node)

  ![NPM Version](https://img.shields.io/npm/v/%40devlikeapro%2Fn8n-nodes-waha)

  <!-- toc -->

  - [Install WAHA n8n node](#install-waha-n8n-node)
  - [Links](#links)
  - [Workflow Examples](#workflow-examples)

  <!-- tocstop -->

  ![WAHA Workflow Example Screenshot](./waha-n8n-workflow-example.png)

  ## Install WAHA n8n node
  Go to your **n8n** => **Settings** => **Community nodes** and install:

  ```
  @devlikeapro/n8n-nodes-waha
  ```

  If you need help with that, check the
  [**Install community nodes**](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/)

  ## Links
  - [**WAHA + n8n: No Code Low Code WhatsApp Automation Step-By-Step Guide**](https://waha/devlike.pro/blog/waha-n8n/)
  - [**🧩 WAHA + n8n Integration**](https://waha.devlike.pro/docs/integrations/n8n/)
  - [**WAHA n8n Workflow Templates**](http://waha-n8n-templates.devlike.pro/)

  ## Workflow Examples
  👉 Check out [**n8n-workflows**](http://waha-n8n-templates.devlike.pro/) folder for examples.

ai_documentation_summary:
  {"purpose":"Provides an n8n community node that connects n8n workflows to WAHA (WhatsApp HTTP API), enabling automation of WhatsApp messaging and related WAHA operations from within n8n.","capabilities":["Invoke WAHA API endpoints from n8n (node generated from WAHA OpenAPI)","Send WhatsApp text messages","Send WhatsApp media messages (images, audio, documents) via WAHA API","Use message templates (template-based messaging)","Manage WhatsApp sessions/clients (session lifecycle operations exposed by WAHA)","Surface other WAHA operations available in the WAHA OpenAPI spec"],"authentication":"Not specified in README (see WAHA docs); WAHA typically uses an API key / Bearer token—check the WAHA API documentation for exact auth method","commonUseCases":["Send automated WhatsApp notifications from workflows (alerts, receipts, reminders)","Integrate WhatsApp messaging with CRM, e‑commerce, or ticketing systems","Build conversational workflows and support bots that send/receive WhatsApp messages","Send media-rich messages (images, documents) as part of automated flows","Use template messages for mass/transactional communications"],"limitations":[],"relatedNodes":["devlikeapro/n8n-openapi-node (OpenAPI-generated n8n nodes / generator used to create this node)"]}


node_type: n8n-nodes-palatine-speech.palatinespeech
package_name: n8n-nodes-palatine-speech
display_name: palatinespeech
category: Community
development_style: declarative
version: 1.0.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: palatine_zealot
author_github_url: git+https://github.com/PalatineVision/n8n-nodes-palatine-speech.git
npm_package_name: n8n-nodes-palatine-speech
npm_version: 1.0.1
community_fetched_at: 2026-02-19T14:41:54.109Z
ai_summary_generated_at: 2026-02-19 16:43:57
description:
  Official n8n node for Palatine Speech API: transcription, diarization, sentiment analysis, summarization and more

npm_readme:
  ![README banner](https://github.com/palatine-vision/n8n-nodes-palatine-speech/blob/main/docs/assets/Header.png)

  # n8n-nodes-palatine-speech

  > Designed for seamless integration of **Palatine Speech API** into n8n workflows.

  This is an n8n community node that integrates [Palatine Speech](https://speech.palatine.ru/) into your workflows and enables audio processing tasks such as transcription, diarization, sentiment analysis, and summarization.

  ## Navigation

  [Supported Operations](#supported-operations)\
  [Installation](#installation)\
  [Credentials](#credentials)\
  [Workflow Example](#workflow-example)\
  [Use Cases](#use-cases) \
  [Compatibility](#compatibility)\
  [Useful Resources](#useful-resources)\
  [Keywords](#keywords) \
  [License](#license) \
  [Support](#support)

  > Looking for a Russian version? [Here](https://gist.github.com/Valeronich/b5d116fd4ca251ff672eda7d2a530a61)

  ## Supported Operations

  For details on each operation, see the Palatine Speech [documentation](https://docs.speech.palatine.ru/documentation/quick_start/transcription). You can also open the documentation by clicking the operation title below.

  * [Full list of supported file types](https://docs.speech.palatine.ru/documentation/technical_information/supported_files)
  * [Full list of supported languages](https://docs.speech.palatine.ru/documentation/technical_information/supported_languages)

  ### [Transcribe — speech transcription](https://docs.speech.palatine.ru/api-reference/transcribe/transcribe-polling-api/transcribe)

  Speech-to-Text (STT) converts audio/video into a written transcript.
  It supports multiple languages and can automatically detect the language spoken in the recording.
  It is well-suited for calls, interviews, lectures, and any other recordings where you need an accurate text version of what was said.

  ### [Diarize — speaker diarization](https://docs.speech.palatine.ru/api-reference/diarization/diarization-polling-api/diarize)

  Speaker diarization separates a recording into speaker segments and identifies who is speaking in each segment. This is useful for meetings and interviews, where keeping the conversation structure by speaker matters.

  ### [Sentiment Analysis — sentiment analysis](https://docs.speech.palatine.ru/api-reference/sentiment-analysis/sentiment-analysis-polling-api/sentiment-analysis)

  Determines the emotional tone of speech in audio/video (and can also analyze text). The result is a ranked list of sentiment classes with probabilities, where the first item is the most likely: `Very Negative`, `Negative`, `Neutral`, `Positive`, `Very Positive`.

  ### [Summarize — audio summarization](https://docs.speech.palatine.ru/api-reference/ai-service/ai-service/summarize-file)

  Generates a structured summary from audio/video (or from already available text). In addition to built-in scenarios such as `meeting_summary`, it supports `user_prompt` — you can provide a custom prompt for the LLM to produce output in the structure you need (bullet points, decisions and action items, risks, Q&A, etc.).

  ## Installation

  1. In your n8n instance, go to **Settings > Community Nodes → Install**
  2. Enter: `n8n-nodes-palatine-speech`
  3. Click **Install**
  > ⚠️ Make sure the environment variable `N8N_COMMUNITY_PACKAGES_ENABLED=true` is set.

  ## Credentials

  1. Go to **Credentials → + Create**
  2. Find **Palatine Speech API**
  3. Fill in the fields:
    * **API Key** — available in your Palatine Speech dashboard
    * **Base URL** — default is `https://api.palatine.ru`

  ## Workflow Example

  1. `Webhook` → Receive an audio file
  2. `Config` → Configure parameters
  3. `Palatine Speech` → Transcribe the file
  4. `Create record` → Create a table record
  5. `Telegram` → Send the result to a chat

  ![workflow example](https://github.com/palatine-vision/n8n-nodes-palatine-speech/blob/main/docs/assets/WorkflowExample.png)

  ## Use Cases

  * **Meeting summaries** \
  For meeting and interview recordings, it is recommended to use `Summarize` (`meeting_summary`): it produces a brief summary, a list of decisions, and group action items by owner and due date; the result can be sent to the team chat if needed. \
  For non-standard requests, specify `Prompt` in `Summarize` and provide the required instruction, for example: "Additionally, structure the agreements by deadlines and owners."

  * **Lecture/webinar notes** \
  Session recording → `Transcribe` → generate a full transcript. \
  Save the resulting text alongside the session materials.

  * **Automatic subtitles for video** \
  Extract the audio track → `Transcribe` + `Diarize` → convert the result to SRT/VTT and attach it to the video. \
  `Transcribe` produces the transcript, while `Diarize` provides speaker segmentation for multi-speaker recordings.

  * **Customer support assistant** \
  Processing voice messages with `Sentiment Analysis` helps determine the emotional tone of the request. \
  Based on the result, tickets can be created in the CRM and a priority can be assigned.

  ## Compatibility

  This node was tested with n8n v1.39.1 and later.

  ## Useful Resources

  * [Palatine Speech documentation](https://docs.speech.palatine.ru/documentation/quick_start/transcription)
  * [n8n Community Nodes guide](https://docs.n8n.io/integrations/community-nodes/)
  * [Official n8n GitHub](https://github.com/n8n-io/n8n)

  ## Keywords

  `n8n-community-node-package`, `n8n`, `palatine`, `speech-to-text`, `transcribe`, `transcription`, `stt`, `audio`, `ai`, `automation`, `voice-to-text`, `speech-recognition`, `audio-transcription`, `audio2text`, `audio-processing`, `diarization`, `speaker-diarization`, `speaker-segmentation`, `summarization`, `audio-summarization`, `sentiment-analysis`, `emotion-detection`, `tone-analysis`

  ## License
  MIT

  ## Support
  Need help? Contact our Telegram support bot: [@Speech_Palatine_Support_Bot](https://t.me/Speech_Palatine_Support_Bot)

ai_documentation_summary:
  {"purpose":"Official n8n community node that integrates the Palatine Speech API into n8n workflows to perform audio processing tasks such as transcription, speaker diarization, sentiment analysis, and audio/text summarization.","capabilities":["Transcribe — speech-to-text for audio/video with automatic language detection; supports many file types and languages","Diarize — speaker diarization producing speaker-segment timestamps and speaker labels","Sentiment Analysis — audio or text sentiment classification returning ranked sentiment classes with probabilities (Very Negative → Very Positive)","Summarize — generate structured summaries from audio or text with built-in scenarios (e.g., meeting_summary) and custom user_prompt support for tailored LLM output","Return outputs suitable for downstream tasks (transcripts, speaker segments, summaries, sentiment metadata) enabling conversion to SRT/VTT or storage","Configurable base URL and credentialed requests using Palatine Speech API key"],"authentication":"API key required (Palatine Speech API key). Base URL is configurable (default: https://api.palatine.ru).","commonUseCases":["Meeting summaries (produce brief summary, decisions, action items; supports custom prompt for structure)","Lecture/webinar notes — full transcription and storage alongside session materials","Automatic subtitles for video — transcribe + diarize to create SRT/VTT with speaker segmentation","Customer support workflows — analyze voice messages for sentiment to triage or create prioritized tickets"],"limitations":["Requires n8n v1.39.1 or later (node tested with that version)","Community packages must be enabled for installation (N8N_COMMUNITY_PACKAGES_ENABLED=true)","Uses Palatine's polling APIs (documentation links reference polling endpoints) — no real-time/streaming mode mentioned in README"],"relatedNodes":["Webhook","Config","Create record","Telegram"]}


node_type: n8n-nodes-a2a.a2a
package_name: n8n-nodes-a2a
display_name: a2a
category: Community
development_style: declarative
version: 0.4.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: bruno.growthsales
author_github_url: git+https://github.com/bruno-growthsales/n8n-nodes-a2a.git
npm_package_name: n8n-nodes-a2a
npm_version: 0.4.0
community_fetched_at: 2026-02-19T14:41:54.109Z
ai_summary_generated_at: 2026-02-19 16:43:57
description:
  n8n community node for A2A (Account to Account) transfers, account management, and Google Agent2Agent protocol communication with advanced features including file upload, custom JSON fields, custom requests, and streaming support

npm_readme:
  # n8n-nodes-a2a

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

  This is an n8n community node that provides A2A (Account to Account) operations for transfers and account management.

  A2A enables secure account-to-account transfers and comprehensive account management through a unified API interface.

  [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 Examples](#usage-examples)  
  [Resources](#resources)  

  ## 🚀 Installation

  The A2A node can be installed using multiple methods:

  ### Option 1: Via npm (Recommended)

  ```bash
  # In your n8n directory
  npm install n8n-nodes-a2a

  # Restart n8n
  pm2 restart n8n
  ```

  ### Option 2: Automated Script

  ```bash
  # Install from npm (default)
  curl -fsSL https://raw.githubusercontent.com/your-username/n8n-nodes-a2a/main/install-a2a-node.sh | bash

  # Install from GitHub
  curl -fsSL https://raw.githubusercontent.com/your-username/n8n-nodes-a2a/main/install-a2a-node.sh | bash -s -- --github
  ```

  ### Option 3: Manual Installation from GitHub

  ```bash
  # In your n8n directory
  npm install https://github.com/your-username/n8n-nodes-a2a.git

  # Restart n8n
  pm2 restart n8n
  ```

  ### Option 4: Docker

  ```dockerfile
  FROM n8nio/n8n:latest

  USER root
  RUN cd /usr/local/lib/node_modules/n8n && \
      npm install n8n-nodes-a2a
  USER node
  ```

  For detailed installation instructions including troubleshooting, see:
  - **Quick Guide**: [INSTALL_SELFHOST.md](INSTALL_SELFHOST.md)  
  - **Detailed Guide**: [docs/N8N_SELFHOST_INSTALL.md](docs/N8N_SELFHOST_INSTALL.md)

  ## Operations

  This node provides comprehensive A2A functionality through three main resources:

  ### Transfer Resource
  - **Create Transfer**: Create a new account-to-account transfer
  - **Get Transfer**: Get details of a specific transfer by ID
  - **List Transfers**: Get a list of transfers with filtering options
  - **Cancel Transfer**: Cancel a pending transfer

  ### Account Resource
  - **Get Account**: Get details of a specific account
  - **List Accounts**: Get a list of accounts with filtering options
  - **Get Balance**: Get account balance information
  - **Get Transactions**: Get account transaction history with date filtering

  ### Agent Resource (Google Agent2Agent Protocol)
  - **Send Message**: Send a message to an agent and receive complete response (tasks/send)
  - **Send Message with Streaming**: Send a message with real-time streaming response (tasks/sendSubscribe)
  - **Get Agent Card**: Retrieve agent capabilities from .well-known/agent-card endpoint

  ## Credentials

  You need to authenticate with the A2A API using the following credentials:

  1. **API Key**: Your A2A API key
  2. **API Secret**: Your A2A API secret  
  3. **Environment**: Choose between Production or Sandbox
  4. **Base URL**: Automatically set based on environment selection

  ### Setting up credentials

  1. Sign up for an A2A account and obtain your API credentials
  2. In n8n, create new credentials using the "A2A API" credential type
  3. Enter your API Key and Secret
  4. Select the appropriate environment (Sandbox for testing, Production for live operations)
  5. Test the credentials to ensure they work correctly

  ## Usage Examples

  ### Creating a Transfer

  ```javascript
  {
    "resource": "transfer",
    "operation": "create",
    "amount": 100.50,
    "currency": "USD",
    "fromAccountId": "acc_123456789",
    "toAccountId": "acc_987654321",
    "reference": "Service Payment",
    "description": "Monthly service payment"
  }
  ```

  ### Checking Account Balance

  ```javascript
  {
    "resource": "account",
    "operation": "getBalance",
    "accountId": "acc_123456789"
  }
  ```

  ### Listing Recent Transfers

  ```javascript
  {
    "resource": "transfer",
    "operation": "getMany",
    "limit": 50,
    "status": "completed"
  }
  ```

  ### Getting Transaction History

  ```javascript
  {
    "resource": "account",
    "operation": "getTransactions",
    "accountId": "acc_123456789",
    "startDate": "2024-01-01T00:00:00Z",
    "endDate": "2024-12-31T23:59:59Z",
    "transactionLimit": 100
  }
  ```

  ### Agent2Agent Protocol Examples

  #### Send Standard Message

  ```javascript
  {
    "resource": "agent",
    "operation": "send",
    "agentUrl": "https://agent-api.example.com",
    "message": "Hello! Can you help me with my query?",
    "sessionId": "session-123",
    "taskId": "task-456",
    "acceptedOutputModes": ["text", "image"],
    "additionalOptions": {
      "apiKey": "your-api-key",
      "responseFormat": "message",
      "role": "user",
      "timeout": 30000
    }
  }
  ```

  #### Send Message with File Upload

  ```javascript
  {
    "resource": "agent",
    "operation": "send",
    "agentUrl": "https://agent-api.example.com",
    "message": "Please analyze this document for me",
    "includeFiles": true,
    "files": {
      "file": [{
        "inputFieldName": "data",
        "fileName": "document.pdf", 
        "mimeType": "application/pdf"
      }]
    },
    "acceptedOutputModes": ["text", "code"],
    "additionalOptions": {
      "apiKey": "your-api-key",
      "responseFormat": "full",
      "maxRetries": 3,
      "retryDelay": 2000
    }
  }
  ```

  #### Send Message with Streaming

  ```javascript
  {
    "resource": "agent",
    "operation": "sendSubscribe",
    "agentUrl": "https://agent-api.example.com",
    "message": "Please provide a detailed analysis...",
    "sessionId": "session-123",
    "taskId": "task-789",
    "acceptedOutputModes": ["text", "image", "code"],
    "additionalOptions": {
      "apiKey": "your-api-key",
      "role": "user",
      "timeout": 60000,
      "streamProcessing": "final",
      "responseFormat": "auto",
      "headers": {
        "parameter": [
          {
            "name": "X-Custom-Header",
            "value": "custom-value"
          }
        ]
      }
    }
  }
  ```

  #### Custom JSON-RPC Request

  ```javascript
  {
    "resource": "agent",
    "operation": "custom",
    "agentUrl": "https://agent-api.example.com",
    "customMethod": "tasks/analyze",
    "customParams": {
      "message": {
        "role": "user",
        "parts": [{
          "type": "text",
          "text": "Custom analysis request"
        }]
      },
      "sessionId": "custom-session",
      "analysisType": "deep",
      "outputFormat": "json"
    },
    "additionalOptions": {
      "apiKey": "your-api-key",
      "timeout": 45000,
      "validateSSL": true
    }
  }
  ```

  #### Get Agent Capabilities

  ```javascript
  {
    "resource": "agent",
    "operation": "getAgentCard",
    "agentUrl": "https://agent-api.example.com"
  }
  ```

  ### JSON-RPC 2.0 Protocol

  The Agent resource implements the Google Agent2Agent protocol using JSON-RPC 2.0:

  #### Request Format
  ```json
  {
    "jsonrpc": "2.0",
    "method": "tasks/send",
    "params": {
      "message": {
        "role": "user",
        "parts": [
          {
            "type": "text",
            "text": "Your message here"
          }
        ]
      },
      "sessionId": "session-123",
      "id": "task-456"
    },
    "id": "call-789"
  }
  ```

  #### Success Response
  ```json
  {
    "jsonrpc": "2.0",
    "result": {
      "status": {
        "message": {
          "parts": [
            {
              "type": "text",
              "text": "Agent response here..."
            }
          ]
        }
      }
    },
    "id": "call-789"
  }
  ```

  #### Error Response
  ```json
  {
    "jsonrpc": "2.0",
    "error": {
      "code": -32603,
      "message": "Error message"
    },
    "id": "call-789"
  }
  ```

  ## Supported Currencies

  - USD (US Dollar)
  - EUR (Euro)
  - GBP (British Pound)
  - BRL (Brazilian Real)

  ## Error Handling

  The node includes comprehensive error handling for common scenarios:

  - **401 Unauthorized**: Invalid API credentials
  - **404 Not Found**: Account or transfer not found
  - **400 Bad Request**: Invalid parameters or insufficient funds
  - **429 Rate Limited**: Too many requests

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Node.js version**: 20.15+
  - **Tested with n8n versions**: 1.0.0+

  ## Development

  ### Prerequisites

  - Node.js 20.15 or higher
  - npm or yarn
  - n8n installed globally

  ### Building

  ```bash
  npm run build
  ```

  ### Linting

  ```bash
  npm run lint
  npm run lintfix  # Auto-fix issues
  ```

  ### Development Mode

  ```bash
  npm run dev  # Watch mode for development
  ```

  ### Project Structure

  ```
  n8n-nodes-a2a/
  ├── credentials/
  │   └── A2aApi.credentials.ts     # API credentials definition
  ├── nodes/
  │   └── A2a/
  │       ├── A2a.node.ts          # Main node implementation
  │       ├── TransferDescription.ts # Transfer operations
  │       ├── AccountDescription.ts  # Account operations
  │       ├── a2a.svg              # Node icon
  │       └── A2a.node.json        # Node metadata
  ├── examples/
  │   └── A2A_Example_Workflow.json # Example workflow
  └── docs/
      └── INSTALLATION.md           # Detailed installation guide
  ```

  ## Example Workflow

  Import the example workflow from `examples/A2A_Example_Workflow.json` to see:

  1. How to create a transfer
  2. How to check transfer status
  3. How to verify account balance
  4. Error handling best practices

  ## Contributing

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

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [A2A API Documentation](https://docs.a2a.com/api)
  * [A2A Authentication Guide](https://docs.a2a.com/authentication)
  * [Transfer API Reference](https://docs.a2a.com/transfers)
  * [Account API Reference](https://docs.a2a.com/accounts)
  * **Agent2Agent Protocol**:
    * [Google A2A Repository](https://github.com/google/A2A)
    * [A2A Testing Lab](https://a2a.to/)
    * [Agent2Agent Protocol Documentation](docs/AGENT2AGENT_PROTOCOL.md)
    * [JSON-RPC 2.0 Specification](https://www.jsonrpc.org/specification)

  ## Support

  For support and questions:

  1. **Documentation**: Check the [official A2A API docs](https://docs.a2a.com/api)
  2. **Agent2Agent Protocol**: See [Agent2Agent Documentation](docs/AGENT2AGENT_PROTOCOL.md)
  3. **Issues**: Report bugs on [GitHub Issues](https://github.com/bruno-growthsales/n8n-nodes-a2a/issues)
  4. **Community**: Join the [n8n community forum](https://community.n8n.io/)

  ## License

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

  ## 🚀 Advanced Features

  ### File Upload Support
  - **Automatic Base64 encoding** of binary data
  - **Multiple file types** with custom MIME type detection  
  - **File name customization** and metadata preservation
  - **Integration with n8n binary data** system

  ### Advanced Authentication
  - **API Key support** with `x-api-key` header
  - **Custom headers** for specialized authentication
  - **SSL validation** control for development/testing

  ### Response Processing
  - **Multiple format options**: Auto, Full Response, Message Only, Status Only
  - **Streaming event processing**: Collect All, Final Only, Individual Events  
  - **Metadata inclusion** for debugging and monitoring

  ### Retry & Error Handling
  - **Configurable retry logic** (0-10 attempts)
  - **Custom retry delays** (100-10000ms)
  - **Automatic error categorization** with JSON-RPC error codes

  ### Output Modes
  - **Text**: Standard text responses
  - **Image**: Image generation and analysis
  - **Audio**: Audio processing capabilities  
  - **Video**: Video analysis and generation
  - **Code**: Code generation and analysis

  See [Advanced Features Documentation](docs/ADVANCED_FEATURES.md) for complete details.

  ## 📋 Funcionalidades

  ### Operações A2A Financeiras
  - **Transfer**: Transferências entre contas
  - **Account**: Consulta de informações de conta

  ### Protocolo Agent2Agent
  - **Agent Operations**: Comunicação completa com agentes IA via protocolo A2A
  - **Custom Requests**: Requisições JSON-RPC personalizadas
  - **File Upload**: Suporte a upload de arquivos com encoding base64
  - **Streaming**: Processamento de respostas em tempo real
  - **Authentication**: Autenticação via x-api-key

  ## 🤖 Agent2Agent Protocol

  Este nó suporta o protocolo Agent2Agent (A2A) do Google, permitindo comunicação padronizada entre agentes de IA.

  ### Recursos Avançados

  - **Custom JSON-RPC**: Construa requisições personalizadas
  - **File Upload**: Anexe arquivos com detecção automática de MIME type
  - **API Key Auth**: Autenticação segura via header x-api-key
  - **Multi-format Output**: Suporte a texto, imagem, áudio, vídeo, código
  - **Retry Logic**: Sistema robusto de tentativas
  - **Streaming Support**: Processar respostas em tempo real

  ### Exemplo de Uso

  ```javascript
  // Configuração básica
  {
    "operation": "send",
    "agentUrl": "https://agent.example.com",
    "message": "Analyze this data and provide insights",
    "responseFormat": "auto"
  }

  // Com upload de arquivo
  {
    "operation": "send", 
    "agentUrl": "https://agent.example.com",
    "message": "Process this image",
    "includeFiles": true,
    "files": "image.png",
    "responseFormat": "full"
  }
  ```

  ## 🔧 Criando Seu Próprio Servidor A2A

  Você pode criar seus próprios servidores Agent2Agent! Veja o guia completo em [docs/AGENT2AGENT_SERVER.md](./docs/AGENT2AGENT_SERVER.md).

  ### Exemplo Rápido

  Execute o servidor de exemplo:
  ```bash
  python examples/simple_a2a_server.py
  ```

  Teste com o cliente:
  ```bash
  python examples/test_a2a_client.py
  ```

  O servidor oferece:
  - 🔄 **Echo Skill**: Repete mensagens
  - 🧮 **Calculator**: Operações matemáticas básicas
  - 📋 **Agent Card**: Descoberta automática de capacidades
  - ✅ **Health Check**: Monitoramento de status

  ### Estrutura Básica

  ```python
  # Agent Card - Descreve capacidades
  AGENT_CARD = {
      "name": "Meu Agente",
      "description": "Descrição das funcionalidades",
      "skills": [
          {
              "id": "minha_skill",
              "name": "Minha Habilidade",
              "description": "O que esta skill faz"
          }
      ]
  }

  # Endpoint obrigatório - Agent Card
  @app.route("/.well-known/agent.json")
  def get_agent_card():
      return jsonify(AGENT_CARD)

  # Endpoint obrigatório - Processar tarefas
  @app.route("/tasks/send", methods=["POST"])
  def handle_task():
      task = request.get_json()
      # Processar tarefa aqui
      return jsonify(response)
  ```

  ## 📚 Documentação

  - [🔧 Instalação Completa](./INSTALLATION.md)
  - [🏠 Instalação Self-hosted](./INSTALL_SELFHOST.md)
  - [🤖 Protocolo Agent2Agent](./docs/AGENT2AGENT_PROTOCOL.md)
  - [⚡ Recursos Avançados](./docs/ADVANCED_FEATURES.md)
  - [🛠️ Criar Servidor A2A](./docs/AGENT2AGENT_SERVER.md)

  ## 🛠️ Desenvolvimento

  ```bash
  # Clone e configure
  git clone https://github.com/brunobs/n8n-node-a2a.git
  cd n8n-node-a2a

  # Instale dependências
  npm install

  # Build do projeto
  npm run build

  # Lint e format
  npm run lint
  npm run format

  # Testes
  npm test
  ```

  ## 📝 Exemplos

  ### Operações A2A Básicas
  ```javascript
  // Transfer operation
  {
    "resource": "transfer",
    "operation": "create",
    "amount": 100.50,
    "fromAccount": "12345",
    "toAccount": "67890"
  }
  ```

  ### Agent2Agent Avançado
  ```javascript
  // Enviar tarefa para agente
  {
    "resource": "agent",
    "operation": "send", 
    "agentUrl": "https://my-agent.com",
    "message": "Analyze sales data",
    "acceptedOutputModes": ["text", "image"],
    "maxRetries": 3
  }

  // Upload de arquivo
  {
    "resource": "agent",
    "operation": "send",
    "agentUrl": "https://my-agent.com", 
    "message": "Process this document",
    "includeFiles": true,
    "files": "document.pdf"
  }
  ```

  ## 🔗 Links Úteis

  - [Especificação Agent2Agent](https://google.github.io/A2A/specification/)
  - [Repositório Google A2A](https://github.com/google/A2A)
  - [n8n Documentation](https://docs.n8n.io/)
  - [Google Agent Development Kit](https://github.com/google/agent-development-kit)

  ## 🤝 Contribuindo

  Contribuições são bem-vindas! Por favor:

  1. Fork o repositório
  2. Crie uma branch para sua feature
  3. Faça commit das mudanças
  4. Execute os testes
  5. Abra um Pull Request

  ## 📄 Licença

  MIT License - veja [LICENSE.md](LICENSE.md) para detalhes.

  ## 🏷️ Versão

  **v0.3.0** - Recursos avançados Agent2Agent com upload de arquivos, autenticação e streaming.

  ### Changelog

  - **v0.3.0**: Recursos avançados A2A, custom requests, file upload
  - **v0.2.0**: Implementação completa do protocolo Agent2Agent
  - **v0.1.0**: Operações básicas A2A financeiras

  ---

  ⭐ **Se este projeto te ajudou, considere dar uma estrela no GitHub!**

ai_documentation_summary:
  {"purpose":"Provides A2A (Account-to-Account) transfer and account management operations plus Google Agent2Agent protocol messaging (including streaming and file upload) for use in n8n workflows.","capabilities":["Create Transfer","Get Transfer by ID","List Transfers with filters","Cancel Transfer","Get Account details","List Accounts with filters","Get Account Balance","Get Account Transactions with date filtering","Send Agent message (Agent2Agent tasks/send)","Send Agent message with real-time streaming (tasks/sendSubscribe)"],"authentication":"API Key and API Secret (configured in n8n using the 'A2A API' credential type; choose Sandbox or Production environment)","commonUseCases":["Initiate and manage account-to-account payments and refunds","Query account balances and transaction histories for reconciliation","List and filter transfers for reporting or monitoring","Cancel pending transfers","Integrate with Agent2Agent-enabled agents to send messages and receive responses"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-globals.globals
package_name: n8n-nodes-globals
display_name: globals
description: N8N community node that allows users to create global constants and use them in all their workflows
category: Community
development_style: declarative
version: 1.1.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: umanamente
author_github_url: git+https://github.com/umanamente/n8n-nodes-globals.git
npm_package_name: n8n-nodes-globals
npm_version: 1.1.0
community_fetched_at: 2026-02-19T14:41:54.110Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # <img src="nodes/GlobalConstants/globals-icon-60px.png"  height="60" style="margin-bottom: -20px;"> n8n-nodes-globals

  This is an n8n community node. It lets you create global constants that can be used in any workflow.

  * [Installation](#installation)  
  * [Usage](#usage)
  * [Version history](CHANGELOG.md)  

  ## Installation

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

  ## Usage

  This node uses N8N Credential to store the global variables.

  1. Add "`Global Constants`" node to your workflow.
     ![Global Constants node](./docs/images/usage/1_select_node.png)
  2. In the node configuration, either select an existing credential or create a new one.
  3. Select the format for your global constants:
     - Key-value pairs format: Use "name=value" pairs, one per line
     - JSON format: Provide constants as a JSON object
  4. Add your constants according to the chosen format:
     
     KeyKey-value pairs
     ![Define constants String](./docs/images/usage/2_define_constants_string.png)

     JSON
     ![Define constants](./docs/images/usage/2_define_constants_json.png)
  5. Use the global constants in your workflow
     ![Use constants](./docs/images/usage/3_use_node.png)

ai_documentation_summary:
  {"purpose":"Provides a node to create and store global constants that can be accessed from any n8n workflow.","capabilities":["Create and save global constants","Store constants in an n8n Credential","Define constants using key=value pairs (one per line)","Define constants using a JSON object","Select or create the credential within the node configuration","Expose those constants for use across all workflows"],"authentication":"n8n Credential required (stores globals in an n8n credential)","commonUseCases":["Centralize environment/config values (API keys, endpoints, timeouts) for reuse across workflows","Share configuration or feature flags between multiple workflows","Avoid duplicating constants by editing a single credential rather than multiple nodes/workflows","Store static values needed by many workflows (IDs, labels, default settings)"],"limitations":[],"relatedNodes":[]}


node_type: @devlikeapro/n8n-nodes-chatwoot.chatwoot
package_name: @devlikeapro/n8n-nodes-chatwoot
display_name: chatwoot
description: n8n node to connect with ChatWoot
category: Community
development_style: declarative
version: 1.0.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: devlikeapro
author_github_url: git+https://github.com/devlikeapro/n8n-nodes-chatwoot.git
npm_package_name: @devlikeapro/n8n-nodes-chatwoot
npm_version: 1.0.2
community_fetched_at: 2026-02-19T14:41:54.111Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # @devlikeapro/n8n-nodes-chatwoot

  <p align="center">
    <img src="./chatwoot.png" width='150px'/>
    <img src="./n8n.png" width='150px'/>
  </p>

  Automate your
  [**ChatWoot**](https://www.chatwoot.com/)
  workflows with
  [**n8n**](https://n8n.io/)
  !

  ![screenshot](node.png)

  [![npm version](https://img.shields.io/npm/v/@devlikeapro/n8n-nodes-chatwoot.svg)](https://www.npmjs.com/package/@devlikeapro/n8n-nodes-chatwoot)

  - GitHub: [devlikeapro/n8n-nodes-chatwoot](http://github.com/devlikeapro/n8n-nodes-chatwoot)
  - npm: [@devlikeapro/n8n-nodes-chatwoot](https://www.npmjs.com/package/@devlikeapro/n8n-nodes-chatwoot)
  - ChatWoot API reference: [https://www.chatwoot.com/developers/api/](https://www.chatwoot.com/developers/api/)
  - 👉 Generated from
    [ChatWoot OpenAPI](https://www.chatwoot.com/developers/api/)
    using
    [**devlikeapro/n8n-openapi-node**](https://github.com/devlikeapro/n8n-openapi-node)

  # Tables of Contents

  <!-- toc -->

  - [Installation](#installation)
  - [Usage](#usage)
    * [Credentials](#credentials)
      + [Platform](#platform)
      + [User](#user)
      + [Inbox](#inbox)
  - [Development](#development)
  - [Support the project](#support-the-project)

  <!-- tocstop -->

  # Installation
  Install [the community node package in your n8n instance](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/):
  ```
  @devlikeapro/n8n-nodes-chatwoot
  ```

  # Usage
  1. Install the community package to your n8n instance.
  2. Add **ChatWoot API** **credentials** in **n8n**.
  3. Create a new workflow with the **ChatWoot** node.

  ## Credentials
  There are few types of credentials (accounts) that you can use to authenticate with ChatWoot API.

  For different ChatWoot API Endpoints you'll need different credentials - please
  refer to the [ChatWoot API documentation](https://www.chatwoot.com/developers/api/) for more information.

  We suggest you create **ChatWoot API** credentials in **n8n** for each type of account and name it `ChatWoot - {TYPE}` 
  for better clarity.

  ![](./screenshots/n8n-credentials.png)

  ### Platform
  This token can be obtained by the system admin after creating a platformApp. This token should be used to provision agent bots, accounts, users and their roles.

  ![](./screenshots/chatwoot-platform-token.png)

  ### User
  This token can be obtained by visiting the profile page or via rails console.
  ![](./screenshots/chatwoot-profile-token.png)

  or **Super Admin** token in some cases

  ![](./screenshots/chatwoot-admin-token.png)

  ### Inbox
  This token can be obtained by visiting the inbox settings page.

  ![](./screenshots/chatwoot-inbox-token.png)

  # Development
  The node is generated from the
  [ChatWoot OpenAPI](https://www.chatwoot.com/developers/api/)
  using
  [**devlikeapro/n8n-openapi-node**](https://github.com/devlikeapro/n8n-openapi-node).

  Likely the fix should be done in the OpenAPI specification file or in the generator itself.

  # Support the project

  You can support the project by donating a small amount to help us improve the project even more.
  - [https://patreon.com/devlikeapro](https://patreon.com/devlikeapro)

ai_documentation_summary:
  {"purpose":"An n8n community node that connects n8n workflows to the ChatWoot REST API, enabling automation of ChatWoot operations such as managing conversations, messages, users, agents and inboxes.","capabilities":["Calls ChatWoot API endpoints generated from the ChatWoot OpenAPI specification","Provision agent bots, accounts, users and roles (requires Platform token)","Create, update and manage conversations and messages","Manage contacts and attachments","Manage inboxes and inbox settings and obtain inbox tokens","Perform user-level actions using user/admin tokens","Interact with webhooks and other API resources exposed by ChatWoot"],"authentication":"API key required — ChatWoot API tokens. Supports multiple token types (Platform, User, Inbox); use the token type appropriate for each endpoint.","commonUseCases":["Automatically send messages or create conversations from other systems","Provision and configure agents, bots, accounts and roles programmatically","Manage inboxes and route or tag conversations","Sync contacts and attachments between ChatWoot and external systems","Trigger workflows on inbound events by wiring ChatWoot webhooks into n8n"],"limitations":["Different endpoints require different token types (Platform/User/Inbox) — you must supply the correct credential for each operation","Node surface is generated from the ChatWoot OpenAPI spec — any omissions or inaccuracies in the spec or generator may result in missing or incorrect operations","Uses static API tokens (no OAuth2 flow provided by the node itself)"],"relatedNodes":[]}


node_type: n8n-nodes-mcp.mcp
package_name: n8n-nodes-mcp
display_name: mcp
description: MCP nodes for n8n
category: Community
development_style: declarative
version: 0.1.37
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: GitHub Actions
author_github_url: git+https://github.com/nerding-io/n8n-nodes-mcp.git
npm_package_name: n8n-nodes-mcp
npm_version: 0.1.37
community_fetched_at: 2026-02-19T14:41:54.112Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  [![Verified on MseeP](https://mseep.ai/badge.svg)](https://mseep.ai/app/bd76f121-1c8f-4f5d-9c65-1eac5d81b6af)

  # n8n-nodes-mcp-client

  > **Important Note:**
  > The Server-Sent Events (SSE) transport is deprecated and replaced by the new HTTP Streamable transport. SSE remains available for legacy compatibility, but HTTP Streamable is now the recommended method for all new implementations.

  This is an n8n community node that lets you interact with Model Context Protocol (MCP) servers in your n8n workflows.

  MCP is a protocol that enables AI models to interact with external tools and data sources in a standardized way. This node allows you to connect to MCP servers, access resources, execute tools, and use prompts.

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

  [Installation](#installation)
  [Credentials](#credentials)
  [Environment Variables](#environment-variables)
  [Operations](#operations)
  [Using as a Tool](#using-as-a-tool)
  [Compatibility](#compatibility)
  [Resources](#resources)

  ## Getting Started

  Official Quickstart Video:

  [![MCP Client Node Quickstart](/assets/mcp-n8n.png)](https://youtu.be/1t8DQL-jUJk)



  ### Community Videos

  Shoutout to all the creators of the following n8n community videos that are great resources for learning how to use this node:

  - [Is MCP the Future of N8N AI Agents? (Fully Tested!)](https://youtu.be/sb5hCcFYPIE)
  - [Connect N8N AI Agents to EVERYTHING using MCP?](https://youtu.be/tTDRgkD-120)
  - [Build an AI Agent That Can Use Any Tool (MCP in n8n Tutorial)](https://www.youtube.com/watch?v=SVZe2rdhYmA)
  - [The NEW N8N MCP is an Absolute Game-Changer (Brave Search MCP)](https://youtu.be/RxXS_FpJyGM)
  - [MCP & n8n Automation: The Ultimate Guide for MCP AI Agents (2025)](https://www.youtube.com/watch?v=mbQsnrxHPwE)
  - [REVOLUÇÃO na criação de AGENTES no N8N com o MCP Server!!!](https://www.youtube.com/watch?v=zgH85dJcs5c) (Portuguese)

  If you have a great video that you'd like to share, please let me know and I'll add it to the list!

  #### Interested a deeper dive into MCP?

  Check out my YouTube Series [MCP Explained](https://www.youtube.com/playlist?list=PLjOCx_PNfJ4S_oOSqrMi6t9_x1GllvQZO) for more information about the Model Context Protocol.

  ### Security Assessment
  [![MseeP.ai Security Assessment Badge](https://mseep.net/pr/nerding-io-n8n-nodes-mcp-badge.png)](https://mseep.ai/app/nerding-io-n8n-nodes-mcp)


  ## Installation

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

  Also pay attention to Environment Variables for [using tools in AI Agents](#using-as-a-tool). It's mandatory to set the `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE` environment variable to `true` if you want to use the MCP Client node as a tool in AI Agents.

  ## Credentials

  The MCP Client node supports three types of credentials to connect to an MCP server:

  ### Command-line Based Transport (STDIO)

  ![MCP Client STDIO Credentials](./assets/credentials.png)

  - **Command**: The command to start the MCP server
  - **Arguments**: Optional arguments to pass to the server command
  - **Environment Variables**: Variables to pass to the server in NAME=VALUE format

  ### HTTP Streamable Transport (Recommended)

  - **HTTP Streamable URL**: The HTTP endpoint that supports streaming responses (e.g., http://localhost:3001/stream)
  - **Additional Headers**: Optional headers to send with requests (format: name:value, one per line)

  HTTP Streamable is the recommended and modern method for all new integrations, providing better efficiency and flexibility compared to SSE.

  #### Example: Using a Local MCP Server with HTTP Streamable

  This example shows how to connect to a locally running MCP server using HTTP Streamable:

  1. Start a local MCP server that supports HTTP Streamable:
     ```bash
     npx @modelcontextprotocol/server-example-streamable
     ```

  2. Configure MCP Client credentials:
     - In the node settings, select **Connection Type**: `HTTP Streamable`
     - Create new credentials of type **MCP Client (HTTP Streamable) API**
     - Set **HTTP Streamable URL**: `http://localhost:3001/stream`
     - Add any required headers for authentication

  3. Create a workflow using the MCP Client node:
     - Add an MCP Client node
     - Set the Connection Type to `HTTP Streamable`
     - Select your HTTP Streamable credentials
     - Execute the workflow to see the results

  ### Server-Sent Events (SSE) Transport (Deprecated, still available for legacy use)

  - **SSE URL**: The URL of the SSE endpoint (default: http://localhost:3001/sse)
  - **Messages Post Endpoint**: Optional custom endpoint for posting messages if different from the SSE URL
  - **Additional Headers**: Optional headers to send with requests (format: name:value, one per line)

  > **Deprecated:** SSE is deprecated and will not receive further updates, but remains available for legacy compatibility. For new projects, use HTTP Streamable.

  #### Example: Using a Local MCP Server with SSE (legacy)

  This example shows how to connect to a locally running MCP server using Server-Sent Events (SSE):

  1. Start a local MCP server that supports SSE:
     ```bash
     npx @modelcontextprotocol/server-example-sse
     ```

  2. Configure MCP Client credentials:
     - In the node settings, select **Connection Type**: `Server-Sent Events (SSE)`
     - Create new credentials of type **MCP Client (SSE) API**
     - Set **SSE URL**: `http://localhost:3001/sse`
     - Add any required headers for authentication

  3. Create a workflow using the MCP Client node:
     - Add an MCP Client node
     - Set the Connection Type to `Server-Sent Events (SSE)`
     - Select your SSE credentials
     - Execute the workflow to see the results

  > **Note:** For new projects, HTTP Streamable is strongly recommended.

  ## Environment Variables

  The MCP Client node supports passing environment variables to MCP servers using the command-line based transport in two ways:

  ### 1. Using the Credentials UI

  You can add environment variables directly in the credentials configuration:

  ![Environment Variables in Credentials](./assets/credentials-envs.png)

  This method is useful for individual setups and testing. The values are stored securely as credentials in n8n.

  ### 2. Using Docker Environment Variables

  For Docker deployments, you can pass environment variables directly to your MCP servers by prefixing them with `MCP_`:

  ```yaml
  version: '3'

  services:
    n8n:
      image: n8nio/n8n
      environment:
        - MCP_BRAVE_API_KEY=your-api-key-here
        - MCP_OPENAI_API_KEY=your-openai-key-here
        - MCP_CUSTOM_SETTING=some-value
      # other configuration...
  ```

  These environment variables will be automatically passed to your MCP servers when they are executed.

  ### Example: Using Brave Search MCP Server

  This example shows how to set up and use the Brave Search MCP server:

  1. Install the Brave Search MCP server:
     ```bash
     npm install -g @modelcontextprotocol/server-brave-search
     ```

  2. Configure MCP Client credentials:
     - **Command**: `npx`
     - **Arguments**: `-y @modelcontextprotocol/server-brave-search`
     - **Environment Variables**: `BRAVE_API_KEY=your-api-key` Add a variables (space comma or newline separated)

  3. Create a workflow that uses the MCP Client node:
     - Add an MCP Client node
     - Select the "List Tools" operation to see available search tools
     - Add another MCP Client node
     - Select the "Execute Tool" operation
     - Choose the "brave_search" tool
     - Set Parameters to: `{"query": "latest AI news"}`

  ![Brave Search Example](./assets/brave-search-example.png)

  The node will execute the search and return the results in the output.

  ### Example: Multi-Server Setup with AI Agent

  This example demonstrates how to set up multiple MCP servers in a production environment and use them with an AI agent:

  1. Configure your docker-compose.yml file:

  ```yaml
  version: '3'

  services:
    n8n:
      image: n8nio/n8n
      environment:
        # MCP server environment variables
        - MCP_BRAVE_API_KEY=your-brave-api-key
        - MCP_OPENAI_API_KEY=your-openai-key
        - MCP_SERPER_API_KEY=your-serper-key
        - MCP_WEATHER_API_KEY=your-weather-api-key

        # Enable community nodes as tools
        - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
      ports:
        - "5678:5678"
      volumes:
        - ~/.n8n:/home/node/.n8n
  ```

  2. Create multiple MCP Client credentials in n8n:

     **Brave Search Credentials**:
     - Command: `npx`
     - Arguments: `-y @modelcontextprotocol/server-brave-search`

     **OpenAI Tools Credentials**:
     - Command: `npx`
     - Arguments: `-y @modelcontextprotocol/server-openai`

     **Web Search Credentials**:
     - Command: `npx`
     - Arguments: `-y @modelcontextprotocol/server-serper`

     **Weather API Credentials**:
     - Command: `npx`
     - Arguments: `-y @modelcontextprotocol/server-weather`

  3. Create an AI Agent workflow:
     - Add an AI Agent node
     - Enable MCP Client as a tool
     - Configure different MCP Client nodes with different credentials
     - Create a prompt that uses multiple data sources

  ![Multi-Server Setup](./assets/multi-server-example.png)

  Example AI Agent prompt:
  ```
  I need you to help me plan a trip. First, search for popular destinations in {destination_country}.
  Then, check the current weather in the top 3 cities.
  Finally, find some recent news about travel restrictions for these places.
  ```

  With this setup, the AI agent can use multiple MCP tools across different servers, all using environment variables configured in your Docker deployment.

  ## Operations

  The MCP Client node supports the following operations:

  ![MCP Client Operations](./assets/operations.png)

  - **Execute Tool** - Execute a specific tool with parameters
  - **Get Prompt** - Get a specific prompt template
  - **List Prompts** - Get a list of available prompts
  - **List Resources** - Get a list of available resources from the MCP server
  - **List Tools** - Get a list of available tools
  - **Read Resource** - Read a specific resource by URI

  ### Example: List Tools Operation

  ![List Tools Example](./assets/list-tools.png)

  The List Tools operation returns all available tools from the MCP server, including their names, descriptions, and parameter schemas.

  ### Example: Execute Tool Operation

  ![Execute Tool Example](./assets/execute-tool.png)

  The Execute Tool operation allows you to execute a specific tool with parameters. Make sure to select the tool you want to execute from the dropdown menu.

  ## Using as a Tool

  This node can be used as a tool in n8n AI Agents. To enable community nodes as tools, you need to set the `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE` environment variable to `true`.

  ### Setting the Environment Variable

  **If you're using a bash/zsh shell:**
  ```bash
  export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  n8n start
  ```

  **If you're using Docker:**
  Add to your docker-compose.yml file:
  ```yaml
  environment:
    - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  ```

  **If you're using the desktop app:**
  Create a `.env` file in the n8n directory:
  ```
  N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  ```

  **If you want to set it permanently on Mac/Linux:**
  Add to your `~/.zshrc` or `~/.bash_profile`:
  ```bash
  export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  ```

  Example of an AI Agent workflow results:

  ![AI Agent Example](./assets/execute-tool-result.png)

  After setting this environment variable and restarting n8n, your MCP Client node will be available as a tool in AI Agent nodes.

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Compatible with MCP Protocol version 1.0.0 or later
  - Supports both STDIO and SSE transports for connecting to MCP servers
  - SSE transport requires a server that implements the MCP Server-Sent Events specification

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Model Context Protocol Documentation](https://modelcontextprotocol.io/docs/)
  * [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
  * [MCP Transports Overview](https://modelcontextprotocol.io/docs/concepts/transports)
  * [Using SSE in MCP](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/src/client/sse.ts)

ai_documentation_summary:
  {"purpose":"Provides an n8n node to connect to Model Context Protocol (MCP) servers so workflows and AI agents can access resources, execute tools, and send prompts to models via streaming transports.","capabilities":["Connect to MCP servers using multiple transports (Command-line STDIO, HTTP Streamable, Server-Sent Events)","Stream responses from MCP servers (HTTP Streamable recommended)","Execute tools exposed by MCP servers and invoke prompts/resources","Configure credentials for each transport (command, args, env vars; HTTP stream URL and headers; SSE URL and headers)","Send additional headers with HTTP/SSE requests (for authentication)","Pass environment variables to MCP servers when using command-line (STDIO) transport","Use the MCP Client node as a tool in n8n AI Agents (requires environment flag)"],"authentication":"Supports three transport credential types: Command-line STDIO (local command + env vars, no external API key), HTTP Streamable (endpoint URL + optional headers — header/API-key style auth supported), and SSE (SSE URL + optional headers; deprecated).","commonUseCases":["Connect n8n workflows to an MCP server to run model-driven tools and retrieve streamed results","Integrate external tools/data sources with AI agents via MCP","Use a locally-run MCP server (STDIO or HTTP Streamable) for development and testing","Expose MCP functionality as a tool for n8n AI Agent nodes"],"limitations":["Server-Sent Events (SSE) transport is deprecated and will not receive further updates (kept only for legacy use)","Using the node as a tool in AI Agents requires setting the environment variable N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true","Passing environment variables to MCP servers is supported only via the command-line (STDIO) transport"],"relatedNodes":["Execute Command (for starting/using STDIO-based MCP servers)","HTTP Request (for interacting with HTTP Streamable endpoints or custom endpoints)","n8n AI Agent / Tool integration nodes (using the MCP client as a tool)"]}


node_type: n8n-nodes-rd-station-crm.rdstationcrm
package_name: n8n-nodes-rd-station-crm
display_name: rdstationcrm
description: Nós personalizados do n8n para integração com a API do RD Station CRM (v1)
category: Community
development_style: declarative
version: 1.3.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: pexuleco
author_github_url: git+https://github.com/rdstation/n8n-nodes-rd-station-crm.git
npm_package_name: n8n-nodes-rd-station-crm
npm_version: 1.3.1
community_fetched_at: 2026-02-19T14:41:54.112Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # n8n-nodes-rd-station-crm

  Nós personalizados do n8n para integração com a API do RD Station CRM (v1).

  ## 🚀 Funcionalidades

  Este pacote fornece nós personalizados para o n8n que permitem integração completa com a API do RD Station CRM, incluindo:

  ### 📋 Nós Disponíveis

  1. **RD Station CRM Contatos** - Gerenciamento de contatos
  2. **RD Station CRM Negócios** - Operações com negócios/deals
  3. **RD Station CRM Tarefas** - Gestão de tarefas
  4. **RD Station CRM Notas** - Criação e gerenciamento de notas
  5. **RD Station CRM Empresas** - Operações com empresas
  6. **RD Station CRM Produtos de Negócio** - Gestão de produtos em negócios
  7. **RD Station CRM Usuários** - Informações de usuários
  8. **RD Station CRM Times** - Gestão de equipes
  9. **RD Station CRM Pipelines** - Operações com funis de vendas
  10. **RD Station CRM Campanhas** - Gestão de campanhas
  11. **RD Station CRM Fontes** - Informações sobre fontes de leads
  12. **RD Station CRM Motivos de Perda** - Gestão de motivos de perda
  13. **RD Station CRM Webhooks** - Configuração de webhooks

  ### 🔑 Credenciais

  - **RD Station CRM API** - Autenticação via token de API

  ## 📦 Instalação

  ### Instalação via n8n Community Nodes

  1. Acesse as configurações do n8n
  2. Vá para "Community Nodes"
  3. Clique em "Install"
  4. Digite: `n8n-nodes-rd-station-crm`
  5. Clique em "Install"

  ### Instalação Manual

  ```bash
  # Clone o repositório
  git clone https://github.com/rdstation/n8n-nodes-rd-station-crm.git
  cd n8n-nodes-rd-station-crm

  # Instale as dependências
  npm install

  # Compile o projeto
  npm run build

  # Instale globalmente (opcional)
  npm install -g .
  ```

  ## 🔧 Configuração

  ### Obtendo o Token de API

  1. Acesse sua conta do RD Station CRM
  2. Vá para Configurações > Integrações > API
  3. Gere um novo token de API
  4. Copie o token gerado

  ### Configurando as Credenciais no n8n

  1. No n8n, vá para "Credentials"
  2. Clique em "Add Credential"
  3. Selecione "RD Station CRM API"
  4. Cole seu token de API no campo correspondente
  5. Teste a conexão e salve

  ## 🛠️ Desenvolvimento

  ### Estrutura do Projeto

  ```
  n8n-nodes-rd-station-crm/
  ├── credentials/           # Definições de credenciais
  │   └── RdStationCrmApi.credentials.ts
  ├── nodes/                # Nós do n8n
  │   ├── RdStationCrmContacts.node.ts
  │   ├── RdStationCrmDeals.node.ts
  │   ├── RdStationCrmTasks.node.ts
  │   ├── RdStationCrmNotes.node.ts
  │   ├── RdStationCrmCompanies.node.ts
  │   ├── RdStationCrmDealProducts.node.ts
  │   ├── RdStationCrmUsers.node.ts
  │   ├── RdStationCrmTeams.node.ts
  │   ├── RdStationCrmPipelines.node.ts
  │   ├── RdStationCrmCampaigns.node.ts
  │   ├── RdStationCrmSources.node.ts
  │   ├── RdStationCrmLossReasons.node.ts
  │   ├── RdStationCrmWebhooks.node.ts
  │   └── rdstation.svg      # Ícone dos nós
  ├── dist/                 # Arquivos compilados
  ├── index.ts              # Arquivo principal de exportação
  ├── package.json          # Configurações do pacote
  ├── tsconfig.json         # Configurações do TypeScript
  └── gulpfile.js          # Tarefas de build
  ```

  ### Scripts Disponíveis

  ```bash
  # Compilar o projeto
  npm run build

  # Modo de desenvolvimento (watch)
  npm run dev

  # Executar linter
  npm run lint

  # Corrigir problemas de linting
  npm run lintfix

  # Formatar código
  npm run format
  ```

  ## 🔄 Correções Implementadas

  ### Versão 1.0.2 - Correções de Carregamento

  **Problemas Corrigidos:**

  1. **Inconsistência no package.json**: Removidos nós inexistentes (`RdStationCrmFunnels`, `RdStationCrmStages`) e adicionado o nó `RdStationCrmPipelines` que estava faltando
  2. **Arquivo index.js otimizado**: Simplificado para apenas redirecionar para `dist/index.js`
  3. **Configuração TypeScript melhorada**: Adicionadas opções para melhor compatibilidade
  4. **Estrutura de diretórios corrigida**: Removidos subdiretórios desnecessários em `dist/nodes`
  5. **Gulpfile otimizado**: Corrigida a cópia de ícones SVG

  **Erro Resolvido:**

  ```
  Error loading package "n8n-nodes-rd-station-crm": The "paths[1]" argument must be of type string. Received an instance of Object
  ```

  **Alterações Técnicas:**

  - Corrigida a exportação de `nodeTypes` e `credentialTypes` no arquivo principal
  - Melhorada a resolução de módulos no TypeScript
  - Removidas estruturas de diretórios duplicadas
  - Otimizada a configuração do Gulp para cópia de ícones

  ## 📚 Documentação da API

  Para mais informações sobre a API do RD Station CRM, consulte:

  - [Documentação Oficial da API](https://developers.rdstation.com/en/reference)
  - [Guia de Autenticação](https://developers.rdstation.com/en/authentication)

  ## 🤝 Contribuição

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
  3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)
  4. Push para a branch (`git push origin feature/AmazingFeature`)
  5. Abra um Pull Request

  ## 📄 Licença

  Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.

  ## 🆘 Suporte

  Se você encontrar problemas ou tiver dúvidas:

  1. Verifique se o token de API está correto
  2. Confirme se a versão do n8n é compatível
  3. Consulte os logs do n8n para mais detalhes sobre erros
  4. Abra uma issue no repositório do GitHub

  ## 📈 Versões

  - **1.3.1** - Correção completa da estrutura de campos de email
    - **Emails**: Corrigida estrutura de campos de email nos nós Contatos e Negociações
    - Adicionados campos `type` (personal/work/other) e `primary` (boolean) para emails
    - Implementado processamento correto de emails com valores padrão
    - Garantida compatibilidade com a API oficial do RD Station CRM v1
  - **1.3.0** - Correção completa de todos os nós seguindo a documentação oficial da API
    - **Contatos**: Corrigida estrutura de requisições, adicionados campos customizados e base legal
    - **Organizações**: Corrigido endpoint para `/organizations`, adicionados campos customizados
    - **Negociações**: Mantidas correções da v1.2.0
    - Todos os nós agora seguem exatamente a estrutura da API oficial do RD Station CRM v1
    - Padronizada estrutura de dados com objetos aninhados (ex: `{ contact: {...} }`)
    - Corrigidos tipos de campos e valores padrão
    - Adicionados campos obrigatórios faltantes
    - Melhoradas descrições de todos os campos
  - **1.2.0** - Reescrita completa do nó de Negociações seguindo exatamente a documentação oficial da API
    - Corrigida estrutura de requisições para seguir exatamente o formato da API oficial
    - Corrigidos tipos de campos (boolean vs string) conforme documentação
    - Corrigido tratamento do campo `win` com valores true/false/null
    - Corrigido formato de datas para yyyy-mm-dd
    - Corrigida estrutura de contatos existentes (usando `_id` em vez de apenas `id`)
    - Adicionado suporte para base legal em contatos
    - Separado campo `deal_stage_id` no update conforme documentação
    - Melhoradas descrições de todos os campos seguindo a documentação oficial
    - Corrigidos filtros de período com validação booleana adequada
  - **1.1.0** - Atualização completa do nó de Negociações (Deals) seguindo a documentação oficial da API
    - Adicionados todos os parâmetros de query para listagem de negociações
    - Implementados filtros de período (fechamento, criação, previsão)
    - Adicionado suporte completo para campos customizados
    - Implementada criação de novos contatos junto com a negociação
    - Adicionado suporte para associar contatos existentes
    - Implementado gerenciamento de produtos na negociação
    - Adicionados campos de campanha, fonte e organização
    - Melhorada a estrutura de dados seguindo exatamente a API oficial
  - **1.0.9** - Correção na estrutura do package.json para compatibilidade com n8n
  - **1.0.7** - Correções de sintaxe no package.json
  - **1.0.6** - Correções de carregamento e otimizações finais
  - **1.0.5** - Versão com nome alternativo para compatibilidade
  - **1.0.4** - Correções de carregamento e otimizações
  - **1.0.3** - Correções de carregamento e otimizações finais
  - **1.0.2** - Correções de carregamento e otimizações
  - **1.0.1** - Versão inicial com todos os nós básicos
  - **1.0.0** - Primeira versão estável

  ## 🚀 Como Publicar no NPM

  Para desenvolvedores que desejam publicar este pacote:

  ### Pré-requisitos

  1. Conta no [npmjs.com](https://www.npmjs.com/)
  2. Login no npm: `npm login`

  ### Opção 1: Script Automático (Windows)

  ```bash
  # Execute o script de publicação
  .\publish.bat
  # ou
  .\publish.ps1
  ```

  ### Opção 2: Manual

  ```bash
  # 1. Fazer build
  npm run build

  # 2. Verificar conteúdo
  npm pack --dry-run

  # 3. Publicar
  npm publish
  ```

  ### Verificação Pós-Publicação

  - Acesse: https://www.npmjs.com/package/n8n-nodes-rd-station-crm
  - Teste a instalação: `npm install n8n-nodes-rd-station-crm`

ai_documentation_summary:
  {"purpose":"Provides community n8n nodes to integrate n8n workflows with the RD Station CRM v1 API, enabling automation of contact, deal, task, company and pipeline management and webhook handling.","capabilities":["Manage contacts (create, read, update, delete / general contact management)","Operate on deals/businesses (create, update, search, list operations)","Manage tasks (create, update, list, complete)","Create and manage notes attached to records","Operate on companies (CRUD and lookup)","Manage products within deals","Fetch RD Station CRM user information","Manage teams","Manage pipelines (funnels) and their stages","Manage campaigns"],"authentication":"API key required (RD Station CRM API token)","commonUseCases":["Sync contacts between RD Station CRM and other systems (CRMs, marketing tools, databases)","Create or update deals when leads reach certain criteria or are converted","Trigger workflows in n8n from RD Station webhooks (lead created/updated, deal events)","Automate task and note creation for sales reps based on pipeline events","Enrich or synchronize company and user data across systems"],"limitations":[],"relatedNodes":["RdStationCrmContacts","RdStationCrmDeals","RdStationCrmTasks","RdStationCrmNotes","RdStationCrmCompanies"]}


node_type: n8n-nodes-notionmd.notionmd
package_name: n8n-nodes-notionmd
display_name: notionmd
description: n8n node to transform markdown to notion blocks
category: Community
development_style: declarative
version: 0.1.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: minhlucvan
author_github_url: git+https://github.com/minhlucvan/n8n-nodes-notionmd.git
npm_package_name: n8n-nodes-notionmd
npm_version: 0.1.0
community_fetched_at: 2026-02-19T14:41:54.113Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-starter

  This repo contains example nodes to help you get started building your own custom integrations for [n8n](n8n.io). It includes the node linter and other dependencies.

  To make your custom node available to the community, you must create it as an npm package, and [submit it to the npm registry](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).

  ## Prerequisites

  You need the following installed on your development machine:

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


  ## Using this starter

  These are the basic steps for working with the starter. For detailed guidance on creating and publishing nodes, refer to the [documentation](https://docs.n8n.io/integrations/creating-nodes/).

  1. [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template repository.
  2. Clone your new repo:
      ```
      git clone https://github.com/<your organization>/<your-repo-name>.git
      ```
  3. Run `npm i` to install dependencies.
  4. Open the project in your editor.
  5. Browse the examples in `/nodes` and `/credentials`. Modify the examples, or replace them with your own nodes.
  6. Update the `package.json` to match your details.
  7. Run `npm run lint` to check for errors or `npm run lintfix` to automatically fix errors when possible.
  8. Test your node locally. Refer to [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for guidance.
  9. Replace this README with documentation for your node. Use the [README_TEMPLATE](README_TEMPLATE.md) to get started.
  10. Update the LICENSE file to use your details.
  11. [Publish](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry) your package to npm.

  ## More information

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

  ## License

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

ai_documentation_summary:
  {"purpose":"Transforms Markdown content into Notion block structures so the result can be used with the Notion API or other Notion-related steps in n8n workflows.","capabilities":["Convert Markdown input into Notion-compatible block objects","Output a blocks array representing the Markdown structure for use in subsequent workflow nodes","Integrate within n8n workflows as a transformation step between Markdown sources and Notion API calls"],"authentication":"Not specified in the README (no authentication method documented)","commonUseCases":["Convert exported or authored Markdown files into Notion page blocks to create or update Notion pages","Automate migration of Markdown-based content into Notion via n8n workflows","Use as a preprocessing step to transform Markdown before sending to a Notion API node or HTTP request"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-docx-converter.docxconverter
package_name: n8n-nodes-docx-converter
display_name: docxconverter
description: A node to convert Docx to Text
category: Community
development_style: declarative
version: 0.1.3
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: cre8tiv
author_github_url: git+https://github.com/cre8tiv/n8n-docx-converter.git
npm_package_name: n8n-nodes-docx-converter
npm_version: 0.1.3
community_fetched_at: 2026-02-19T14:41:54.114Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # n8n-nodes-docx-converter

  This is an n8n community node. It lets you use DOCX to Text conversion in your n8n workflows.

  DOCX to Text is a node that converts DOCX files to plain text.

  [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

  - Convert DOCX file to plain text

  ## Credentials

  No credentials are required for this node.

  ## Compatibility

  This node requires n8n version 1.0.0 or higher. It has been tested with the latest version of n8n.

  ## Usage

  To use this node, provide the path to the DOCX file that you want to convert to text. The node will output the path to the generated text file.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Mammoth documentation](https://github.com/mwilliamson/mammoth.js)

  ## Version history

  ### 0.1.0
  - Initial release

  ### 0.1.3 
  - Use input and output destinations

ai_documentation_summary:
  {"purpose":"An n8n community node that converts DOCX files to plain text so workflows can extract and use document text.","capabilities":["Convert a DOCX file to plain text","Accept a filesystem path to the DOCX file as input","Output the path to the generated text file","Support specifying input and output destinations (as of v0.1.3)","Uses Mammoth.js for DOCX-to-text extraction"],"authentication":"None","commonUseCases":["Extracting text from uploaded DOCX documents for indexing or search","Feeding document text into NLP or AI pipelines (summarization, classification)","Automated processing of DOCX attachments (e.g., email workflows)","Archiving or plain-text conversion for downstream processing or storage"],"limitations":["Only converts DOCX files (no other document formats supported)","Produces plain text only — formatting and advanced styling are not preserved","Requires providing a path to the DOCX file; does not itself fetch remote files (use other nodes to retrieve files)","Outputs the path to the generated text file rather than returning the text inline","Requires n8n version 1.0.0 or higher"],"relatedNodes":[]}


node_type: n8n-nodes-puppeteer.puppeteer
package_name: n8n-nodes-puppeteer
display_name: puppeteer
description: n8n node for browser automation using Puppeteer
category: Community
development_style: declarative
version: 1.5.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: drudge
author_github_url: git+https://github.com/drudge/n8n-nodes-puppeteer.git
npm_package_name: n8n-nodes-puppeteer
npm_version: 1.5.0
community_fetched_at: 2026-02-19T14:41:54.115Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # n8n-nodes-puppeteer

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

  [n8n](https://www.n8n.io) node for browser automation using [Puppeteer](https://pptr.dev/). Execute custom scripts, capture screenshots and PDFs, scrape content, and automate web interactions using Chrome/Chromium's DevTools Protocol. Full access to Puppeteer's API plus n8n's Code node capabilities makes this node powerful for any browser automation task.

  ## How to install

  ### Community Nodes (Recommended)

  For n8n version 0.187 and later, you can install this node through the Community Nodes panel:

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

  ### Docker Installation (Recommended for Production)

  We provide a ready-to-use Docker setup in the `docker/` directory that includes all necessary dependencies and configurations:

  1. Clone this repository

  2. Build your Docker image:
  ```bash
  npm run docker:build
  ```

  3. Run the container:
  ```bash
  npm run docker:run
  ```

  Or for testing without persistent data:
  ```bash
  npm run docker:run:fresh
  ```

  #### Available Docker Scripts

  - `npm run docker:build` - Build the Docker image with Puppeteer node
  - `npm run docker:run` - Run n8n with persistent data volume
  - `npm run docker:run:fresh` - Run n8n without persistent data (clean start)
  - `npm run docker:run:external-browser` - Run with external browser connection example
  - `npm run docker:test` - Quick test to verify the image works
  - `npm run docker:shell` - Open a shell inside the container for debugging
  - `npm run docker:clean` - Remove the data volume
  - `npm run docker:clean:all` - Remove data volume and images

  #### Container Optimizations

  When running in Docker or Kubernetes, the node automatically detects the container environment and applies necessary Chrome launch arguments (`--no-sandbox`, `--disable-setuid-sandbox`, `--disable-dev-shm-usage`, `--disable-gpu`). This happens automatically - no configuration needed!

  A blue info banner will appear in the node when a container is detected. This can be toggled off in Options > Add Container Arguments if needed.

  ### Manual Installation

  For a standard installation without Docker:

  ```bash
  # Navigate to your n8n root directory
  cd /path/to/n8n

  # Install the package
  npm install n8n-nodes-puppeteer
  ```

  Note: By default, when Puppeteer is installed, it downloads a compatible version of Chromium. While this works, it increases installation size and may not include necessary system dependencies. For production use, we recommend either using the Docker setup above or installing system Chrome/Chromium and setting the `PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true` environment variable.

  ## Browser Setup Options

  ### 1. Local Browser (Docker Setup - Recommended)

  The included Docker setup provides the most reliable way to run Chrome/Chromium with all necessary dependencies. It uses Alpine Linux's Chromium package and includes all required fonts and libraries.

  ### 2. Remote Browser (Alternative for Cloud)

  You can also connect to an external Chrome or Firefox instance using the "Browser WebSocket Endpoint" option. This approach:
  - Eliminates the need for Chrome dependencies in your n8n environment
  - Simplifies deployment and maintenance
  - Provides better resource isolation
  - Works great for cloud and containerized deployments
  - Supports Firefox via WebDriver BiDi protocol

  Options include:
  - **Managed Services**: Use [browserless](https://browserless.io) or [browsercloud](https://browsercloud.io)
  - **Self-Hosted Chrome**: Run your own [browser container](https://docs.browserless.io/docker/config):
    ```bash
    docker run -p 3000:3000 -e "TOKEN=6R0W53R135510" ghcr.io/browserless/chromium
    ```
  - **Self-Hosted Firefox**: Run Firefox with WebDriver BiDi support

  #### Configuring Remote Browser Connection

  **Per-Node Configuration:**
  In any Puppeteer node, go to Options > Add Option:
  - Add "Browser WebSocket Endpoint" and enter your WebSocket URL (e.g., `ws://browserless:3000?token=6R0W53R135510`)
  - Add "Protocol" and select:
    - **CDP (Chrome DevTools Protocol)** - for Chrome/Chromium (default)
    - **WebDriver BiDi** - for Firefox

  **Global Configuration via Environment Variables (Recommended):**

  Instead of configuring each node individually, you can set environment variables:

  ```bash
  # For Chrome/Chromium
  docker run -it -p 5678:5678 \
    -e PUPPETEER_BROWSER_WS_ENDPOINT=ws://browserless:3000 \
    -e PUPPETEER_PROTOCOL=cdp \
    n8n-puppeteer

  # For Firefox
  docker run -it -p 5678:5678 \
    -e PUPPETEER_BROWSER_WS_ENDPOINT=ws://firefox:4444 \
    -e PUPPETEER_PROTOCOL=webDriverBiDi \
    n8n-puppeteer
  ```

  Or with Docker Compose:

  ```yaml
  version: '3.8'
  services:
    n8n:
      image: n8n-puppeteer
      environment:
        - PUPPETEER_BROWSER_WS_ENDPOINT=ws://browserless:3000
        - PUPPETEER_PROTOCOL=cdp
      ports:
        - "5678:5678"
    
    browserless:
      image: browserless/chrome
      ports:
        - "3000:3000"
  ```

  When environment variables are set, a blue info banner will appear showing the configured endpoint. Individual nodes can still override these settings if needed.

  ## Troubleshooting

  If you see errors about missing shared libraries (like `libgobject-2.0.so.0` or `libnss3.so`), either:

  1. Install the missing Chrome dependencies
  2. Switch to using a remote browser with the WebSocket endpoint option

  For additional help, see [Puppeteer's troubleshooting guide](https://pptr.dev/troubleshooting).

  ## Node Reference

  - **Operations**

    - Get the full HTML contents of the page
    - Capture the contents of a page as a PDF document
    - Capture screenshot of all or part of the page
    - Execute custom script to interact with the page

  - **Options**

    - All Operations

      - **Batch Size**: Maximum number of pages to open simultaneously. More pages will consume more memory and CPU.
      - **Browser WebSocket Endpoint**: The WebSocket URL of the browser to connect to. When configured, puppeteer will skip the browser launch and connect to the browser instance. Can also be set globally via environment variables: `PUPPETEER_BROWSER_WS_ENDPOINT` or `PUPPETEER_WS_ENDPOINT`.
      - **Protocol**: The protocol to use when connecting to the browser. Options:
        - **CDP (Chrome DevTools Protocol)** - Default for Chrome/Chromium
        - **WebDriver BiDi** - For Firefox and cross-browser automation
        Can also be set globally via environment variable: `PUPPETEER_PROTOCOL`.
      - **Emulate Device**: Allows you to specify a [device](https://github.com/puppeteer/puppeteer/blob/main/src/common/DeviceDescriptors.ts) to emulate when requesting the page.
      - **Executable Path**: A path where Puppeteer expects to find the bundled browser. Has no effect when 'Browser WebSocket Endpoint' is set.
      - **Extra Headers**: Allows you add additional headers when requesting the page.
      - **Timeout**: Allows you to specify the maximum navigation time in milliseconds. You can pass 0 to disable the timeout entirely.
      - **Protocol Timeout**: Maximum time in milliseconds to wait for a protocol response. Pass 0 to disable timeout.
      - **Wait Until**: Allows you to change how Puppeteer considers navigation completed.
        - `load`: The load event is fired.
        - `domcontentloaded`: The DOMContentLoaded event is fired.
        - `networkidle0`: No more than 0 connections for at least 500 ms.
        - `networkidle2`: No more than 2 connections for at least 500 ms.
      - **Page Caching**: Allows you to toggle whether pages should be cached when requesting.
      - **Headless mode**: Allows you to change whether to run browser runs in headless mode or not.
      - **Use Chrome Headless Shell**: Whether to run browser in headless shell mode. Defaults to false. Headless mode must be enabled. chrome-headless-shell must be in $PATH.
      - **Stealth mode**: When enabled, applies various techniques to make detection of headless Puppeteer harder. Powered by [puppeteer-extra-plugin-stealth](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth).
      - **Human typing mode**: Gives page the function `.typeHuman()` which "humanizes" the writing of input elements. Includes configurable options for typing speed, typos, and backspace delays.
      - **Launch Arguments**: Allows you to specify additional command line arguments passed to the browser instance.
      - **Capture Downloads**: When enabled, any files downloaded during script execution (via clicks, direct downloads, etc.) will be automatically captured and returned as binary data in the node output. Perfect for downloading PDFs, images, or other files triggered by user interactions. Files are automatically cleaned up after capture.
      - **Add Container Arguments**: Automatically adds recommended arguments for container environments (`--no-sandbox`, `--disable-setuid-sandbox`, `--disable-dev-shm-usage`, `--disable-gpu`). Container environments are auto-detected by default. Disable only if you experience launch issues.
      - **Proxy Server**: Allows Puppeteer to use a custom proxy configuration. You can specify a custom proxy configuration in three ways:
        By providing a semi-colon-separated mapping of list scheme to url/port pairs.
        For example, you can specify:

              http=foopy:80;ftp=foopy2

        to use HTTP proxy "foopy:80" for http URLs and HTTP proxy "foopy2:80" for ftp URLs.

        By providing a single uri with optional port to use for all URLs.
        For example:

              foopy:8080

        will use the proxy at foopy:8080 for all traffic.

        By using the special "direct://" value.

              direct://" will cause all connections to not use a proxy.

    - Get PDF
      - **File Name**: Allows you to specify the filename of the output file.
      - **Page Ranges** field: Allows you to specify paper ranges to print, e.g. 1-5, 8, 11-13.
      - **Scale**: Allows you to scale the rendering of the web page. Amount must be between 0.1 and 2
      - **Prefer CSS Page Size**: Give any CSS @page size declared in the page priority over what is declared in the width or height or format option.
      - **Format**: Allows you to specify the paper format types when printing a PDF. eg: Letter, A4.
      - **Height**: Allows you to set the height of paper. You can pass in a number or a string with a unit.
      - **Width**: Allows you to set the width of paper. You can pass in a number or a string with a unit.
      - **Landscape**: Allows you to control whether to show the header and footer
      - **Margin**: Allows you to specify top, left, right, and bottom margin.
      - **Display Header/Footer**: Allows you to specify whether to show the header and footer.
      - **Header Template**: Allows you to specify the HTML template for the print header. Should be valid HTML with the following classes used to inject values into them:
        - `date`: Formatted print date
        - `title`: Document title
        - `url`: Document location
        - `pageNumber` Current page number
        - `totalPages` Total pages in the document
      - **Footer Template**: Allows you to specify the HTML template for the print footer. Should be valid HTML with the following classes used to inject values into them:
        - `date`: Formatted print date
        - `title`: Document title
        - `url`: Document location
        - `pageNumber` Current page number
        - `totalPages` Total pages in the document
      - **Transparent Background**: Allows you to hide the default white background and allows generate PDFs with transparency.
      - **Background Graphic**: Allows you to include background graphics.
    - Get Screenshot
      - **File Name**: Allows you to specify the filename of the output file.
      - **Type** field: Allows you to specify the image format of the output file:
        - JPEG
        - PNG
        - WebP
      - **Quality**: Allows you to specify the quality of the image.
        - Accepts a value between 0-100.
        - Not applicable to PNG images.
      - **Full Page**: Allows you to capture a screen of the full scrollable content.

  ## Custom Scripts

  The Custom Script operation gives you complete control over Puppeteer to automate complex browser interactions, scrape data, generate PDFs/screenshots, and more. Scripts run in a sandboxed environment with access to the full Puppeteer API and n8n's Code node features.

  Before script execution, you can configure browser behavior using the operation's options like:

  - Emulate specific devices
  - Set custom headers
  - Enable stealth mode to avoid detection
  - Configure proxy settings
  - Set page load timeouts
  - And more

  Access Puppeteer-specific objects using:

  - `$page` - Current page instance
  - `$browser` - Browser instance
  - `$puppeteer` - Puppeteer library
  - `$input.query` - Input query from AI agents (when used as a tool)

  Plus all special variables and methods from the Code node are available. For a complete reference, see the [n8n documentation](https://docs.n8n.io/code-examples/methods-variables-reference/). Just like n8n's Code node, anything you `console.log` will be shown in the browser's console during test mode or in stdout when configured.

  ### AI Agent Integration

  When used as a tool by n8n AI agents, this node supports two powerful workflows:

  **1. AI-Generated Scripts**: AI agents can dynamically generate the entire Puppeteer script using `$fromAI()` on the Script Code parameter. The AI analyzes the task and writes the appropriate Puppeteer code to accomplish it.

  ```javascript
  // AI agent generates script dynamically based on the task
  scriptCode: $fromAI('code', 'Generate a Puppeteer script to extract product prices from the homepage')
  ```

  **2. Reusable Scripts with AI Input**: Write a reusable script that accepts dynamic input from AI agents via the Query parameter. Access the input using `$input.query` in your script.

  ```javascript
  // Reusable script that processes AI-provided input
  const url = $input.query || 'https://example.com';
  await $page.goto(url);

  const data = await $page.evaluate(() => {
    return document.querySelector('h1').textContent;
  });

  return [{ url, title: data }];
  ```

  ```javascript
  // AI agent provides input dynamically
  query: $fromAI('url', 'The website URL to scrape')
  ```

  This makes the node extremely flexible for AI-powered automation - agents can either write custom scripts for specific tasks or pass data to pre-built, reusable scripts.

  ### Basic

  ```javascript
  // Navigate to an IP lookup service
  await $page.goto("https://httpbin.org/ip");

  // Extract the IP address from the page content
  const ipData = await $page.evaluate(() => {
    const response = document.body.innerText;
    const parsed = JSON.parse(response);
    return parsed.origin; // Extract the 'origin' field, which typically contains the IP address
  });

  console.log("Hello, world!");

  console.log("IP Address", ipData);

  // Return the result in the required format (array)
  return [{ ip: ipData, ...$json }];
  ```

  ### Storing and re-using cookies

  #### Node 1

  ```javascript
  await $page.goto("https://www.example.com/login");

  // Perform login
  await $page.type("#login-username", "user");
  await $page.type("#login-password", "pass");
  await $page.click("#login-button");

  // Store cookies for later use
  const cookies = await $page.cookies();

  return [{ cookies }];
  ```

  #### Node 2

  ```javascript
  const { cookies } = $input.first().json;

  // Restore cookies
  await $page.setCookie(...cookies);

  // Navigate to authenticated page
  await $page.goto("https://example.com/protected-page");

  // Perform authenticated operations
  const data = await $page.evaluate(() => {
    return document.querySelector(".protected-content").textContent;
  });

  return [{ data }];
  ```

  ### Working with Binary Data

  ```javascript
  await $page.goto("https://www.google.com");
  const imageData = await $page.screenshot({ type: "png", encoding: "base64" });
  return [
    {
      binary: {
        screenshot: {
          data: imageData,
          mimeType: "image/png",
          fileName: "screenshot.png",
        },
      },
    },
  ];
  ```

  ### Downloading Files

  The Capture Downloads option makes it easy to download files triggered by user interactions or scripts:

  ```javascript
  // Navigate to a page with downloadable files
  await $page.goto('https://example.com/downloads');

  // Click a download button - the file will be automatically captured
  await $page.click('#download-pdf-button');

  // Wait a moment for the download to complete
  await $page.waitForTimeout(2000);

  // Return the result - downloaded files will be attached as binary data
  return [{ json: { success: true } }];
  ```

  When the "Capture Downloads" option is enabled:
  - All files downloaded during script execution are automatically captured
  - Files are returned as binary data in the node output
  - Multiple files are supported - each file gets its own binary property
  - Files are automatically cleaned up after capture
  - Works with direct downloads, click-triggered downloads, and programmatic downloads

  This is particularly useful for:
  - Downloading PDFs from web applications
  - Capturing generated reports
  - Saving images or documents triggered by user actions
  - Testing download functionality in automated workflows

  ## Environment Variables

  The following environment variables can be used to configure Puppeteer globally:

  - **`PUPPETEER_BROWSER_WS_ENDPOINT`** or **`PUPPETEER_WS_ENDPOINT`**: WebSocket URL of the browser to connect to. This eliminates the need to configure each node individually.
  - **`PUPPETEER_PROTOCOL`**: Protocol to use (`cdp` or `webDriverBiDi`). Useful for Firefox setups.
  - **`PUPPETEER_SKIP_CHROMIUM_DOWNLOAD`**: Set to `true` to skip downloading Chromium during installation.
  - **`PUPPETEER_EXECUTABLE_PATH`**: Path to the browser executable.

  Example:
  ```bash
  docker run -it -p 5678:5678 \
    -e PUPPETEER_BROWSER_WS_ENDPOINT=ws://browserless:3000 \
    -e PUPPETEER_PROTOCOL=cdp \
    n8n-puppeteer
  ```

  Node-level settings always override environment variables when specified.

  ## Firefox Support

  This node supports Firefox through WebDriver BiDi protocol. To use Firefox:

  1. Set up a Firefox instance with WebDriver BiDi enabled
  2. Configure the connection either:
     - **Per-node**: Options > Browser WebSocket Endpoint + Protocol (WebDriver BiDi)
     - **Globally**: Environment variables `PUPPETEER_BROWSER_WS_ENDPOINT` + `PUPPETEER_PROTOCOL=webDriverBiDi`
  3. Execute your workflows with Firefox!

  ## Screenshots

  ### Run Custom Script

  ![](images/script.png)

  ### Get Page Content

  ![](images/content.png)

  ### Get Screenshot

  ![](images/screenshot.png)

  ## License

  MIT License

  Copyright (c) 2022-2024 Nicholas Penree <nick@penree.com>

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.

ai_documentation_summary:
  {"purpose":"An n8n community node that provides browser automation via Puppeteer—run custom scripts, scrape pages, capture screenshots and PDFs, and automate web interactions using Chrome/Chromium (or remote browsers) from n8n workflows.","capabilities":["Get full page HTML contents","Capture page as PDF","Capture screenshots (full page or clipped regions)","Execute custom Puppeteer scripts / evaluate arbitrary page JS","Scrape and extract content from pages","Automate interactions (navigate, click, type, etc.) via Puppeteer API","Connect to remote browsers via Browser WebSocket Endpoint","Support CDP (Chrome/Chromium) and WebDriver BiDi (Firefox) protocols","Per-node options and global configuration via environment variables","Automatic container-aware Chrome launch arguments when running in Docker/Kubernetes"],"authentication":"None (node connects to a browser instance). Remote browser WebSocket endpoints may require service-specific tokens or credentials embedded in the URL or provided by the remote service.","commonUseCases":["Web scraping and HTML/data extraction","Automated screenshot generation (reporting, previews)","Exporting pages to PDF (invoices, reports, page archives)","Automating form submissions, logins, and other website interactions","Running custom browser-side scripts for data enrichment or testing"],"limitations":["Requires a Chrome/Chromium binary or remote browser; installing Puppeteer by default downloads Chromium which increases install size","On some systems missing native browser libraries (e.g., libgobject, libnss3) can cause errors—Docker or a remote browser is recommended for production","Node is a community node (requires enabling/installing community packages in n8n and accepting associated risks)","Advanced configuration is required to use remote browsers or Firefox (must set WebSocket endpoint and choose protocol)"],"relatedNodes":["Code (n8n's Code node)"]}


node_type: @asaasbr/n8n-nodes-asaas.asaas
package_name: @asaasbr/n8n-nodes-asaas
display_name: asaas
description: n8n nodes for integrating with the Asaas API
category: Community
development_style: declarative
version: 1.0.3
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: phelipe_pereira
author_github_url: git+https://github.com/asaasdev/n8n-plugin-asaas.git
npm_package_name: @asaasbr/n8n-nodes-asaas
npm_version: 1.0.3
community_fetched_at: 2026-02-19T14:41:54.115Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # Módulo Asaas para N8N



  Nó oficial de N8N para integração com a [API do Asaas](https://docs.asaas.com/).
  Este módulo permite automatizar cobranças, gestão de clientes e notificações diretamente em seus fluxos de trabalho no [n8n](https://n8n.io).



  ## Recursos Implementados



  Atualmente, o módulo oferece suporte aos seguintes grupos de recursos da API Asaas:



  - 👥 **Clientes**: criação, listagem, atualização, exclusão e restauração de clientes.

  - 💰 **Cobranças (Payments)**: emissão e consulta de cobranças, incluindo suporte a PIX, boleto e cartão de crédito.

  - 🔔 **Notificações**: configuração e gerenciamento de notificações automáticas.

  - 📄 **Assinaturas e Parcelamentos**: gestão de recorrências e planos parcelados.

  - 💳 **Transações PIX**: criação de cobranças PIX e emissão de QR Codes.

  - 📊 **Financeiro e Relatórios**: extrato, antecipações e estatísticas de faturamento.

  - ⚙️ **Conta e Configurações**: dados comerciais, personalização e webhooks.



  ## Rotas de API utilizadas



  -  *Produção*: [https://api.asaas.com/v3](https://api.asaas.com/v3)

  -  *Sandbox*: [https://api-sandbox.asaas.com/v3](https://api-sandbox.asaas.com/v3)



  ## Instalação



  Via **npm** (recomendado):

  ```bash

  npm install @asaasbr/n8n-nodes-asaas

  ```



  Via **Community Nodes** no n8n:

  1. Acesse *Settings → Community Nodes*

  2. Clique em *Install a community node*

  3. Digite: `@asaasbr/n8n-nodes-asaas`

  4. Clique em *Install*



  ## Pré-requisitos



  - Conta no [Asaas](https://asaas.com) (produção ou sandbox)

  - API Key ativa (obtida no painel Asaas)

  - n8n versão `>=1.0.0`

  - Node.js versão `>=20.15`



  ## Configuração



  1. No n8n, vá em **Credentials → Add Credential**

  2. Procure por **Asaas API**

  3. Preencha:

  - API Key: sua chave do Asaas

  - Ambiente: *Sandbox* (testes) ou *Produção*

  4. Teste a conexão e salve

  ## Feedback e Sugestões

  Encontrou algum bug ou tem uma ideia de melhoria?  
  Contribua para tornar este módulo ainda melhor :rocket:

  [https://forms.gle/Hbo5JhEZHJHVSrYH7](https://forms.gle/Hbo5JhEZHJHVSrYH7)


  ## Licença



  MIT

ai_documentation_summary:
  {"purpose":"n8n nodes to integrate with the Asaas API, enabling automation of customer management, billing (PIX, boleto, card), subscriptions, notifications and financial reporting directly within n8n workflows.","capabilities":["Clients: create, list, update, delete and restore customers","Payments: create and query charges/invoices (support for PIX, boleto and credit card)","PIX transactions: create PIX charges and generate QR Codes","Notifications: configure and manage automatic notifications","Subscriptions and installments: manage recurring subscriptions and installment plans","Financials & reports: retrieve statements, anticipations and billing statistics","Account & settings: manage commercial data, customization and webhooks","Environment support: use Production or Sandbox API endpoints"],"authentication":"API key required (Asaas API Key configured in n8n Credentials; choose Sandbox or Production environment)","commonUseCases":["Automate issuing and tracking customer payments (PIX, boletos, credit card)","Create and update customer records as part of onboarding flows","Manage recurring billing and subscription plans","Generate PIX QR codes for instant payments","Configure and receive webhook notifications from Asaas into n8n workflows"],"limitations":["Requires an Asaas account and an active API Key","Requires n8n >= 1.0.0 and Node.js >= 20.15 (per README prerequisites)","No other missing features or explicit limitations are documented in the README"],"relatedNodes":["Asaas API credentials (credential type used to authenticate the node)","Webhook (to receive Asaas notifications/webhooks into workflows)","HTTP Request (commonly used alongside for custom API calls or unsupported endpoints)"]}


node_type: @pixelinfinito/n8n-nodes-chatwoot.chatwoot
package_name: @pixelinfinito/n8n-nodes-chatwoot
display_name: chatwoot
description: n8n community node for Chatwoot API integration
category: Community
development_style: declarative
version: 0.3.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-02-19 14:41:54
author_name: mctlisboa
author_github_url: git+https://github.com/pixelinfinito/n8n-nodes-chatwoot.git
npm_package_name: @pixelinfinito/n8n-nodes-chatwoot
npm_version: 0.3.1
community_fetched_at: 2026-02-19T14:41:54.116Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # @pixelinfinito/n8n-nodes-chatwoot

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

  A comprehensive n8n community node for integrating with Chatwoot API. This node provides full access to Chatwoot's Application APIs for managing contacts, conversations, messages, and more.

  ## 🚀 Features

  - **🔄 Custom JSON Mode**: Choose between structured UI fields or raw JSON for maximum flexibility
  - **💬 Interactive Messages**: Support for forms, cards, options, and articles
  - **📊 Complete API Coverage**: All major Chatwoot Application API endpoints
  - **🔧 Debug Logging**: Built-in console logging for troubleshooting
  - **✨ Multiple Resources**: Account, Contact, Conversation, Message, Inbox, Canned Response, Webhook, Team, and Label operations
  - **🔐 Simplified Authentication**: Streamlined Application API authentication
  - **📄 Pagination Support**: Built-in pagination for list operations
  - **⚡ Error Handling**: Comprehensive error handling with continue on fail option
  - **📝 TypeScript**: Fully typed with TypeScript for better development experience

  ## 🎯 Send Modes

  Each operation that sends data (create/update) offers two modes:

  ### 🎨 Structured Fields Mode *(Default)*
  User-friendly form fields with validation and guidance. Perfect for beginners and simple use cases.

  ### ⚡ Custom JSON Mode  
  Raw JSON input for advanced users who need:
  - Full control over API payloads
  - Access to any Chatwoot API feature
  - Complex nested objects
  - Custom attributes not in the UI
  - Dynamic workflows with computed JSON

  ## 📋 Resources & Operations

  ### 👤 Account
  - **Get**: Retrieve account details

  ### 👥 Contact
  - **Get**: Get a contact by ID
  - **Get All**: List all contacts with pagination and filtering
  - **Create**: Create a new contact (🔄 *Custom JSON supported*)
  - **Update**: Update contact information (🔄 *Custom JSON supported*)
  - **Delete**: Delete a contact
  - **Search**: Search contacts by name, email, or phone

  ### 💬 Conversation
  - **Get**: Get a conversation by ID
  - **Get All**: List all conversations with filtering
  - **Update Status**: Change conversation status (open, resolved, pending)
  - **Add Labels**: Add labels to conversations
  - **Update Custom Attributes**: Set custom attributes

  ### 📨 Message
  - **Get**: Get a message by ID
  - **Get All**: List all messages in a conversation
  - **Create**: Send messages with full interactive support (🔄 *Custom JSON supported*)
    - 💬 **Text Messages**: Simple text content
    - 🎛️ **Interactive Options**: Dropdown/selection menus
    - 📝 **Interactive Forms**: Multi-field forms with validation
    - 🎴 **Interactive Cards**: Rich media cards with actions
    - 📄 **Interactive Articles**: Article links and descriptions

  ### 📮 Inbox
  - **Get**: Get an inbox by ID
  - **Get All**: List all inboxes

  ### 💾 Canned Response
  - **Get**: Get a canned response by ID
  - **Get All**: List all canned responses

  ### 🔗 Webhook
  - **Get**: Get a webhook by ID
  - **Get All**: List all webhooks

  ### 👨‍💼 Team
  - **Get**: Get a team by ID
  - **Get All**: List all teams

  ### 🏷️ Label
  - **Get**: Get a label by ID
  - **Get All**: List all labels

  ## 📦 Installation

  ### Using npm

  ```bash
  npm install @pixelinfinito/n8n-nodes-chatwoot
  ```

  ### Using n8n Community Nodes

  1. In n8n, go to **Settings** → **Community Nodes**
  2. Click **Install a Community Node**
  3. Enter: `@pixelinfinito/n8n-nodes-chatwoot`
  4. Click **Install**

  ## ⚙️ Setup

  ### 1. Get Your Chatwoot API Token

  1. Log in to your Chatwoot account
  2. Go to **Profile Settings** → **API Access Token**
  3. Generate an **API Access Token**
  4. Copy the token for use in n8n

  ### 2. Configure Credentials in n8n

  1. In n8n, go to **Settings** → **Credentials**
  2. Click **Add Credential**
  3. Search for **Chatwoot API**
  4. Fill in the following details:
     - **Base URL**: Your Chatwoot instance URL (e.g., `https://app.chatwoot.com`)
     - **Access Token**: Your API access token from step 1
     - **Account ID**: Your numeric account ID (usually `1` for the first account)

  ### 3. Add the Chatwoot Node

  1. In your workflow, click the **+** button
  2. Search for **Chatwoot**
  3. Select the Chatwoot node
  4. Choose your credentials
  5. Select the resource and operation you want to perform

  ## 🛠️ Usage Examples

  ### 👥 Contact Management

  #### Create Contact (Structured Fields)
  ```
  Resource: Contact
  Operation: Create
  Send: Structured Fields
  ├─ Name: John Doe
  ├─ Email: john.doe@example.com
  ├─ Phone: +1234567890
  └─ Identifier: user-001
  ```

  #### Create Contact (Custom JSON)
  ```
  Resource: Contact
  Operation: Create
  Send: Custom JSON
  └─ Custom JSON:
  {
    "name": "John Doe",
    "email": "john.doe@example.com",
    "phone_number": "+1234567890",
    "custom_attributes": {
      "company": "Acme Corp",
      "role": "Manager",
      "vip": true
    }
  }
  ```

  ### 💬 Interactive Messages

  #### Text Message (Structured Fields)
  ```
  Resource: Message
  Operation: Create
  Send: Structured Fields
  ├─ Conversation ID: 123
  ├─ Message Type: Text Message
  └─ Content: Hello! How can I help you today?
  ```

  #### Interactive Options (Structured Fields)
  ```
  Resource: Message
  Operation: Create
  Send: Structured Fields
  ├─ Conversation ID: 123
  ├─ Message Type: Interactive Options
  ├─ Message Content: Please select your department:
  └─ Select Options:
      ├─ Title: Sales | Value: sales
      ├─ Title: Support | Value: support
      └─ Title: Billing | Value: billing
  ```

  #### Interactive Cards (Custom JSON)
  ```
  Resource: Message
  Operation: Create
  Send: Custom JSON
  └─ Custom JSON:
  {
    "content": "Check out our latest products",
    "content_type": "cards",
    "content_attributes": {
      "items": [
        {
          "title": "Premium Plan",
          "description": "Advanced features for power users",
          "media_url": "https://example.com/premium.jpg",
          "actions": [
            {
              "type": "link",
              "text": "Learn More",
              "uri": "https://example.com/premium"
            },
            {
              "type": "postback", 
              "text": "Subscribe",
              "payload": "SUBSCRIBE_PREMIUM"
            }
          ]
        }
      ]
    },
    "message_type": "outgoing",
    "private": false
  }
  ```

  #### Interactive Form (Structured Fields)
  ```
  Resource: Message
  Operation: Create
  Send: Structured Fields
  ├─ Conversation ID: 123
  ├─ Message Type: Interactive Form
  ├─ Form Content: Please fill out your information:
  └─ Form Fields:
      ├─ Field: Name | Type: text | Required: true
      ├─ Field: Email | Type: email | Required: true
      └─ Field: Message | Type: text_area | Required: false
  ```

  ### 🔍 Search and Filter

  #### Search Contacts
  ```
  Resource: Contact
  Operation: Search
  ├─ Search Query: john@example.com
  └─ Sort: name
  ```

  #### Get All Conversations with Filtering
  ```
  Resource: Conversation
  Operation: Get All
  ├─ Return All: false
  ├─ Limit: 50
  ├─ Status: open
  ├─ Inbox ID: 1
  └─ Labels: urgent,vip
  ```

  ## 🧪 Advanced Usage

  ### Custom JSON Examples

  #### Contact with Custom Attributes
  ```json
  {
    "name": "Jane Smith",
    "email": "jane.smith@company.com",
    "phone_number": "+1987654321",
    "custom_attributes": {
      "company": "Tech Corp",
      "department": "Engineering",
      "team_lead": true,
      "onboarding_completed": true,
      "subscription_tier": "enterprise"
    }
  }
  ```

  #### Interactive Form with All Field Types
  ```json
  {
    "content": "Complete your profile",
    "content_type": "form",
    "content_attributes": {
      "items": [
        {
          "name": "full_name",
          "label": "Full Name",
          "type": "text",
          "placeholder": "Enter your full name",
          "default": ""
        },
        {
          "name": "email",
          "label": "Email Address", 
          "type": "email",
          "placeholder": "you@example.com"
        },
        {
          "name": "company_size",
          "label": "Company Size",
          "type": "select",
          "options": [
            {"label": "1-10 employees", "value": "small"},
            {"label": "11-50 employees", "value": "medium"},
            {"label": "50+ employees", "value": "large"}
          ]
        },
        {
          "name": "requirements",
          "label": "Special Requirements",
          "type": "text_area",
          "placeholder": "Tell us about your needs..."
        }
      ]
    },
    "message_type": "outgoing",
    "private": false
  }
  ```

  ## 🐛 Debug Mode

  Enable debug logging to see detailed request information:

  1. Add **Debug Logging** field to any operation
  2. Set to **Yes**
  3. Check your n8n logs for detailed output including:
     - Constructed URLs
     - Request headers
     - Request bodies  
     - Response data

  Example debug output:
  ```
  [Chatwoot Debug] Resource: contact, Operation: create
  [Chatwoot Debug] Final URL: https://app.chatwoot.com/api/v1/accounts/1/contacts
  [Chatwoot Debug] Request body: {"name":"John Doe","email":"john@example.com"}
  [Chatwoot Debug] Making request to: https://app.chatwoot.com/api/v1/accounts/1/contacts
  ```

  ## 🔧 Workflow Examples

  ### Customer Support Automation

  ```
  1. Webhook Trigger (New Conversation)
     ↓
  2. Chatwoot Node (Get Contact Details)
     ↓  
  3. Condition Node (Check if VIP Customer)
     ↓
  4. Chatwoot Node (Send Automated Response)
     └─ Message Type: Interactive Options
     └─ Options: Urgent Support | Regular Support
     ↓
  5. Chatwoot Node (Add VIP Label)
  ```

  ### Contact Enrichment

  ```
  1. Schedule Trigger (Daily 9 AM)
     ↓
  2. Chatwoot Node (Get All Contacts)
     ↓
  3. Function Node (Enrich with External Data)
     ↓
  4. Chatwoot Node (Update Contact - Custom JSON)
     └─ Custom JSON: {enriched data}
  ```

  ### Interactive Onboarding

  ```
  1. Webhook Trigger (New Contact)
     ↓
  2. Chatwoot Node (Create Conversation)
     ↓
  3. Chatwoot Node (Send Welcome Form)
     └─ Message Type: Interactive Form
     └─ Fields: Name, Company, Role, Goals
     ↓
  4. Chatwoot Node (Send Resource Cards)
     └─ Message Type: Interactive Cards
     └─ Cards: Documentation, Video Tutorials, Support
  ```

  ## 📚 API Reference

  This node supports the Chatwoot Application API. For detailed API documentation:
  - [Chatwoot API Documentation](https://developers.chatwoot.com/api-reference/introduction)
  - [Application API Reference](https://developers.chatwoot.com/api-reference/application-api)
  - [Interactive Messages Guide](https://www.chatwoot.com/docs/product/others/interactive-messages/)

  ## 🔐 Authentication

  ### Application API (Supported)
  - **Use Case**: Account-level automation and agent-facing integrations
  - **Authentication**: User access token from Profile Settings
  - **Availability**: Cloud and Self-hosted installations
  - **Required**: Base URL, Access Token, Account ID

  ## ⚠️ Error Handling

  The node includes comprehensive error handling:

  - **Continue On Fail**: Option to continue workflow execution even if the node fails
  - **HTTP Error Handling**: Proper handling of API errors with meaningful messages
  - **JSON Validation**: Custom JSON is validated before sending
  - **Input Validation**: Required fields and data types are validated
  - **Debug Information**: Detailed logging for troubleshooting

  ## 🛠️ Development

  ### Prerequisites

  - Node.js >= 20.15
  - npm or yarn
  - n8n development environment

  ### Setup

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

  # Install dependencies
  npm install

  # Build the project
  npm run build

  # Run tests
  npm test

  # Run linting
  npm run lint
  ```

  ### Testing

  ```bash
  # Run all tests
  npm test

  # Run tests in watch mode
  npm run test:watch
  ```

  ### Building

  ```bash
  # Build TypeScript
  npm run build

  # Build with watch mode
  npm run dev
  ```

  ## 🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (`git checkout -b feature/amazing-feature`)
  3. Commit your changes (`git commit -m 'Add some amazing feature'`)
  4. Push to the branch (`git push origin feature/amazing-feature`)
  5. Open a Pull Request

  ### Guidelines

  - Follow TypeScript best practices
  - Add tests for new features
  - Update documentation
  - Follow existing code style
  - Test thoroughly before submitting

  ## 📄 License

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

  ## 🆘 Support

  - **Documentation**: [Chatwoot API Docs](https://developers.chatwoot.com/api-reference/introduction)
  - **Issues**: [GitHub Issues](https://github.com/pixelinfinito/n8n-nodes-chatwoot/issues)
  - **Discussions**: [GitHub Discussions](https://github.com/pixelinfinito/n8n-nodes-chatwoot/discussions)
  - **n8n Community**: [n8n Community Forum](https://community.n8n.io/)

  ## 📋 Changelog

  ### v0.1.16 (Latest)
  - ✨ **NEW**: Custom JSON mode for create/update operations
  - ✨ **NEW**: Interactive messages support (forms, cards, options, articles)
  - ✨ **NEW**: Debug logging toggle
  - 🔧 **IMPROVED**: Simplified credentials (Application API only)
  - 🐛 **FIXED**: URL construction and authentication issues
  - 🐛 **FIXED**: Dynamic options loading for labels
  - 📝 **DOCS**: Comprehensive documentation update

  ### v0.1.15
  - 🐛 **FIXED**: Message operations with proper headers
  - 🐛 **FIXED**: Contact operations stability
  - 🔧 **IMPROVED**: Error handling and logging

  ### v0.1.0 - v0.1.14
  - 🎯 **INITIAL**: Core Chatwoot API integration
  - 📋 **FEATURES**: All major resources and operations
  - 🔐 **AUTH**: Multiple authentication types
  - 🧪 **TESTING**: Comprehensive test suite

  ## 👥 Team

  **Pixel Infinito** - Infinite value. Limitless possibilities.

  - **Website**: [https://pixel.ao](https://pixel.ao)
  - **GitHub**: [https://github.com/pixelinfinito](https://github.com/pixelinfinito)
  - **Email**: dev@pixel.ao
  - **Location**: Angola 🇦🇴

  We are a team dedicated to creating innovative solutions and contributing to the open-source community. This Chatwoot n8n node is part of our commitment to providing valuable integrations for the n8n ecosystem.

  ## 🙏 Acknowledgments

  - [Chatwoot](https://chatwoot.com/) for providing the excellent customer engagement platform
  - [n8n](https://n8n.io/) for the amazing workflow automation platform
  - The n8n community for inspiration, feedback, and support
  - All contributors and users who help improve this integration

  ---

  **Made with ❤️ by Pixel Infinito**

ai_documentation_summary:
  {"purpose":"Provides n8n integration with the Chatwoot Application API to manage accounts, contacts, conversations, messages, inboxes, canned responses, webhooks, teams, and labels, enabling automation of customer support workflows and interactive messaging.","capabilities":["Get, list (with pagination), create, update, and delete Contacts (including search)","Get, list, update status, add labels, and update custom attributes on Conversations","Get, list, and create Messages with full interactive support (text, options, forms, cards, articles)","Get and list Accounts, Inboxes, Canned Responses, Webhooks, Teams, and Labels","Structured Fields mode for guided form inputs and validation","Custom JSON mode for raw payloads, nested objects, and advanced API features","Full Chatwoot Application API coverage for exposed endpoints","Built-in pagination handling for list operations","Debug console logging and troubleshooting support","Error handling with \"continue on fail\" option"],"authentication":"API access token (provide Chatwoot Base URL, Access Token, and Account ID in n8n credentials)","commonUseCases":["Create or update contacts and enrich them with custom attributes","Automate sending interactive messages (menus, forms, cards) to conversations","Monitor and list conversations or messages and change conversation status (open/resolved/pending)","Tag conversations with labels and manage conversation metadata","Fetch inboxes, teams, canned responses or webhooks for routing or automation"],"limitations":[],"relatedNodes":[]}


