# nodes

node_type: n8n-nodes-neo.neo
package_name: n8n-nodes-neo
display_name: docunite® NEO
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: patrickpenn
author_github_url: https://github.com/docunite/neo-n8n-node.git
npm_package_name: n8n-nodes-neo
npm_version: 0.1.9
community_fetched_at: 2026-02-19T14:41:52.669Z
ai_summary_generated_at: 2026-02-19 16:43:57
description:
  Manage documents and use AI features with the docunite® NEO API. Supports upload, OCR extraction, classification, enrichment, chat and more. Perfect for automated document processing and intelligent data extraction.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Entity",
          "value": "entity"
        },
        {
          "name": "Webhook",
          "value": "webhook"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getBalance",
      "options": [
        {
          "name": "Get Balance",
          "value": "getBalance",
          "action": "Get balance",
          "description": "Retrieve the credit balance of the current tenant"
        },
        {
          "name": "Get Usage",
          "value": "getUsage",
          "action": "Get usage",
          "description": "Retrieve usage data with daily, monthly, and yearly breakdowns"
        },
        {
          "name": "Get Usage With Process Steps",
          "value": "getUsageWithProcessSteps",
          "action": "Get usage with process steps",
          "description": "Retrieve detailed usage information with process step breakdowns"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload document",
          "description": "Upload and process documents"
        },
        {
          "name": "Get document",
          "value": "get",
          "action": "Get document",
          "description": "Get a document by ID"
        },
        {
          "name": "Get document batch",
          "value": "getBatch",
          "action": "Get batch documents",
          "description": "Get documents by correlation ID f.e. extracted attachments from a document"
        },
        {
          "name": "Get Document PDF Blob",
          "value": "getBlob",
          "action": "Get document blob",
          "description": "Get a PDF version of the document blob"
        },
        {
          "name": "Get Document Original Blob",
          "value": "getBlobOriginal",
          "action": "Get original blob",
          "description": "Get a original version of the document blob"
        },
        {
          "name": "Get Document OCR",
          "value": "getContent",
          "action": "Get OCR content",
          "description": "Get document OCR content"
        },
        {
          "name": "Get Document Markdown",
          "value": "getMarkdown",
          "action": "Get markdown content",
          "description": "Get document markdown content"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete documents",
          "description": "Delete documents"
        },
        {
          "name": "Chat",
          "value": "chat",
          "action": "Chat with documents",
          "description": "Chat with documents using AI"
        },
        {
          "name": "Classify",
          "value": "classify",
          "action": "Classify documents",
          "description": "Classify documents"
        },
        {
          "name": "Enrichment",
          "value": "enrichment",
          "action": "Enrich documents",
          "description": "Initiate document enrichment"
        },
        {
          "name": "Extraction",
          "value": "extraction",
          "action": "OCR documents",
          "description": "Extract OCR from documents"
        },
        {
          "name": "Split",
          "value": "split",
          "action": "Split documents",
          "description": "Split documents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create entity",
          "description": "Create a new entity"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete entity",
          "description": "Delete an entity"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get entity",
          "description": "Get an entity by ID"
        },
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all entities",
          "description": "Get all entities"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update entity",
          "description": "Update an entity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "entity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create webhook",
          "description": "Create a new webhook"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete webhook",
          "description": "Delete a webhook"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get webhook",
          "description": "Get a webhook by ID"
        },
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all webhooks",
          "description": "Get all webhooks"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update webhook",
          "description": "Update a webhook"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhook"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Balance",
      "value": "getBalance",
      "action": "Get balance",
      "description": "Retrieve the credit balance of the current tenant"
    },
    {
      "name": "Get Usage",
      "value": "getUsage",
      "action": "Get usage",
      "description": "Retrieve usage data with daily, monthly, and yearly breakdowns"
    },
    {
      "name": "Get Usage With Process Steps",
      "value": "getUsageWithProcessSteps",
      "action": "Get usage with process steps",
      "description": "Retrieve detailed usage information with process step breakdowns"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload document",
      "description": "Upload and process documents"
    },
    {
      "name": "Get document",
      "value": "get",
      "action": "Get document",
      "description": "Get a document by ID"
    },
    {
      "name": "Get document batch",
      "value": "getBatch",
      "action": "Get batch documents",
      "description": "Get documents by correlation ID f.e. extracted attachments from a document"
    },
    {
      "name": "Get Document PDF Blob",
      "value": "getBlob",
      "action": "Get document blob",
      "description": "Get a PDF version of the document blob"
    },
    {
      "name": "Get Document Original Blob",
      "value": "getBlobOriginal",
      "action": "Get original blob",
      "description": "Get a original version of the document blob"
    },
    {
      "name": "Get Document OCR",
      "value": "getContent",
      "action": "Get OCR content",
      "description": "Get document OCR content"
    },
    {
      "name": "Get Document Markdown",
      "value": "getMarkdown",
      "action": "Get markdown content",
      "description": "Get document markdown content"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete documents",
      "description": "Delete documents"
    },
    {
      "name": "Chat",
      "value": "chat",
      "action": "Chat with documents",
      "description": "Chat with documents using AI"
    },
    {
      "name": "Classify",
      "value": "classify",
      "action": "Classify documents",
      "description": "Classify documents"
    },
    {
      "name": "Enrichment",
      "value": "enrichment",
      "action": "Enrich documents",
      "description": "Initiate document enrichment"
    },
    {
      "name": "Extraction",
      "value": "extraction",
      "action": "OCR documents",
      "description": "Extract OCR from documents"
    },
    {
      "name": "Split",
      "value": "split",
      "action": "Split documents",
      "description": "Split documents"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create entity",
      "description": "Create a new entity"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete entity",
      "description": "Delete an entity"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get entity",
      "description": "Get an entity by ID"
    },
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all entities",
      "description": "Get all entities"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update entity",
      "description": "Update an entity"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create webhook",
      "description": "Create a new webhook"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete webhook",
      "description": "Delete a webhook"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get webhook",
      "description": "Get a webhook by ID"
    },
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all webhooks",
      "description": "Get all webhooks"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update webhook",
      "description": "Update a webhook"
    }
  ]

npm_readme:
  # n8n-nodes-neo

  This is an n8n Community Node for integrating the **docunite® NEO API** by [docunite.com](https://docunite.com/neo).

  **docunite® NEO** is an intelligent document management platform with AI-powered classification, extraction, and processing. This node allows you to use all docunite® NEO API features directly in your n8n workflows.

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

  ## 🚀 Installation

  ### For n8n Cloud Users

  **Note**: This community node will be available in n8n Cloud after it has been verified by n8n. We have submitted it for verification and will update this section once approved.

  Once verified, you will be able to install it directly from the n8n node panel.

  ### For Self-hosted n8n Instances

  You can install this node manually on your self-hosted n8n instance (requires n8n v0.187+):

  #### Option 1: Using Community Nodes Feature

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

  After installation, the docunite® NEO node will be available in your n8n instance.

  #### Option 2: Manual Installation

  For self-hosted n8n instances, you can also install the node manually:

  ```bash
  cd ~/.n8n/nodes
  npm install n8n-nodes-neo
  ```

  Restart n8n for the changes to take effect.

  ## 🔑 Credentials

  To use the docunite® NEO node, you need:

  1. **API Key**: Your docunite® NEO API Key
  2. **Base URL**: Defaults to `https://api.docunite.ai`

  ### Setting up Credentials

  1. Go to **Credentials > New**
  2. Search for "docunite® NEO API"
  3. Enter your API Key
  4. Save the credentials

  ## 📚 Nodes

  This package provides two nodes:

  ### 1. **docunite® NEO** (Regular Node)
  The main node for API operations.

  ### 2. **docunite® NEO Trigger** (Trigger Node)
  Automatically starts workflows when docunite® NEO sends events.

  ## 📚 Operations

  The **docunite® NEO** node supports the following resources and operations:

  ### 📊 Account Management

  - **Get Balance**: Retrieve credit balance
  - **Get Usage**: Retrieve usage statistics (daily, monthly, yearly)
  - **Get Usage With Process Steps**: Detailed usage information with process step breakdown

  ### 📄 Document Management

  - **Upload**: Upload and process documents
    - Supports automatic classification
    - Intelligent document splitting
    - Custom prompts
    - Optional original path storage
  - **Get**: Retrieve document by ID
  - **Get Batch**: Retrieve documents by correlation ID (e.g., extracted attachments)
  - **Get Document PDF Blob**: Get a PDF version of the document
  - **Get Document Original Blob**: Get the original version of the document
  - **Get Document OCR**: Get document OCR content
  - **Get Document Markdown**: Get document markdown content
  - **Delete**: Delete single document
  - **Chat**: Chat with a document using AI
    - Supports custom prompts
    - Optional chat history
  - **Classify**: Classify documents
    - Custom prompt support
    - Batch processing with file IDs
  - **Enrichment**: Initiate document enrichment
    - Batch processing with file IDs
  - **Extraction**: Extract OCR from documents
    - Batch processing with file IDs
  - **Split**: Split documents into multiple parts
    - Batch processing with file IDs

  ### 🏢 Entity Management

  - **Get All**: Retrieve all entities
  - **Get**: Retrieve entity by ID
  - **Create**: Create new entity
  - **Update**: Update entity
  - **Delete**: Delete entity

  ### 🔔 Webhook Management

  - **Get All**: Retrieve all webhooks
  - **Get**: Retrieve webhook by ID
  - **Create**: Create new webhook
  - **Update**: Update webhook
  - **Delete**: Delete webhook

  ## 💻 Usage Examples

  ### Example 1: Upload and Classify a Document

  ```json
  {
    "nodes": [
      {
        "parameters": {
          "resource": "document",
          "operation": "upload",
          "entityId": "your-entity-id",
          "binaryPropertyName": "data",
          "classify": true,
          "splitDocuments": false
        },
        "name": "docunite® NEO - Upload Document",
        "type": "n8n-nodes-neo.neo",
        "credentials": {
          "neoApi": "docunite® NEO API Credentials"
        }
      }
    ]
  }
  ```

  ### Example 2: Chat with a Document

  ```json
  {
    "nodes": [
      {
        "parameters": {
          "resource": "document",
          "operation": "chat",
          "documentId": "document-id-here",
          "prompt": "What are the key points in this document?"
        },
        "name": "docunite® NEO - Chat with Document",
        "type": "n8n-nodes-neo.neo",
        "credentials": {
          "neoApi": "docunite® NEO API Credentials"
        }
      }
    ]
  }
  ```

  ### Example 3: Classify Multiple Documents

  ```json
  {
    "nodes": [
      {
        "parameters": {
          "resource": "document",
          "operation": "classify",
          "fileIds": "[\"file-id-1\", \"file-id-2\"]",
          "promptId": "your-classification-prompt-id"
        },
        "name": "docunite® NEO - Classify Documents",
        "type": "n8n-nodes-neo.neo",
        "credentials": {
          "neoApi": "docunite® NEO API Credentials"
        }
      }
    ]
  }
  ```

  ### Example 4: Manage Entities

  ```json
  {
    "nodes": [
      {
        "parameters": {
          "resource": "entity",
          "operation": "create",
          "entityName": "My Project"
        },
        "name": "docunite® NEO - Create Entity",
        "type": "n8n-nodes-neo.neo",
        "credentials": {
          "neoApi": "docunite® NEO API Credentials"
        }
      }
    ]
  }
  ```

  ### Example 5: Extract OCR from Documents

  ```json
  {
    "nodes": [
      {
        "parameters": {
          "resource": "document",
          "operation": "extraction",
          "fileIds": "[\"file-id-1\", \"file-id-2\"]"
        },
        "name": "docunite® NEO - Extract OCR",
        "type": "n8n-nodes-neo.neo",
        "credentials": {
          "neoApi": "docunite® NEO API Credentials"
        }
      }
    ]
  }
  ```

  ## 🔔 docunite® NEO Trigger Node

  The **docunite® NEO Trigger** node automatically starts your workflow when NEO sends events.

  ### Features

  - ✅ Automatic webhook registration when activating workflow
  - ✅ Automatic webhook removal when deactivating workflow
  - ✅ Event type filtering (EXTRACTION, CLASSIFICATION, ENRICHMENT)
  - ✅ Secret validation via x-neo-secret header
  - ✅ Test mode support with "Listen for Test Event"
  - ✅ No generic webhook setup required

  ### Configuration

  1. Add the **docunite® NEO Trigger** node to your workflow
  2. Configure credentials (docunite® NEO API)
  3. Select event types to listen for
  4. Set a webhook name
  5. Choose a secret for authentication
  6. Activate the workflow → Webhook is automatically registered in NEO

  ### Test Mode

  Click "Listen for Test Event" to get a test webhook URL. You must manually register this URL in NEO for testing. Secret validation is automatically disabled in test mode.

  ### Production Mode

  When you activate the workflow, the webhook is automatically registered in NEO with the production URL. The webhook is removed when you deactivate the workflow.

  ## 📖 API Documentation

  The complete API documentation can be found at:
  - Swagger UI: [https://api.docunite.ai/](https://api.docunite.ai/)
  - Swagger JSON: [https://api.docunite.ai/swagger.json](https://api.docunite.ai/swagger.json)

  ## 🛠️ Compatibility

  - Tested with n8n v0.187.0+
  - Node.js 18.17.0+
  - n8n-workflow 1.0.0+

  ## 📝 License

  [MIT](LICENSE.md)

  ## 🤝 Support

  For questions or issues:
  - GitHub Issues: [https://github.com/docunite/neo-n8n-node/issues](https://github.com/docunite/neo-n8n-node/issues)
  - docunite Support: [support@docunite.com](mailto:support@docunite.com)

  ## 🔗 Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [docunite.com Website](https://docunite.com)
  - [docunite® NEO API Documentation](https://api.docunite.ai/)

  ## 🌟 Features

  - ✅ Full docunite® NEO API integration for core resources
  - ✅ **NEO Trigger Node** - Automatic workflow starts on NEO events
  - ✅ Account Management (Balance & Usage tracking)
  - ✅ Document Management (Upload, Processing, Chat, OCR, etc.)
  - ✅ Entity Management (Full CRUD operations)
  - ✅ Webhook Management (Full CRUD operations)
  - ✅ API Key authentication
  - ✅ Comprehensive error handling
  - ✅ Binary Data support (Upload/Download)
  - ✅ AI-powered document processing and chat
  - ✅ Batch operations support
  - ✅ Automatic webhook registration and cleanup

  ## 📦 Version History

  ### 0.1.0 (Initial Release)
  - Full integration of core docunite® NEO API endpoints
  - Account Management (Balance, Usage, Usage with Process Steps)
  - Document Management (Upload, Get, Chat, Classify, Enrichment, Extraction, Split, etc.)
  - Entity Management (CRUD operations)
  - Webhook Management (CRUD operations)

  ## 👨‍💻 Development

  If you want to contribute to development:

  ```bash
  # Clone repository
  git clone https://github.com/docunite/neo-n8n-node.git
  cd neo-n8n-node

  # Install dependencies
  npm install

  # Build
  npm run build

  # Link to local n8n instance
  npm link
  ```

  Start n8n in development mode:

  ```bash
  n8n start
  ```

  ## ⚠️ Important Notes

  - File uploads use Binary Data from n8n workflows
  - Chat operations support streaming responses
  - All JSON parameters can be set dynamically via n8n expressions
  - Document processing operations support batch processing with file IDs

  ---

  Developed with ❤️ for the n8n community by [docunite GmbH](https://docunite.com)

ai_documentation_summary:
  {"purpose":"Provides n8n integration for the docunite® NEO API to manage documents and use AI features (classification, OCR, enrichment, chat) so workflows can automate document ingestion, processing and retrieval.","capabilities":["Upload documents (with options: automatic classification, intelligent splitting, custom prompts, optional original path storage)","Retrieve document by ID","Retrieve documents by correlation ID (batch)","Download document PDF blob","Download original document blob","Get document OCR content","Get document markdown content","Delete single document","Chat with a document via AI (supports custom prompts and optional chat history)","Classify documents (single or batch, supports custom prompts/promptId)"],"authentication":"API key required (docunite® NEO API Key; configurable Base URL, default https://api.docunite.ai)","commonUseCases":["Automated ingestion and classification of incoming documents (scans, PDFs) with AI-driven routing","Extract OCR/text and convert documents to Markdown or structured data for downstream processing","Enrich documents (metadata, entity tagging) and batch-process attachments or large volumes","Document Q&A or conversational access to document contents using the chat operation","Monitor account usage and credit balance for billing/ops automation"],"limitations":["Not yet available in n8n Cloud until community node verification is completed (installation currently described for self-hosted instances)","Requires self-hosted n8n v0.187+ for manual/community-node installation","README/docs for the Trigger node are truncated in the provided content (details may be missing)","No alternative auth methods (OAuth2/etc.) documented—only API key","Operational details such as rate limits, retry behavior, and granular permission/role handling are not documented in the README"],"relatedNodes":["docunite® NEO (regular node)","docunite® NEO Trigger (webhook/event trigger node)"]}


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

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

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

npm_readme:
  # n8n-nodes-blotato

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

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

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

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

  ## Installation

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

  ## Operations

  This node provides four main resources for interacting with Blotato:

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

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

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

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

  ## Credentials

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

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

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

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

  ## Compatibility

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

  ## Usage

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

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

  ### Example: Upload and Publish

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

  ### Example: Extract YouTube Transcript and Repurpose

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

  ### Tips

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

  ## Resources

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

  ## About Blotato

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

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

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

  ## Support

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

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

  ## Development

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

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

  - Create necessary directories

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

  - Build the custom node code

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

  - Run locally with `n8n` npm package

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

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

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

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

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

ai_documentation_summary:
  {"purpose":"Provides n8n workflow actions to create AI-generated visuals, upload media, publish posts across multiple social platforms, and extract/transform content from external sources using the Blotato API.","capabilities":["Video: Create Visual from templates (videos, carousels, slideshows, infographics, images)","Video: Get Visual status and details by ID","Video: Delete visual by ID","Media: Upload from URL","Media: Upload from binary data","Post: Create/publish posts to multiple platforms in a single workflow","Post: Get post status/details by submission ID","Post: Schedule posts or use next available free slot","Post: Add captions, hashtags, and attach media","Post: Platform-specific options (YouTube privacy/settings, Pinterest board/alt text/link, TikTok privacy/draft/options, Instagram post/reel/story and collaborators, LinkedIn personal or company page, Facebook page selection, Threads reply control, etc.)"],"authentication":"API key required (Blotato API Key; API access limited to paying subscribers)","commonUseCases":["Generate AI video/carousel from a template, wait for rendering, then publish to multiple social platforms","Upload images or videos via URL or binary and publish scheduled posts across platforms","Extract a YouTube transcript (or other source content) and repurpose it with AI transformations","Multi-platform social media scheduling and publishing with platform-specific options","Create visual assets from templates with dynamic inputs and integrate them into content pipelines"],"limitations":["Blotato API access requires a paying subscription","Binary media upload size limit: 60 MB (larger files must be uploaded via URL)","Media rate limit: 10 requests per minute","Post rate limit: 30 requests per minute","Source extraction is asynchronous — Create returns an ID and content must be polled with Get"],"relatedNodes":[]}


node_type: n8n-nodes-cloudinary.cloudinary
package_name: n8n-nodes-cloudinary
display_name: Cloudinary
description: Upload to Cloudinary
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: cloudinary
author_github_url: https://github.com/cloudinary/
npm_package_name: n8n-nodes-cloudinary
npm_version: 0.0.9
community_fetched_at: 2026-02-19T14:41:52.671Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload"
        },
        {
          "name": "Update Asset",
          "value": "updateAsset"
        },
        {
          "name": "Admin",
          "value": "admin"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadUrl",
      "options": [
        {
          "name": "Upload From URL",
          "value": "uploadUrl",
          "action": "Upload an asset from URL",
          "description": "Upload an asset from URL"
        },
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload an asset from file data",
          "description": "Upload an asset from file data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "upload"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "updateTags",
      "options": [
        {
          "name": "Update Asset Tags",
          "value": "updateTags",
          "action": "Update asset tags",
          "description": "Update tags for an existing asset"
        },
        {
          "name": "Update Asset Structured Metadata",
          "value": "updateMetadata",
          "action": "Update asset structured metadata",
          "description": "Update structured metadata for an existing asset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "updateAsset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTags",
      "options": [
        {
          "name": "Get Tags",
          "value": "getTags",
          "action": "Get tags for a resource type",
          "description": "Get all tags for a specific resource type"
        },
        {
          "name": "Get Metadata Fields",
          "value": "getMetadataFields",
          "action": "Get metadata fields definitions",
          "description": "Get all metadata fields definitions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "admin"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Upload From URL",
      "value": "uploadUrl",
      "action": "Upload an asset from URL",
      "description": "Upload an asset from URL"
    },
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload an asset from file data",
      "description": "Upload an asset from file data"
    },
    {
      "name": "Update Asset Tags",
      "value": "updateTags",
      "action": "Update asset tags",
      "description": "Update tags for an existing asset"
    },
    {
      "name": "Update Asset Structured Metadata",
      "value": "updateMetadata",
      "action": "Update asset structured metadata",
      "description": "Update structured metadata for an existing asset"
    },
    {
      "name": "Get Tags",
      "value": "getTags",
      "action": "Get tags for a resource type",
      "description": "Get all tags for a specific resource type"
    },
    {
      "name": "Get Metadata Fields",
      "value": "getMetadataFields",
      "action": "Get metadata fields definitions",
      "description": "Get all metadata fields definitions"
    }
  ]

npm_readme:
  # Cloudinary node

  Use the Cloudinary node to automate work in Cloudinary, and integrate Cloudinary with other applications. n8n has built-in support for a wide range of Cloudinary features, including uploading assets, managing tags, and updating metadata.

  On this page, you'll find a list of operations the Cloudinary node supports.

  ## Operations

  * Asset
  	* Upload from URL/file
  	* Update asset tags
  	* Update asset metadata fields
  	* Get tags
  	* Get structured metadata definitions

  ## Supported authentication methods

  - API key & API secret

  ## Authentication 
  ### Using API key

  To configure this credential, you'll need a [Cloudinary Account](https://cloudinary.com/users/register_free) and:

  - A **Cloud name**
  - An **API Key**
  - An **API Secret**

  If you're a user with a Master admin, Admin, or Technical admin role, you can find your API keys and other credentials on the API Keys page of the Cloudinary Console Settings:

  1. Navigate to the API Keys pages in the [settings page](https://console.cloudinary.com/settings/api-keys).
  2. Click on **+ Generate New API Key**.
  3. Copy the API Key and API Secret.
  4. From the top of the page copy the **Cloud name**.
  5. Enter the cloud name, api key and api secret to your n8n credential.


  ## Related resources

  Refer to [Cloudinary's documentation](https://cloudinary.com/documentation/programmable_media_guides) for more information on this service.

ai_documentation_summary:
  {"purpose":"Uploads and manages assets in Cloudinary and automates Cloudinary workflows by integrating asset upload, tagging, and metadata management with other applications.","capabilities":["Upload asset from URL","Upload asset from file","Update asset tags","Update asset metadata fields","Get tags","Get structured metadata definitions"],"authentication":"API key & API secret (requires Cloud name, API Key, API Secret)","commonUseCases":["Automate uploading images or videos from URLs or local files into Cloudinary","Programmatically add or update tags on assets for organization and search","Update structured metadata fields on assets for richer asset data","Fetch available tags and structured metadata definitions to drive downstream logic","Integrate Cloudinary asset handling into workflows with CMSs, CRMs, or other apps"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-pubnub.pubNub
package_name: n8n-nodes-pubnub
display_name: PubNub
description: Interact with PubNub real-time messaging platform
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: pubnub-admin
author_github_url: https://github.com/pubnub/
npm_package_name: n8n-nodes-pubnub
npm_version: 0.1.16
community_fetched_at: 2026-02-19T14:41:52.672Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "History",
          "value": "history"
        },
        {
          "name": "Presence",
          "value": "presence"
        },
        {
          "name": "Channel Group",
          "value": "channelGroup"
        }
      ],
      "description": "The resource to operate on",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "publish",
      "options": [
        {
          "name": "Publish",
          "value": "publish",
          "action": "Publish a message",
          "description": "Publish a message to a channel"
        },
        {
          "name": "Signal",
          "value": "signal",
          "action": "Send a signal",
          "description": "Send a signal (lightweight message, max 30 characters)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "fetchMessages",
      "options": [
        {
          "name": "Fetch Messages",
          "value": "fetchMessages",
          "action": "Fetch message history",
          "description": "Fetch message history from a channel"
        },
        {
          "name": "Delete Messages",
          "value": "deleteMessages",
          "action": "Delete messages",
          "description": "Delete messages from a channel"
        },
        {
          "name": "Message Counts",
          "value": "messageCounts",
          "action": "Get message counts",
          "description": "Get message counts for channels"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "history"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "hereNow",
      "options": [
        {
          "name": "Here Now",
          "value": "hereNow",
          "action": "Get current occupancy",
          "description": "Get current occupancy information for channels"
        },
        {
          "name": "Where Now",
          "value": "whereNow",
          "action": "Get user presence",
          "description": "Get channels where a user is present"
        },
        {
          "name": "Set State",
          "value": "setState",
          "action": "Set user state",
          "description": "Set state data for a user on channels"
        },
        {
          "name": "Get State",
          "value": "getState",
          "action": "Get user state",
          "description": "Get state data for a user on channels"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "presence"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listChannels",
      "options": [
        {
          "name": "Add Channels",
          "value": "addChannels",
          "action": "Add channels to group",
          "description": "Add channels to a channel group"
        },
        {
          "name": "Remove Channels",
          "value": "removeChannels",
          "action": "Remove channels from group",
          "description": "Remove channels from a channel group"
        },
        {
          "name": "List Channels",
          "value": "listChannels",
          "action": "List channels in group",
          "description": "List all channels in a channel group"
        },
        {
          "name": "Delete Group",
          "value": "deleteGroup",
          "action": "Delete channel group",
          "description": "Delete a channel group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "channelGroup"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Publish",
      "value": "publish",
      "action": "Publish a message",
      "description": "Publish a message to a channel"
    },
    {
      "name": "Signal",
      "value": "signal",
      "action": "Send a signal",
      "description": "Send a signal (lightweight message, max 30 characters)"
    },
    {
      "name": "Fetch Messages",
      "value": "fetchMessages",
      "action": "Fetch message history",
      "description": "Fetch message history from a channel"
    },
    {
      "name": "Delete Messages",
      "value": "deleteMessages",
      "action": "Delete messages",
      "description": "Delete messages from a channel"
    },
    {
      "name": "Message Counts",
      "value": "messageCounts",
      "action": "Get message counts",
      "description": "Get message counts for channels"
    },
    {
      "name": "Here Now",
      "value": "hereNow",
      "action": "Get current occupancy",
      "description": "Get current occupancy information for channels"
    },
    {
      "name": "Where Now",
      "value": "whereNow",
      "action": "Get user presence",
      "description": "Get channels where a user is present"
    },
    {
      "name": "Set State",
      "value": "setState",
      "action": "Set user state",
      "description": "Set state data for a user on channels"
    },
    {
      "name": "Get State",
      "value": "getState",
      "action": "Get user state",
      "description": "Get state data for a user on channels"
    },
    {
      "name": "Add Channels",
      "value": "addChannels",
      "action": "Add channels to group",
      "description": "Add channels to a channel group"
    },
    {
      "name": "Remove Channels",
      "value": "removeChannels",
      "action": "Remove channels from group",
      "description": "Remove channels from a channel group"
    },
    {
      "name": "List Channels",
      "value": "listChannels",
      "action": "List channels in group",
      "description": "List all channels in a channel group"
    },
    {
      "name": "Delete Group",
      "value": "deleteGroup",
      "action": "Delete channel group",
      "description": "Delete a channel group"
    }
  ]

npm_readme:
  # n8n-nodes-pubnub

  This is an n8n community node that provides integration with PubNub real-time messaging platform.

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

  [PubNub](https://www.pubnub.com/) is a real-time communication platform for building live chat, multiplayer games, IoT device control, and other real-time features.

  ## Installation

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

  ### Community Nodes (Recommended)

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

  ### Manual Installation

  To use this package in your n8n instance, you can install it via npm:

  ```bash
  npm install n8n-nodes-pubnub
  ```

  ## Credentials

  To use this node, you'll need to configure your PubNub credentials:

  1. **Publish Key**: Your PubNub Publish Key (required for publishing messages)
  2. **Subscribe Key**: Your PubNub Subscribe Key (required for subscribing to channels)
  3. **Secret Key**: Optional secret key for encryption and access manager
  4. **User ID**: Optional unique identifier for this client (auto-generated if not provided)

  You can find your keys in the [PubNub Admin Portal](https://admin.pubnub.com/).

  ## Nodes

  This package provides two nodes:

  ### 1. PubNub Node

  The main node for interacting with PubNub. Supports the following operations:

  #### Message Operations
  - **Publish**: Send a message to a channel
    - Supports metadata, TTL, and history storage options
  - **Signal**: Send a lightweight signal (max 30 characters)

  #### History Operations
  - **Fetch Messages**: Retrieve message history from a channel
    - Supports pagination, metadata, and message actions
  - **Delete Messages**: Delete messages from a channel
  - **Message Counts**: Get message counts for channels

  #### Presence Operations
  - **Here Now**: Get current occupancy and user list for channels
  - **Where Now**: Get channels where a specific user is present
  - **Set State**: Set state data for a user on channels
  - **Get State**: Get state data for a user on channels

  #### Channel Group Operations
  - **Add Channels**: Add channels to a channel group
  - **Remove Channels**: Remove channels from a channel group
  - **List Channels**: List all channels in a channel group
  - **Delete Group**: Delete a channel group

  ### 2. PubNub Trigger Node

  A trigger node that starts your workflow when PubNub events occur:

  - **Trigger On**: Choose to trigger on messages, presence events, or both
  - **Channels**: Subscribe to specific channels (comma-separated)
  - **Channel Groups**: Subscribe to channel groups (comma-separated)

  #### Options:
  - **Filter Expression**: Apply message filtering
  - **With Presence**: Receive presence events
  - **Time Token**: Start receiving messages from a specific timetoken
  - **Include Message Actions**: Include message actions in events
  - **Include Metadata**: Include message metadata

  ## Usage Examples

  ### Example 1: Publish a Message

  1. Add a **PubNub** node to your workflow
  2. Select **Message** resource and **Publish** operation
  3. Enter your channel name (e.g., `my-channel`)
  4. Enter your message as JSON: `{"text": "Hello World!", "timestamp": "{{$now}}"}`
  5. Configure credentials and execute

  ### Example 2: Subscribe to Real-time Messages

  1. Add a **PubNub Trigger** node to start your workflow
  2. Set **Trigger On** to **Message**
  3. Enter channel name(s) (e.g., `chat-room,notifications`)
  4. Configure credentials
  5. Activate the workflow - it will now trigger whenever messages arrive

  ### Example 3: Check Channel Presence

  1. Add a **PubNub** node
  2. Select **Presence** resource and **Here Now** operation
  3. Enter channel name(s)
  4. Enable options: **Include UUIDs** and **Include State**
  5. Execute to see who's currently online

  ### Example 4: Fetch Message History

  1. Add a **PubNub** node
  2. Select **History** resource and **Fetch Messages** operation
  3. Enter channel name
  4. Set count to desired number of messages (e.g., 50)
  5. Enable **Include Metadata** if needed
  6. Execute to retrieve historical messages

  ## Development

  To develop or modify this package:

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

  # Install dependencies
  npm install

  # Build the package
  npm run build

  # Watch for changes during development
  npm run dev
  ```

  ## Resources

  - [PubNub Documentation](https://www.pubnub.com/docs/)
  - [PubNub JavaScript SDK](https://www.pubnub.com/docs/sdks/javascript)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [n8n Creating Nodes](https://docs.n8n.io/integrations/creating-nodes/)

  ## Version History

  ### 0.1.0
  - Initial release
  - PubNub node with message, history, presence, and channel group operations
  - PubNub Trigger node for real-time subscriptions
  - Full credential support with auto-generated User ID fallback

  ## License

  [MIT](LICENSE.md)

  ## Support

  If you encounter issues or have questions:

  1. Check the [PubNub Documentation](https://www.pubnub.com/docs/)
  2. Visit the [n8n Community Forum](https://community.n8n.io/)
  3. Open an issue on [GitHub](https://github.com/pubnub/n8n-nodes-pubnub/issues)

  ## Contributing

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

  1. Fork the repository
  2. Create your feature branch (`git checkout -b feature/amazing-feature`)
  3. 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

ai_documentation_summary:
  {"purpose":"Provides integration with the PubNub real-time messaging platform to publish and receive messages, manage history and presence, and manage channel groups; includes a Trigger node to start workflows on PubNub events.","capabilities":["Publish messages to channels (supports metadata, TTL, and history storage options)","Send signals (lightweight messages)","Fetch message history with pagination, metadata, and message actions","Delete messages from a channel","Get message counts for channels","Presence queries: Here Now (occupancy and user list), Where Now (channels for a user)","Set and Get state data for users on channels","Channel group management: add channels, remove channels, list channels, delete channel groups","Trigger workflows on PubNub events (messages, presence or both)","Subscribe to channels or channel groups (comma-separated)"],"authentication":"API key required: Publish Key and Subscribe Key. Optional Secret Key for encryption/Access Manager. Optional User ID (auto-generated if not provided).","commonUseCases":["Publish chat messages, notifications or IoT commands to channels","Start workflows in n8n when real-time messages or presence events arrive (using the PubNub Trigger)","Check channel presence to see which users/clients are online","Retrieve historical messages for auditing, replay or analytics","Manage channel groups for organizing and subscribing to sets of channels"],"limitations":["Signal messages are limited to a maximum of 30 characters"],"relatedNodes":["PubNub Trigger (real-time event trigger for messages and presence)"]}


node_type: n8n-nodes-weavely.weavelyTrigger
package_name: n8n-nodes-weavely
display_name: Weavely Trigger
description: Starts the workflow when a form submission is received from Weavely
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: weavely
author_github_url: https://github.com/weavely/
npm_package_name: n8n-nodes-weavely
npm_version: 0.1.1
community_fetched_at: 2026-02-19T14:41:52.672Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # Weavely Trigger for n8n

  An n8n community node that enables workflow automation based on Weavely form submissions. Automatically process form responses and build powerful automations with your Weavely forms.

  ## Installation

  Install this node directly from n8n by following the [community nodes installation guide](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/).

  ## Configuration

  ### Prerequisites
  You'll need a Weavely Personal Token to authenticate the integration. Generate one from [https://forms.weavely.ai/settings?tab=personal-tokens](https://forms.weavely.ai/settings?tab=personal-tokens).

  ### Setup Steps

  1. Add the **Weavely Trigger** node to your workflow
  2. Set up authentication:
     - Click "Create New Credential"
     - Enter your Weavely Personal Token
     - Test the connection
  3. Choose your team from the dropdown
  4. Select which form should trigger the workflow
  5. Activate your workflow

  When someone submits the selected form, your workflow will automatically run with the submission data.

  ## Output Data

  The trigger provides clean, structured data for each submission:

  - **Form metadata**: Form ID, response ID, submission timestamp
  - **Field answers**: Each answer includes both the value and human-readable field label
  - **Type information**: Understand what type of data each field contains

  All field IDs are automatically mapped to their corresponding question labels for easier workflow building.

  ## Developers

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

  ## License

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

ai_documentation_summary:
  {"purpose":"Starts an n8n workflow when a Weavely form submission is received, delivering structured submission data so you can automate processing of form responses.","capabilities":["Trigger workflows on Weavely form submissions","Provide form metadata (form ID, response ID, submission timestamp)","Return field answers with both values and human-readable field labels","Include type information for each field value","Automatically map field IDs to their corresponding question labels","Allow selection of team and specific form to listen to"],"authentication":"API key required (Weavely Personal Token)","commonUseCases":["Automatically process and route incoming form responses","Send notifications or alerts when a form is submitted","Save form responses to a database or CRM","Trigger follow-up emails or onboarding sequences after submission","Create support tickets or tasks from form submissions"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-docsautomator.docsAutomator
package_name: n8n-nodes-docsautomator
display_name: DocsAutomator
description: Create and manage documents with DocsAutomator
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: rupertxyz
author_github_url: https://github.com/DocsAutomator/
npm_package_name: n8n-nodes-docsautomator
npm_version: 1.4.0
community_fetched_at: 2026-02-19T14:41:52.673Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Automation",
          "value": "automation"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Placeholder",
          "value": "placeholder"
        },
        {
          "name": "Template",
          "value": "template"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an automation",
          "description": "Create a new automation"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an automation",
          "description": "Delete an automation"
        },
        {
          "name": "Duplicate",
          "value": "duplicate",
          "action": "Duplicate an automation",
          "description": "Duplicate an existing automation"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an automation",
          "description": "Get a single automation by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many automations",
          "description": "Get many automations"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an automation",
          "description": "Update an existing automation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "automation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a document",
          "description": "Create a new document from an automation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List placeholders",
          "description": "List placeholders for an automation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "placeholder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "duplicateGoogleDoc",
      "options": [
        {
          "name": "Duplicate Google Doc",
          "value": "duplicateGoogleDoc",
          "action": "Duplicate a google doc template",
          "description": "Duplicate a Google Doc template"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create an automation",
      "description": "Create a new automation"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an automation",
      "description": "Delete an automation"
    },
    {
      "name": "Duplicate",
      "value": "duplicate",
      "action": "Duplicate an automation",
      "description": "Duplicate an existing automation"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an automation",
      "description": "Get a single automation by ID"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many automations",
      "description": "Get many automations"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an automation",
      "description": "Update an existing automation"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a document",
      "description": "Create a new document from an automation"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List placeholders",
      "description": "List placeholders for an automation"
    },
    {
      "name": "Duplicate Google Doc",
      "value": "duplicateGoogleDoc",
      "action": "Duplicate a google doc template",
      "description": "Duplicate a Google Doc template"
    }
  ]

npm_readme:
  # n8n-nodes-docsautomator

  This is an n8n community node for DocsAutomator, a powerful document automation tool. It allows you to create documents, manage automations, and access various DocsAutomator features directly from 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)
  [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 DocsAutomator node supports the following resources and operations:

  ### Automation

  Manage your DocsAutomator automations:

  | Operation | Description |
  |-----------|-------------|
  | **Get Many** | List all automations in your workspace |
  | **Get** | Get a single automation by ID |
  | **Create** | Create a new automation |
  | **Update** | Update an existing automation |
  | **Delete** | Delete an automation |
  | **Duplicate** | Create a copy of an automation |

  ### Document

  Create documents using your automations:

  | Operation | Description |
  |-----------|-------------|
  | **Create** | Generate a document from an automation with placeholder data |

  ### Placeholder

  Discover placeholders in your templates:

  | Operation | Description |
  |-----------|-------------|
  | **List** | List placeholders for an automation (structured format with line item grouping) |

  ### Template

  Manage Google Doc templates:

  | Operation | Description |
  |-----------|-------------|
  | **Duplicate Google Doc** | Create a copy of a Google Doc template |

  ## Credentials

  This node requires DocsAutomator API credentials:

  1. Log in to your DocsAutomator account.
  2. Navigate to your workspace settings > API Key.
  3. Copy the API key.
  4. In n8n, create new "DocsAutomator API" credentials and paste your API key into the provided field.

  ## Usage

  ### Creating Documents

  1. **Add the DocsAutomator node** to your n8n workflow.
  2. **Set up Credentials**: Select your configured DocsAutomator API credentials.
  3. **Select Resource**: Choose "Document" and operation "Create".
  4. **Select an Automation**: Choose from the dropdown (only API/n8n automations are shown).
  5. **Map Placeholder Values**: Fill in values for each placeholder in your template.
  6. **Configure Line Items (Optional)**: Add line item data as JSON arrays.
  7. **Set Processing Options**:
     - **Preview Mode**: Generate a preview instead of the final document.
     - **Async Processing**: Return immediately with a jobId for tracking.

  ### Managing Automations

  Use the Automation resource to programmatically manage your automations:

  ```
  Automation > Get Many    → List all automations
  Automation > Create      → Create new automation with title and data source
  Automation > Update      → Modify settings like locale, PDF expiration, template link, etc.
  Automation > Duplicate   → Clone an existing automation
  Automation > Delete      → Remove an automation
  ```

  ### Discovering Placeholders

  Before creating documents, you can discover what placeholders are available:

  ```
  Placeholder > List → Returns structured placeholder data:
  {
    "placeholders": {
      "main": ["customer_name", "invoice_number"],
      "line_items_1": ["item_name", "quantity", "price"]
    }
  }
  ```

  ### Example: Invoice Generation with Line Items

  1. **Select**: Document > Create
  2. **Automation**: Choose "Invoice Generation"
  3. **Placeholder Values**:
     - `customer_name`: `{{ $json.customer.fullName }}`
     - `invoice_number`: `{{ $json.invoiceDetails.id }}`
     - `invoice_date`: `{{ $now.toFormat('yyyy-MM-dd') }}`
  4. **Line Items**:
     - Type: "Line Items 1"
     - JSON:
       ```json
       [
         {
           "item_description": "Widget A",
           "item_quantity": 2,
           "item_unit_price": 10.00
         },
         {
           "item_description": "Widget B",
           "item_quantity": 1,
           "item_unit_price": 25.50
         }
       ]
       ```

  ### Tips for Success

  - **JSON Structure for Line Items**: Ensure valid JSON array of objects matching your template placeholders.
  - **Use n8n Expressions**: Dynamically map data from previous nodes.
  - **Error Handling**: Use "Continue On Fail" or error workflows.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [DocsAutomator API documentation](https://docs.docsautomator.co/)
  - [DocsAutomator website](https://docsautomator.co/)

ai_documentation_summary:
  {"purpose":"Create and manage DocsAutomator automations and generate documents (including templated documents with placeholders and line items) directly from n8n workflows.","capabilities":["Automation: list (Get Many) automations","Automation: get a single automation by ID","Automation: create automations","Automation: update automations (locale, PDF expiration, template link, etc.)","Automation: delete automations","Automation: duplicate/clone automations","Document: create/generate a document from an automation using placeholder data","Document: preview mode for generating previews instead of final documents","Document: async processing (returns jobId for tracking)","Placeholder: list/discover placeholders for an automation (structured, with line item grouping)"],"authentication":"API key required (DocsAutomator API credentials configured in n8n)","commonUseCases":["Generate invoices with line items populated from workflow data","Automate creation of contracts, reports, or other templated documents","Programmatically create, update, duplicate, and delete automations/templates","Preview documents before final generation","Duplicate Google Doc templates for reuse"],"limitations":["Automation dropdown shows only API/n8n automations (other automation types may not appear)","Line items must be provided as valid JSON arrays matching template placeholders","Async document processing returns a jobId — requires polling or separate tracking to obtain final result"],"relatedNodes":[]}


node_type: @securevector/n8n-nodes-securevector.secureVector
package_name: @securevector/n8n-nodes-securevector
display_name: SecureVector
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: mss04132020
author_github_url: https://github.com/Secure-Vector/n8n-nodes-securevector.git
npm_package_name: @securevector/n8n-nodes-securevector
npm_version: 0.1.5
community_fetched_at: 2026-02-19T14:41:52.674Z
ai_summary_generated_at: 2026-02-19 16:43:57
description:
  AI security: Detect prompt injection, jailbreak attempts, and malicious content before prompts reach your LLM

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "prompt",
      "options": [
        {
          "name": "Prompt",
          "value": "prompt",
          "description": "Work with prompts and messages"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scanPrompt",
      "options": [
        {
          "name": "Scan",
          "value": "scanPrompt",
          "action": "Scan a prompt for AI security threats",
          "description": "Analyze a prompt for AI security threats before sending to LLM"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Scan",
      "value": "scanPrompt",
      "action": "Scan a prompt for AI security threats",
      "description": "Analyze a prompt for AI security threats before sending to LLM"
    }
  ]

npm_readme:
  # n8n-nodes-securevector

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

  **AI prompt security scanning for n8n workflows.** Detect prompt injection, jailbreak attempts, and 17+ threat categories in real-time.

  > **⚠️ LEGAL DISCLAIMER**: This software is provided "AS-IS" without warranties. SecureVector makes NO guarantees about security effectiveness. Users assume ALL risk and liability. See [License](#license) for full terms.

  ## Quick Start

  ### Installation

  **Via n8n Community Nodes** (Recommended):
  1. Go to **Settings** → **Community Nodes** → **Install**
  2. Enter: `@securevector/n8n-nodes-securevector`
  3. Restart n8n

  **Via npm**:
  ```bash
  cd ~/.n8n && npm install @securevector/n8n-nodes-securevector
  ```

  ### Setup

  1. **Get API key**:
     - Direct link: [https://app.securevector.io/dashboard?section=access](https://app.securevector.io/dashboard?section=access)
     - Or navigate: SecureVector App → Access Management → Create API Key
  2. Add SecureVector node to workflow
  3. Configure credentials (API key format: `sv_xxxxx`)

  ## Operation Modes

  | Mode | Use Case | Behavior | Configuration | Diagram |
  |------|----------|----------|---------------|---------|
  | **Non-Blocking** | Analysis & logging | Returns scan results, workflow continues regardless of threat | `Block on Threat`: OFF | `Trigger → SecureVector → Next Node` |
  | **Blocking** | Security gate | Stops workflow if threat detected | `Block on Threat`: ON<br>`Threshold`: 0-100<br>`Risk Levels`: Select | `Trigger → SecureVector → [STOP if threat] → Next Node` |
  | **Parallel** | Real-time monitoring | Scan + LLM run simultaneously | `Block on Threat`: OFF<br>Split workflow | `Trigger ──┬→ SecureVector`<br>`          └→ LLM → Merge` |

  ### Mode Details

  **🔓 Non-Blocking (Default)**
  ```
  User Input → SecureVector Scan → IF Node (score > 50?)
                                        ├─ TRUE → Alert Team
                                        └─ FALSE → Send to LLM
  ```
  **Use for**: Logging, metrics, conditional routing

  ---

  **🔒 Blocking (Security Gate)**
  ```
  User Input → SecureVector Scan → LLM Processing
               [THROWS ERROR IF THREAT DETECTED - WORKFLOW STOPS]
  ```
  **Use for**: Preventing malicious prompts from reaching LLM

  ---

  **⚡ Parallel (Async Analysis)**
  ```
  User Input ──┬→ SecureVector Scan ──┐
               └→ LLM Processing ──────→ Merge → Results
  ```
  **Use for**: Performance-critical workflows

  ## Parameters

  | Parameter | Type | Default | Description |
  |-----------|------|---------|-------------|
  | `prompt` | string | - | Text to scan (max 10,000 chars, truncated if longer) |
  | `timeout` | number | 30 | Scan timeout in seconds (1-300) |
  | `includeMetadata` | boolean | false | Include workflow ID in request |
  | `blockOnThreat` | boolean | false | Stop workflow on threat detection |
  | `threatThreshold` | number | 50 | Score threshold for blocking (0-100) |
  | `blockOnRiskLevels` | array | `['critical', 'high']` | Risk levels that trigger blocking |

  ## Output Format

  ```json
  {
    "scanId": "550e8400-e29b-41d4-a716-446655440000",
    "score": 85,
    "riskLevel": "high",
    "threats": [
      {
        "category": "prompt_injection",
        "severity": "high",
        "title": "Potential prompt injection detected",
        "description": "...",
        "confidence": 0.92
      }
    ],
    "timestamp": "2025-12-27T10:30:00.000Z",
    "metadata": {
      "processingTimeMs": 150,
      "version": "1.0.0"
    }
  }
  ```

  **Scoring**: 0 = safe, 100 = maximum threat

  **Risk Levels**: `safe`, `low`, `medium`, `high`, `critical`

  **17 Threat Categories**: prompt_injection, adversarial_attack, model_extraction, data_poisoning, privacy_leak, bias_exploitation, model_inversion, membership_inference, backdoor_attack, evasion_attack, jailbreak_attempt, sensitive_data_exposure, inappropriate_content, malicious_code_generation, social_engineering, misinformation_generation, privilege_escalation

  ## Data Privacy

  **What data is sent to SecureVector API?**

  This node sends **ONLY** the following data to the SecureVector API for analysis:

  1. **Input data** - Any content you provide in the `prompt` parameter (text, prompts, data, or any other input you want analyzed)
  2. **Metadata** (optional) - Only if `includeMetadata` is enabled:
     - Workflow ID
     - Execution ID
     - Source identifier (`n8n-workflow`)

  **Why is this data sent and stored?**

  - **Analysis**: Your input is analyzed for security threats and returned with a threat score
  - **Your auditing**: All data you send is **persisted for your own logging and auditing purposes** - this allows you to review scan history, track which workflows triggered scans, and maintain audit trails

  **What is NOT sent?**

  - API keys or credentials
  - Other node data or variables not explicitly provided
  - Workflow configuration or logic
  - Any data from other nodes in your workflow

  **Important**: Anything you send for analysis will be stored by SecureVector for your auditing and logging purposes. Only send data you consent to being analyzed and stored.

  **Data retention**: See [SecureVector Privacy Policy](https://securevector.io/privacypolicy) for details on how scan data is stored and retained.

  ## Examples

  See [`examples/`](examples/) for importable n8n workflow JSON files:
  - `non-blocking-analysis.json` - Conditional routing pattern
  - `blocking-mode.json` - Security gate pattern
  - `parallel-analysis.json` - Async scanning pattern

  ## Troubleshooting

  | Issue | Solution |
  |-------|----------|
  | "Invalid API key" | Verify key format: `sv_xxxxx` at [app.securevector.io](https://app.securevector.io) |
  | "Timeout" | Increase timeout parameter or check network |
  | "Rate limit exceeded" | Wait 60s or upgrade plan |
  | Node not appearing | Restart n8n after installation |

  ## Support

  - **Documentation**: [docs.securevector.io](https://docs.securevector.io)
  - **Issues**: [GitHub Issues](https://github.com/Secure-Vector/n8n-nodes-securevector/issues)
  - **Security**: Report to security@securevector.io (see [SECURITY.md](SECURITY.md))

  ## Development

  ```bash
  git clone https://github.com/Secure-Vector/n8n-nodes-securevector.git
  cd n8n-nodes-securevector
  npm install
  npm test          # Run tests
  npm run build     # Build dist/
  npm link          # Link to local n8n
  ```

  See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

  ## License

  Licensed under [MIT License](LICENSE).

  ### DISCLAIMER

  **THIS 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.**

  **SecureVector makes NO representations or warranties about:**
  - The accuracy, reliability, or completeness of security scans
  - The detection or prevention of security threats
  - The suitability for any particular purpose

  **Users assume ALL risk and liability for:**
  - Use of this software in production environments
  - Any security breaches, data loss, or damages
  - Compliance with applicable laws and regulations

  **This node is a TOOL ONLY. It does not guarantee security.** Users are solely responsible for implementing comprehensive security measures.

  By using this software, you acknowledge that **SecureVector shall not be liable for any claims, damages, or losses** arising from its use.

  ---

  **Copyright © 2025 SecureVector. All rights reserved.**

  ## Security Notes

  ### Development Dependencies
  `npm audit` may show a critical vulnerability in `form-data` (via `n8n-workflow`). **This does not affect the published package** because:

  - `n8n-workflow` is a **peer dependency** (provided by n8n runtime, not bundled)
  - Our package only bundles `zod` (no vulnerabilities)
  - Our code uses **JSON requests**, not multipart/form-data
  - The vulnerability would need to be fixed in n8n core, not this package

  For the latest security updates, keep your n8n installation up to date.

  ### Reporting Security Issues
  Report security issues to: security@securevector.io

ai_documentation_summary:
  {"purpose":"Scan and score text prompts for security threats before they reach an LLM, detecting prompt injection, jailbreak attempts, and 17+ threat categories to allow logging, conditional routing, or blocking within n8n workflows.","capabilities":["Scan raw prompt text (max 10,000 chars) for security threats","Detect 17 threat categories (e.g., prompt_injection, jailbreak_attempt, model_extraction, data_poisoning, privacy_leak, malicious_code_generation, etc.)","Return structured scan result JSON including scanId, score (0-100), riskLevel, threats array, timestamp, and metadata","Configurable operation modes: Non-Blocking (analysis/logging), Blocking (stops workflow on threat), and Parallel (async scan while LLM runs)","Blocking configuration: blockOnThreat boolean, numeric threatThreshold (0-100), selectable blockOnRiskLevels array (e.g., ['critical','high'])","Scan timeout configuration (1–300 seconds, default 30s)","Optional inclusion of workflow metadata (workflow ID, execution ID, source identifier) in requests","Provides examples/importable workflow JSON for non-blocking, blocking, and parallel patterns","Returns confidence and severity details per detected threat for conditional logic or alerts"],"authentication":"API key required (SecureVector API key, format: sv_xxxxx)","commonUseCases":["Pre-filtering user prompts to prevent malicious or unsafe content reaching an LLM (security gate)","Non-blocking analysis and logging for metrics, alerting, and conditional routing based on threat score","Parallel/asynchronous monitoring to minimize latency while still scanning inputs","Automated workflow branching (e.g., IF node) based on scan score or specific threat categories","Auditing and retention of scanned prompt history for compliance and review"],"limitations":["Software provided without guarantees — SecureVector disclaims effectiveness; users assume risk","Input text longer than 10,000 characters is truncated","Scan timeout constrained to 1–300 seconds; network or processing timeouts can occur","Scan data (prompts and optional metadata) is persisted by SecureVector for auditing — sensitive inputs will be stored","Rate limits may apply (rate limit exceeded requires wait or plan upgrade)"],"relatedNodes":["Trigger","IF","Merge","LLM (or other model-processing node)","HTTP Request (for custom integrations or fallbacks)"]}


node_type: n8n-nodes-pdfvector.pdfVector
package_name: n8n-nodes-pdfvector
display_name: PDF Vector
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: phuctm97
author_github_url: https://github.com/phuctm97/
npm_package_name: n8n-nodes-pdfvector
npm_version: 0.8.4
community_fetched_at: 2026-02-19T14:41:52.674Z
ai_summary_generated_at: 2026-02-19 16:43:57
description:
  Convert PDFs, Word, Excel documents, and images to clean markdown, extract structured data with AI, process invoices with specialized parsing, and search millions of academic papers across PubMed, ArXiv, Google Scholar, and more.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "academic",
      "options": [
        {
          "name": "Academic",
          "value": "academic"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Identity Document",
          "value": "identityDocument"
        },
        {
          "name": "Invoice",
          "value": "invoice"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search academic publications",
          "description": "Search across PubMed, ArXiv, Google Scholar, and more"
        },
        {
          "name": "Fetch",
          "value": "fetch",
          "action": "Fetch a specific publication",
          "description": "Fetch publications by DOI, PubMed ID, ArXiv ID, etc"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "academic"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parse",
      "options": [
        {
          "name": "Parse",
          "value": "parse",
          "action": "Parse a document",
          "description": "Convert PDFs, Word, Excel, or images to markdown"
        },
        {
          "name": "Ask",
          "value": "ask",
          "action": "Ask questions about a document",
          "description": "Ask questions about PDF, Word, Excel, or image"
        },
        {
          "name": "Extract",
          "value": "extract",
          "action": "Extract structured data from a document",
          "description": "Extract structured data from PDF, Word, Excel, or image using JSON Schema"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parse",
      "options": [
        {
          "name": "Parse",
          "value": "parse",
          "action": "Parse an invoice",
          "description": "Parse invoice, expense, bank statement or financial document"
        },
        {
          "name": "Ask",
          "value": "ask",
          "action": "Ask questions about an invoice",
          "description": "Ask questions about invoice, expense, bank statement or financial document"
        },
        {
          "name": "Extract",
          "value": "extract",
          "action": "Extract structured data from an invoice",
          "description": "Extract invoice, expense, bank statement or financial document structured data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parse",
      "options": [
        {
          "name": "Parse",
          "value": "parse",
          "action": "Parse an identity document",
          "description": "Parse identity documents (passports, driver licenses, ID cards, national IDs) to markdown"
        },
        {
          "name": "Ask",
          "value": "ask",
          "action": "Ask questions about an identity document",
          "description": "Ask questions about identity document content"
        },
        {
          "name": "Extract",
          "value": "extract",
          "action": "Extract structured data from an identity document",
          "description": "Extract structured data from identity documents using JSON Schema"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "identityDocument"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search",
      "value": "search",
      "action": "Search academic publications",
      "description": "Search across PubMed, ArXiv, Google Scholar, and more"
    },
    {
      "name": "Fetch",
      "value": "fetch",
      "action": "Fetch a specific publication",
      "description": "Fetch publications by DOI, PubMed ID, ArXiv ID, etc"
    },
    {
      "name": "Parse",
      "value": "parse",
      "action": "Parse a document",
      "description": "Convert PDFs, Word, Excel, or images to markdown"
    },
    {
      "name": "Ask",
      "value": "ask",
      "action": "Ask questions about a document",
      "description": "Ask questions about PDF, Word, Excel, or image"
    },
    {
      "name": "Extract",
      "value": "extract",
      "action": "Extract structured data from a document",
      "description": "Extract structured data from PDF, Word, Excel, or image using JSON Schema"
    },
    {
      "name": "Parse",
      "value": "parse",
      "action": "Parse an invoice",
      "description": "Parse invoice, expense, bank statement or financial document"
    },
    {
      "name": "Ask",
      "value": "ask",
      "action": "Ask questions about an invoice",
      "description": "Ask questions about invoice, expense, bank statement or financial document"
    },
    {
      "name": "Extract",
      "value": "extract",
      "action": "Extract structured data from an invoice",
      "description": "Extract invoice, expense, bank statement or financial document structured data"
    },
    {
      "name": "Parse",
      "value": "parse",
      "action": "Parse an identity document",
      "description": "Parse identity documents (passports, driver licenses, ID cards, national IDs) to markdown"
    },
    {
      "name": "Ask",
      "value": "ask",
      "action": "Ask questions about an identity document",
      "description": "Ask questions about identity document content"
    },
    {
      "name": "Extract",
      "value": "extract",
      "action": "Extract structured data from an identity document",
      "description": "Extract structured data from identity documents using JSON Schema"
    }
  ]

npm_readme:
  # n8n-nodes-pdfvector

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

  PDF Vector is a powerful document processing and academic research API service. It enables you to parse PDFs and Word documents into clean Markdown, extract structured data, and search across millions of academic publications from multiple databases.

  [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)
  - [Version history](#version-history)
  - [Development](#development)
  - [License](#license)

  ## 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-pdfvector` in `Enter npm package name`.
  4. Agree to the risks of using community nodes.
  5. Select `Install`.

  ![Install](assets/install.png)

  ## Operations

  ### Document Resource

  #### Parse Document

  Extract content from PDF/Word documents and convert to clean Markdown format.

  **Parameters:**

  - **Document URL**: Direct URL to the PDF or Word document
  - **Use LLM**:
    - `auto` (default) - System decides if LLM parsing is needed
    - `never` - Basic parsing only (1 credit per page)
    - `always` - Force LLM parsing (2 credits per page)

  **Supported Formats:**

  - PDF files
  - Word documents (.doc, .docx)

  **Credit Usage**: 1-2 credits per page depending on LLM usage

  #### Ask Document

  Ask questions about PDF/Word documents using AI analysis to get intelligent answers.

  **Parameters:**

  - **Document URL**: Direct URL to the PDF or Word document
  - **Prompt**: Your question about the document (1-2000 characters)

  **Example Questions:**
  - "What are the key findings in this research paper?"
  - "Summarize the methodology section"
  - "What conclusions does the author draw?"
  - "Extract all statistical results mentioned"

  **Credit Usage**: 3 credits per page

  ### Academic Resource

  #### Search Publications

  Search for academic publications across multiple databases with intelligent ranking.

  **Parameters:**

  - **Query**: Search query string
  - **Providers**: Select which academic databases to search (PubMed, Semantic Scholar, Google Scholar, ArXiv, ERIC)
  - **Limit**: Maximum results per provider (1-100, default: 50)
  - **Offset**: Skip this many results per provider
  - **Year From/To**: Filter by publication year range
  - **Fields**: Choose which fields to include in the response

  **Credit Usage**: 2 credit per search request

  #### Fetch Publications

  Retrieve specific academic publications by their identifiers with automatic provider detection.

  **Parameters:**

  - **IDs**: Comma-separated list of publication IDs (DOI, PubMed ID, ArXiv ID, etc.)
  - **Fields**: Choose which fields to include in the response

  **Supported ID Types:**

  - DOI (e.g., `10.1038/nature12373`)
  - PubMed ID (e.g., `12345678`)
  - ArXiv ID (e.g., `2301.12345`)
  - Semantic Scholar ID (e.g., `85128297772`)
  - ERIC ID (e.g., `ED123456`)

  **Credit Usage**: 2 credit per fetch request

  ## Credentials

  To use this node, you'll need a PDF Vector API key. Here's how to get one:

  1. Sign up for a [PDF Vector account](https://www.pdfvector.com/sign-up)
  2. Navigate to your [Dashboard](https://www.pdfvector.com/dashboard)
  3. Generate a new API key (it will start with `pdfvector_`)
  4. In n8n:
     - Go to **Credentials** → **Add Credential**
     - Select **PDF Vector API** from the list
     - Enter your API key
     - Click **Save**

  ![Credentials](assets/credentials.png)

  ## Compatibility

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

  ## Usage

  ### Example: Ask Questions About a Document

  This workflow shows how to use the Ask operation to get AI-powered answers about a document:

  ```json
  {
    "nodes": [
      {
        "name": "Ask Document",
        "type": "n8n-nodes-pdfvector.pdfVector",
        "position": [250, 300],
        "parameters": {
          "resource": "document",
          "operation": "ask",
          "url": "https://example.com/research-paper.pdf",
          "prompt": "What are the main findings and conclusions of this research?"
        }
      }
    ]
  }
  ```

  The response will include:
  - `markdown`: AI-generated answer to your question
  - `pageCount`: Number of pages processed
  - `creditCount`: Credits consumed

  ### Example: Parse a PDF and Search Related Papers

  This workflow demonstrates how to:

  1. Parse a PDF document to extract its content
  2. Use the extracted content to search for related academic papers

  ```json
  {
    "nodes": [
      {
        "name": "Parse PDF",
        "type": "n8n-nodes-pdfvector.pdfVector",
        "position": [250, 300],
        "parameters": {
          "resource": "document",
          "operation": "parse",
          "url": "https://example.com/paper.pdf",
          "useLLM": "auto"
        }
      },
      {
        "name": "Search Related Papers",
        "type": "n8n-nodes-pdfvector.pdfVector",
        "position": [450, 300],
        "parameters": {
          "resource": "academic",
          "operation": "search",
          "query": "={{ $json.markdown.substring(0, 200) }}",
          "providers": ["semantic-scholar", "pubmed"],
          "limit": 10,
          "offset": 0
        }
      }
    ]
  }
  ```

  ### Example: Batch Fetch Publications

  Fetch multiple publications by their DOIs:

  ```json
  {
    "parameters": {
      "resource": "academic",
      "operation": "fetch",
      "ids": "10.1038/nature12373,10.1126/science.1234567,PMC123456"
    }
  }
  ```

  ### Response Handling

  All operations return structured JSON responses. Handle errors gracefully:

  ```javascript
  // In a Function node after PDF Vector
  if ($json.error) {
    throw new Error($json.error.message);
  }

  // For academic search - check for partial errors
  if ($json.errors && $json.errors.length > 0) {
    console.warn("Some providers failed:", $json.errors);
  }

  return $json.results;
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [PDF Vector API Documentation](https://www.pdfvector.com/v1/api/scalar)
  - [PDF Vector Dashboard](https://www.pdfvector.com/dashboard)
  - [PDF Vector Pricing](https://www.pdfvector.com/#pricing)


  ## Version history

  - 0.1.0 - Initial release of the PDF Vector node for n8n.

  ## Development

  Check out [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building and developing the node.

  0. Install dependencies:

  ```bash
  npm install
  ```

  1. Build the node

  ```bash
  npm run build
  ```

  2. Link the node to n8n from the node directory

  ```bash
  npm link
  ```

  3. In your `~/.n8n/nodes` directory, link the node:

  ```bash
  npm link n8n-nodes-pdfvector
  ```

  4. Run n8n:

  ```bash
  n8n start
  ```

  Once the node is linked, you need to only rebuild and restart n8n to see the changes.

  ## License

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

ai_documentation_summary:
  {"purpose":"Convert and analyze documents (PDF/Word and related formats) into clean Markdown and structured data, perform AI question-answering over documents, and search & fetch academic publications across multiple databases to support research and document workflows.","capabilities":["Parse Document: convert PDF/Word documents to clean Markdown (with optional LLM parsing: auto/never/always)","Ask Document: ask questions about a document and receive AI-generated answers (QA over document content)","Academic Search: search publications across providers (PubMed, Semantic Scholar, Google Scholar, ArXiv, ERIC) with provider selection, limit/offset, year filters, and field selection","Fetch Publications: retrieve publications by identifiers (DOI, PubMed ID, ArXiv ID, Semantic Scholar ID, ERIC ID) with automatic provider detection","Batch fetch multiple publication IDs in one request","Invoice/specialized document parsing (mentioned as supported by the service)","Returns structured JSON responses (e.g., markdown, pageCount, creditCount) and supports integrating outputs into n8n workflows"],"authentication":"API key required (PDF Vector API key, credential configured in n8n)","commonUseCases":["Extract clean Markdown and structured data from research papers, reports, or contracts","Ask natural-language questions about a document to summarize findings, methods, or extract specific data","Search related academic literature across multiple databases using content-derived queries","Fetch metadata and full records for publications by DOI/PMID/ArXiv ID for bibliographic workflows","Batch processing workflows: parse documents then automatically find related literature or references"],"limitations":["Service is credit-based; operations consume credits per page or per request (parse: 1–2 credits/page depending on LLM; ask: 3 credits/page; academic search: 2 credits/search; fetch: 2 credits/fetch)","Operations documentation explicitly lists PDF and Word formats for parsing; README contains mixed references to Excel and images but supported formats in operations are limited/unclear","Requires n8n >= 0.202.0 and Node.js >= 20.15","No OAuth or other auth methods documented — only API key-based access","README truncated in places; some advanced behaviors or edge-case details are not documented in the provided content"],"relatedNodes":[]}


node_type: @telnyx/n8n-nodes-telnyx-ai.telnyxAi
package_name: @telnyx/n8n-nodes-telnyx-ai
display_name: Telnyx AI
description: Interact with Telnyx AI API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: team-telnyx
author_github_url: https://github.com/team-telnyx/n8n-nodes-telnyx-ai.git
npm_package_name: @telnyx/n8n-nodes-telnyx-ai
npm_version: 1.5.5
community_fetched_at: 2026-02-19T14:41:52.675Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Assistant",
          "value": "assistants"
        },
        {
          "name": "Assistant Event",
          "value": "assistantEvents"
        },
        {
          "name": "Chat",
          "value": "chat"
        },
        {
          "name": "Conversation",
          "value": "conversations"
        },
        {
          "name": "Voice",
          "value": "voice"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many chat models",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                },
                {
                  "type": "setKeyValue",
                  "enabled": "={{$parameter[\"simplify\"]}}",
                  "properties": {
                    "id": "={{$responseItem.id}}",
                    "created": "={{$responseItem.created}}",
                    "owned_by": "={{$responseItem.owned_by}}",
                    "languages": "={{$responseItem.languages}}",
                    "parameters": "={{$responseItem.parameters}}",
                    "context_length": "={{$responseItem.context_length}}"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/models",
              "method": "GET"
            }
          },
          "description": "Returns metadata about many chat models"
        },
        {
          "name": "Create Chat Completion",
          "value": "createChatCompletion",
          "action": "Create chat completion",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v2/ai/chat/completions",
              "method": "POST"
            }
          },
          "description": "Chat a new chat completion with a language model"
        },
        {
          "name": "Summarize File",
          "value": "summarizeFile",
          "action": "Summarize file content",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/summarize",
              "method": "POST"
            }
          },
          "description": "Generate a summary of a file's contents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many voices",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "voices"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/text-to-speech/voices",
              "method": "GET"
            }
          },
          "description": "Returns metadata about many voices"
        },
        {
          "name": "Text to Speech",
          "value": "textToSpeech",
          "action": "Convert text to speech",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/v2/text-to-speech/speech",
              "method": "POST",
              "encoding": "arraybuffer",
              "returnFullResponse": true
            }
          },
          "description": "Converts text into speech and returns audio"
        },
        {
          "name": "Speech to Text",
          "value": "speechToText",
          "action": "Transcribe audio",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v2/ai/audio/transcriptions",
              "method": "POST",
              "headers": {
                "Content-Type": "multipart/form-data"
              }
            }
          },
          "description": "Transcribe an audio file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many assistants",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/assistants",
              "method": "GET"
            }
          },
          "description": "Returns a list of many AI Assistants configured by the user"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an assistant",
          "routing": {
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}",
              "method": "GET"
            }
          },
          "description": "Returns a specific AI Assistant by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assistants"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a scheduled event",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
              "method": "POST"
            }
          },
          "description": "Create a new scheduled event for an assistant"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many events",
          "routing": {
            "send": {
              "paginate": "page_number",
              "property": "page_size"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
              "method": "GET"
            }
          },
          "description": "Get scheduled events for an assistant with pagination and filtering"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an event",
          "routing": {
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a scheduled event by event ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an event",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"deleted\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
              "method": "DELETE",
              "returnFullResponse": true
            }
          },
          "description": "Delete a scheduled event by event ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assistantEvents"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many conversations",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/conversations",
              "method": "GET"
            }
          },
          "description": "Returns a list of conversations"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a conversation",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}",
              "method": "GET"
            }
          },
          "description": "Returns a specific conversation by ID"
        },
        {
          "name": "Get Messages",
          "value": "getMessages",
          "action": "Get conversation messages",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/messages",
              "method": "GET"
            }
          },
          "description": "Retrieve messages for a specific conversation, including tool calls made by the assistant"
        },
        {
          "name": "Get Conversation Insights",
          "value": "getConversationInsights",
          "action": "Get insights for a conversation",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/conversations-insights",
              "method": "GET"
            }
          },
          "description": "Retrieve insights for a specific conversation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "conversations"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many chat models",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            },
            {
              "type": "setKeyValue",
              "enabled": "={{$parameter[\"simplify\"]}}",
              "properties": {
                "id": "={{$responseItem.id}}",
                "created": "={{$responseItem.created}}",
                "owned_by": "={{$responseItem.owned_by}}",
                "languages": "={{$responseItem.languages}}",
                "parameters": "={{$responseItem.parameters}}",
                "context_length": "={{$responseItem.context_length}}"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/models",
          "method": "GET"
        }
      },
      "description": "Returns metadata about many chat models"
    },
    {
      "name": "Create Chat Completion",
      "value": "createChatCompletion",
      "action": "Create chat completion",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v2/ai/chat/completions",
          "method": "POST"
        }
      },
      "description": "Chat a new chat completion with a language model"
    },
    {
      "name": "Summarize File",
      "value": "summarizeFile",
      "action": "Summarize file content",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/summarize",
          "method": "POST"
        }
      },
      "description": "Generate a summary of a file's contents"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many voices",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "voices"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/text-to-speech/voices",
          "method": "GET"
        }
      },
      "description": "Returns metadata about many voices"
    },
    {
      "name": "Text to Speech",
      "value": "textToSpeech",
      "action": "Convert text to speech",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/v2/text-to-speech/speech",
          "method": "POST",
          "encoding": "arraybuffer",
          "returnFullResponse": true
        }
      },
      "description": "Converts text into speech and returns audio"
    },
    {
      "name": "Speech to Text",
      "value": "speechToText",
      "action": "Transcribe audio",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v2/ai/audio/transcriptions",
          "method": "POST",
          "headers": {
            "Content-Type": "multipart/form-data"
          }
        }
      },
      "description": "Transcribe an audio file"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many assistants",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/assistants",
          "method": "GET"
        }
      },
      "description": "Returns a list of many AI Assistants configured by the user"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an assistant",
      "routing": {
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}",
          "method": "GET"
        }
      },
      "description": "Returns a specific AI Assistant by ID"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a scheduled event",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
          "method": "POST"
        }
      },
      "description": "Create a new scheduled event for an assistant"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many events",
      "routing": {
        "send": {
          "paginate": "page_number",
          "property": "page_size"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
          "method": "GET"
        }
      },
      "description": "Get scheduled events for an assistant with pagination and filtering"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an event",
      "routing": {
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a scheduled event by event ID"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an event",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"deleted\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
          "method": "DELETE",
          "returnFullResponse": true
        }
      },
      "description": "Delete a scheduled event by event ID"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many conversations",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/conversations",
          "method": "GET"
        }
      },
      "description": "Returns a list of conversations"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a conversation",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}",
          "method": "GET"
        }
      },
      "description": "Returns a specific conversation by ID"
    },
    {
      "name": "Get Messages",
      "value": "getMessages",
      "action": "Get conversation messages",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/messages",
          "method": "GET"
        }
      },
      "description": "Retrieve messages for a specific conversation, including tool calls made by the assistant"
    },
    {
      "name": "Get Conversation Insights",
      "value": "getConversationInsights",
      "action": "Get insights for a conversation",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/conversations-insights",
          "method": "GET"
        }
      },
      "description": "Retrieve insights for a specific conversation"
    }
  ]

npm_readme:
  # @telnyx/n8n-nodes-telnyx-ai

  This is an n8n community node. It lets you use Telnyx Voice AI in your n8n workflows.

  Telnyx Voice AI is a comprehensive platform that provides advanced conversational AI capabilities, including text-to-speech, speech-to-text, chat completions, and voice assistants with real-time interaction features.

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

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

  ## Installation

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

  You can install this package using npm:

  ```bash
  npm install @telnyx/n8n-nodes-telnyx-ai
  ```

  ## Operations

  This node supports the following resources and operations:

  ### Assistants

  - **Get Many**: Retrieve a list of AI Assistants configured by the user
  - **Get**: Get details of a specific assistant

  ### Assistant Events

  - **Create**: Create a scheduled event for an assistant
  - **Get Many**: Get a list of assistant events
  - **Get**: Get details of a specific event
  - **Delete**: Delete an assistant event

  ### Chat

  - **Get Many Models**: Get metadata about available chat models
  - **Create Chat Completion**: Generate chat completions using AI models
  - **Summarize**: Summarize file content using AI

  ### Conversations

  - **Get Many**: Retrieve a list of conversations
  - **Get**: Get details of a specific conversation
  - **Get Messages**: Get messages from a conversation
  - **Get Insights**: Get AI-generated insights for a conversation

  ### Voice

  - **Get Many Voices**: Get metadata about available voice models
  - **Text to Speech**: Convert text to speech audio
  - **Speech to Text**: Transcribe audio to text

  ## Credentials

  To use this node, you need to authenticate with the Telnyx API using your API key.

  ### Prerequisites

  1. Sign up for a [Telnyx account](https://telnyx.com)
  2. Navigate to your [API Keys page](https://portal.telnyx.com/#/app/api-keys) in the Telnyx Portal
  3. Generate a new API key or use an existing one

  ### Setting up credentials in n8n

  1. In n8n, go to **Credentials** and create new credentials
  2. Search for "Telnyx API" and select it
  3. Enter your Telnyx API key in the **API Key** field
  4. Test the credentials to ensure they work correctly

  For more information about Telnyx API keys, refer to the [official documentation](https://support.telnyx.com/en/articles/4305158-api-keys-and-how-to-use-them).

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Node.js version**: >=20.15
  - **Tested with**: n8n 1.x.x

  This node is built using n8n's programmatic-style node architecture and follows the latest n8n development best practices.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Telnyx Voice AI API documentation](https://developers.telnyx.com/docs/api/v2/ai)
  - [Telnyx Portal](https://portal.telnyx.com)
  - [Telnyx Support](https://support.telnyx.com)

  ## Version history

  ### 1.5.5 (Current)

  - Comprehensive Telnyx Voice AI integration
  - Support for Assistants, Chat, Voice, Conversations, and Assistant Events
  - Full CRUD operations for assistant events
  - Text-to-speech and speech-to-text capabilities
  - Chat completions and file summarization
  - Conversation insights and message management

ai_documentation_summary:
  {"purpose":"Provides an n8n community node to integrate Telnyx Voice AI into workflows, enabling management of AI assistants, chat completions, speech-to-text, text-to-speech, conversation retrieval/insights, and assistant event scheduling.","capabilities":["Assistants: list (Get Many) and get details (Get) of AI assistants","Assistant Events: create scheduled events, list events (Get Many), get event details (Get), delete events","Chat: list available chat models (Get Many Models), create chat completions, summarize file content","Conversations: list conversations (Get Many), get conversation details (Get), retrieve messages (Get Messages), get AI-generated insights (Get Insights)","Voice: list available voice models (Get Many Voices), convert text to speech (Text to Speech), transcribe audio to text (Speech to Text)"],"authentication":"API key required (Telnyx API key)","commonUseCases":["Generate AI chat responses or multi-turn chat completions inside workflows","Convert text content to speech audio for calls or media generation","Transcribe incoming audio files to text for processing or storage","Summarize file contents (e.g., meeting transcripts, documents) with AI","Manage and schedule assistant events (create/delete/list) for voice assistants"],"limitations":["Community node (published as an n8n community integration, not an official core node)","Requires a Telnyx account and API key to use","Platform requirements: minimum n8n version 1.0.0 and Node.js >= 20.15 (tested with n8n 1.x.x)"],"relatedNodes":[]}


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

updated_at: 2026-02-19 14:41:52
author_name: neosapience-owner
author_github_url: https://github.com/neosapience/n8n-nodes-typecast.git
npm_package_name: @neosapience/n8n-nodes-typecast
npm_version: 1.0.4
community_fetched_at: 2026-02-19T14:41:52.676Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "speech",
      "options": [
        {
          "name": "Speech",
          "value": "speech"
        },
        {
          "name": "Voice",
          "value": "voice"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get All Voices",
          "value": "getMany",
          "action": "Get all voices",
          "description": "Get all available voice models"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "textToSpeech",
      "options": [
        {
          "name": "Text to Speech",
          "value": "textToSpeech",
          "action": "Convert text to speech",
          "description": "Convert text to speech using a specified voice"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "speech"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

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

npm_readme:
  # n8n-nodes-typecast

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

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

  ## Features

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

  ## Node Structure

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

  ## Credentials Setup

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

  ## Usage Example

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

  ## Installation

  ### Via npm

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

  ### Via n8n Community Nodes

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

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

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

  ## Compatibility

  - n8n v1.0+

  ## Development

  ```bash
  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Lint & format
  npm run lint
  npm run format

  # Run development mode
  npm run dev
  ```

  ## Resources

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

  ## License

  [MIT](LICENSE)


node_type: n8n-nodes-zohozeptomail.zohoZeptomail
package_name: n8n-nodes-zohozeptomail
display_name: Zoho Zeptomail
description: Consume Zoho ZeptoMail API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: zohomail
author_github_url: https://github.com/zohomail/zoho_zeptomail_n8n.git
npm_package_name: n8n-nodes-zohozeptomail
npm_version: 1.0.3
community_fetched_at: 2026-02-19T14:41:52.676Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        }
      ],
      "required": true,
      "displayName": "Resource"
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendmail",
      "options": [
        {
          "name": "Send Mail",
          "value": "sendmail",
          "action": "Send Mail",
          "description": "This action will send an email."
        },
        {
          "name": "Send Template Mail",
          "value": "sendtemplatemail",
          "action": "Send Template Mail",
          "description": "Send custom Template Mail."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Mail",
      "value": "sendmail",
      "action": "Send Mail",
      "description": "This action will send an email."
    },
    {
      "name": "Send Template Mail",
      "value": "sendtemplatemail",
      "action": "Send Template Mail",
      "description": "Send custom Template Mail."
    }
  ]

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

  # ZeptoMail integration with N8N

  ## About ZeptoMail
  [ZeptoMail](https://www.zoho.com/zeptomail/) is a dedicated email service built specifically for user-triggered transactional emails. Businesses can integrated with ZeptoMail to deliver time sensitive emails like OTPs, password reset emails, welcome emails and more. The [N8N](https://n8n.io/) integration with ZeptoMail allows applications to create workflows to automatically send transactional emails for set triggers. 

  ## Pre-requisites

  - N8n admin account (https://app.n8n.cloud/login)
  - ZeptoMail account
  - Verified domain added to ZeptoMail

  ## Installation
  You can install the n8n ZeptoMail node through the npm package "n8n-nodes-zohozeptomail"
  - Follow the steps below to install:
     - Login to your npm account.
     - Navigate to the settings section.
     - In the community nodes section -> Install community node.
     - Enter the npm package name: n8n-nodes-zohozeptomail.
     - The node will be installed successfully.

  ## Configuration
  Once you install the package, you should integrate with n8n to start sending emails:
  - Login to your n8n account.
  - Click the down-arrow next to the <b>Create workflow</b> button and click Create credentials.
  - In the Add credentials dialogue box, choose the appropriate authorization and access token URL.
  - Go to the [Zoho developer console](https://api-console.zoho.com/) to generate a new client id and client secret. These parameters will connect ZeptoMail and n8n.
  - Click Get started if you do not have any new client. If you have an existing client, click Add client.
  - Select Server-based applications in the client type window.
  - Provide an appropriate client name, your domain value in the homepage URL field, and the redirect URL copied from the Add credentials dialog box.
  - Click Create to generate the client id and client secret.
  - Copy the generated values and paste them in the Add credentials dialog box.
  - The connection is established. You can now create workflows to send emails.

  ## Create workflows
  - Click the <b>Create workflow</b> button.
  - Select the appropriate trigger for which you wish to send emails.
  - Click the Action in App option and lookup ZeptoMail from the list.
  - Choose the type of action you wish to perform - send email, send template email.
  - You can test your configuration by selecting the Test workflow button.

ai_documentation_summary:
  {"purpose":"Provide an n8n community node that integrates with the Zoho ZeptoMail API so workflows can send transactional emails (including template-based emails) from n8n.","capabilities":["Send transactional email (custom message payload)","Send template-based email (use ZeptoMail templates)","Integrate with n8n triggers to automatically send emails as workflow actions"],"authentication":"OAuth2 (Zoho OAuth2 using client id and client secret; register a Server-based application in Zoho Developer Console and use the authorization code / redirect URL flow)","commonUseCases":["Send OTPs or verification codes triggered by a workflow event","Send password reset emails from an application workflow","Send welcome / account activation transactional emails","Automatically send time-sensitive transactional notifications from n8n workflows"],"limitations":["Requires a Zoho ZeptoMail account and a verified sending domain","Requires n8n admin access to add credentials (n8n cloud admin account when using app.n8n.cloud)","README only documents send and send-template actions — no other ZeptoMail features (inbound mail, campaign/bulk marketing features, advanced tracking) are described","Distributed as a community (npm) node — installation via n8n community node mechanism is required"],"relatedNodes":[]}


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

updated_at: 2026-02-19 14:41:52
author_name: apps_makeitfuture
author_github_url: https://github.com/makeitfutureDev/n8n-kinderpedia.git
npm_package_name: n8n-nodes-kinderpedia
npm_version: 0.1.6
community_fetched_at: 2026-02-19T14:41:52.677Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "student",
      "options": [
        {
          "name": "Student",
          "value": "student"
        },
        {
          "name": "Parent",
          "value": "parent"
        },
        {
          "name": "Family",
          "value": "family"
        },
        {
          "name": "Group",
          "value": "group"
        },
        {
          "name": "Custom Field",
          "value": "customField"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a student",
          "description": "Create a new student"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a student",
          "description": "Get a student"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many students",
          "description": "Get many students"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search students",
          "description": "Search for students with filters"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a student",
          "description": "Update a student"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "student"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a parent",
          "description": "Create a new parent"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a parent",
          "description": "Get a parent"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many parents",
          "description": "Get many parents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "parent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a group",
          "description": "Get a group"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many groups",
          "description": "Get many groups"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "group"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add Value",
          "value": "addValue",
          "action": "Add a custom field value",
          "description": "Add a custom field value"
        },
        {
          "name": "Delete Value",
          "value": "deleteValue",
          "action": "Delete a custom field value",
          "description": "Delete a custom field value"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get custom field definitions",
          "description": "Get custom field definitions"
        },
        {
          "name": "Get Values",
          "value": "getValues",
          "action": "Get custom field values",
          "description": "Get custom field values for an entity"
        },
        {
          "name": "Update Value",
          "value": "updateValue",
          "action": "Update a custom field value",
          "description": "Update a custom field value"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "customField"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a family",
          "description": "Get a family"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many families",
          "description": "Get many families"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "family"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a student",
      "description": "Create a new student"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a student",
      "description": "Get a student"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many students",
      "description": "Get many students"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search students",
      "description": "Search for students with filters"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a student",
      "description": "Update a student"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a parent",
      "description": "Create a new parent"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a parent",
      "description": "Get a parent"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many parents",
      "description": "Get many parents"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a group",
      "description": "Get a group"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many groups",
      "description": "Get many groups"
    },
    {
      "name": "Add Value",
      "value": "addValue",
      "action": "Add a custom field value",
      "description": "Add a custom field value"
    },
    {
      "name": "Delete Value",
      "value": "deleteValue",
      "action": "Delete a custom field value",
      "description": "Delete a custom field value"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get custom field definitions",
      "description": "Get custom field definitions"
    },
    {
      "name": "Get Values",
      "value": "getValues",
      "action": "Get custom field values",
      "description": "Get custom field values for an entity"
    },
    {
      "name": "Update Value",
      "value": "updateValue",
      "action": "Update a custom field value",
      "description": "Update a custom field value"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a family",
      "description": "Get a family"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many families",
      "description": "Get many families"
    }
  ]

npm_readme:
  # n8n-nodes-kinderpedia

  This is an n8n community node that allows you to use Kinderpedia API in your n8n workflows.

  [Kinderpedia](https://kinderpedia.co/) is a platform for managing educational institutions.

  ## Installation

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

  ## Operations

  ### Student
  - **Get Many**: Retrieve multiple students

  ### Parent
  - **Get Many**: Retrieve multiple parents

  ### Group
  - **Get Many**: Retrieve multiple groups

  ## Credentials

  To use this node, you need:
  - **API Key**: Your Kinderpedia API key
  - **School ID**: Your school identifier
  - **Environment**: Choose between Production or Sandbox

  ## Compatibility

  Tested with n8n version 1.0.0 and above.

  ## Usage

  1. Add your Kinderpedia credentials in n8n
  2. Add the Kinderpedia node to your workflow
  3. Select the resource (Student, Parent, or Group)
  4. Configure the operation parameters
  5. Execute your workflow

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Kinderpedia API documentation](https://openapi-documentation.kinderpedia.co/)

  ## Version history

  - 0.1.0: Initial release with basic GET operations for Students, Parents, and Groups

ai_documentation_summary:
  {"purpose":"Connect n8n workflows to the Kinderpedia API to retrieve roster and group information for an educational institution (students, parents, groups).","capabilities":["Student - Get Many: retrieve multiple student records","Parent - Get Many: retrieve multiple parent records","Group - Get Many: retrieve multiple group records","Environment selection: choose Production or Sandbox for API requests"],"authentication":"API key required (Kinderpedia API Key) plus School ID; select Environment (Production or Sandbox)","commonUseCases":["Sync student, parent, or group lists from Kinderpedia into a database or CRM","Build reports or dashboards using roster and group data","Trigger downstream workflows (notifications, messaging, or automation) based on retrieved student/parent/group data","Periodic audit or backup of school roster and group information"],"limitations":["Initial release (0.1.0) with only basic GET operations; no create/update/delete or other write operations provided","Feature set is limited to retrieving multiple records for Students, Parents, and Groups","No additional endpoints or advanced query options documented in the README"],"relatedNodes":[]}


node_type: @enginemailer/n8n-nodes-enginemailer.enginemailer
package_name: @enginemailer/n8n-nodes-enginemailer
display_name: Enginemailer
description: Consume Enginemailer API
category: Community
development_style: declarative
version: 1.0.1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: enginemailer
author_github_url: https://github.com/Enginemailer-Official/n8n-nodes-enginemailer.git
npm_package_name: @enginemailer/n8n-nodes-enginemailer
npm_version: 1.0.1
community_fetched_at: 2026-02-19T14:41:52.678Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # n8n-nodes-enginemailer

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

  Enginemailer is an all-in-one email marketing platform offering lead generation, marketing, transactional and automation features.

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

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

  ## Installation

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

  ## Operations

  - Subscriber
    - Add or update a subscriber
    - Deactivate a subscriber
    - Delete a subscriber
    - Find a subscriber
    - Send email
    - Tag a subscriber to subcategory
    - Untag a subscriber from subcategory

  ## Events

  - Subscriber
    - On autoresponder completed
    - On autoresponder triggered
    - On subscribed
    - On subscriber deleted
    - On subscriber's fields updated
    - On tagged with subcategory
    - On unsubscribed
    - On untagged with subcategory

  ## Credentials

  You can use these credentials to authenticate the following nodes:

  - Enginemailer
  - Enginemailer Trigger

  ### Prerequisites

  Create an [Enginemailer](https://www.enginemailer.com/) account.

  ### Supported authentication methods

  - API key

  ### Related resources

  Refer to [Enginemailer's API documentation](https://connect.enginemailer.com/n8n/index.html) for more information about the service.

  ### Using API Key

  To configure this credential, you'll need:

  - An **API Key**: Generate an API key from the **Enginemailer** account -> API Keys. Refer to the [API Authentication documentation](https://enginemailer.zendesk.com/hc/en-us/articles/360057634711-Manage-API-keys-for-your-account) for more detailed instructions.

  ## Compatibility

  - Tested against n8n version 1.103.2

  ### Node parameters

  Use these parameters to configure your node.

  #### Poll Times

  n8n's Enginemailer trigger node uses polling for check for updates on configured Enginemailer resources. The **Poll Times** parameter configures the querying frequency:

  - Every Minute
  - Every Hour
  - Every Day
  - Every Week
  - Every Month
  - Every X: Check for updates every given number of minutes or hours.
  - Custom: Customize the polling interval by providing a cron expression.
    Use the **Add Poll Time** button to add more polling intervals.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Enginemailer's API documentation](https://connect.enginemailer.com/n8n/index.html)

ai_documentation_summary:
  {"purpose":"Provides n8n nodes to interact with the Enginemailer API, enabling automation of subscriber management and email sending within n8n workflows.","capabilities":["Add or update a subscriber","Deactivate a subscriber","Delete a subscriber","Find a subscriber","Send email","Tag a subscriber to a subcategory","Untag a subscriber from subcategory","Trigger events on subscriber-related changes (e.g., subscribed, unsubscribed, autoresponder triggered/completed, fields updated, tagged/untagged)"],"authentication":"API key required","commonUseCases":["Add or update leads/subscribers from forms or CRM data","Send transactional or marketing emails to subscribers","Automate workflows when subscribers are added, removed, or updated","Manage subscriber tags/subcategories for segmentation","React to autoresponder events to drive follow-up workflows"],"limitations":["Trigger node uses polling (configurable intervals) rather than real-time webhooks","Authentication limited to API key (no OAuth2 listed)","Operations documented are focused on Subscriber-related features — broader Enginemailer features (campaign management, templates, analytics) may not be exposed by this node","Tested against n8n version 1.103.2 (compatibility with other versions not explicitly guaranteed)"],"relatedNodes":["Enginemailer","Enginemailer Trigger"]}


node_type: n8n-nodes-visualping.visualpingTrigger
package_name: n8n-nodes-visualping
display_name: Visualping Trigger
description: Triggers workflow on Visualping job events
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: ccomparon
author_github_url: https://github.com/webmonitoring/
npm_package_name: n8n-nodes-visualping
npm_version: 1.0.2
community_fetched_at: 2026-02-19T14:41:52.678Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # n8n-nodes-visualping

  This is an n8n community node that integrates [Visualping](https://visualping.io) with your n8n workflows, allowing you to trigger workflows when website changes are detected.

  [Visualping](https://visualping.io) is a web monitoring service that tracks changes on websites and sends notifications, while [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform that allows you to connect various services.

  ## Table of contents

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

  ## Installation

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

  ## Operations

  This node provides a trigger operation for Visualping.

  ### Triggers
  - **Visualping Trigger**: Automatically starts an n8n workflow when a Visualping job detects changes on a monitored website
    - Configure webhook notifications for specific Visualping jobs
    - Receive change detection events in real-time
    - Supports job selection from list or by ID

  ## Credentials

  To use this node, you need to authenticate with your Visualping account:

  1. **Email and Password Authentication**
     - Configure your Visualping account credentials in the n8n credentials section under `Visualping Credentials API`
     - Provide your Visualping account email and password

  ## Compatibility

  This node has been tested with n8n version 1.57.0 and requires Node.js version 20.15 or higher.

  ## Usage

  1. **Create a Visualping Job**: Set up a new monitoring job on [Visualping](https://visualping.io) to track changes on your target website.
  2. **Set up a workflow**: Create a new workflow in n8n.
  3. **Add the Visualping Trigger node**: Insert the Visualping Trigger node into your workflow.
  4. **Configure credentials**: Enter your Visualping account email and password.
  5. **Select a job**: Choose the Visualping job you want to monitor for changes.
  6. **Configure the trigger**: The node will automatically set up webhook notifications for the selected job.
  7. **Execute the workflow**: The workflow will trigger whenever Visualping detects changes on the monitored website.

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Visualping API Documentation](https://api.visualping.io/doc.html)
  - [Visualping Authentication Guide](https://api.visualping.io/doc.html#section/Authentication)

  ## Version history

  Track changes and updates to the node here.

  ## Troubleshooting

  ### Common issues

  1. **Authentication errors**
     - Verify your Visualping email and password are correct
     - Ensure your Visualping account is active

  2. **Job not found**
     - Verify the job ID format (should be numeric)
     - Check if the job exists in your Visualping account
     - Ensure you have access to the job

  3. **Webhook configuration issues**
     - Check that your n8n instance is accessible from the internet
     - Verify the webhook URL is correctly configured
     - Review Visualping job settings for webhook notifications

  ### Getting help

  If you encounter issues:
  1. Check the [Visualping API documentation](https://api.visualping.io/doc.html)
  2. Review the [n8n Community Nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  3. Open an issue in the [GitHub repository](https://github.com/webmonitoring/n8n-nodes-visualping)

ai_documentation_summary:
  {"purpose":"Starts an n8n workflow when a Visualping monitoring job detects changes on a monitored website (real-time change detection trigger).","capabilities":["Trigger workflows on Visualping job change events","Automatically configure webhook notifications for selected Visualping jobs","Select job to monitor from a list or by job ID","Receive real-time change detection event payloads from Visualping"],"authentication":"Email and password (configure Visualping account credentials in n8n under 'Visualping Credentials API')","commonUseCases":["Notify teams (Slack, email, etc.) when a monitored webpage changes","Archive or snapshot changed page content for auditing","Trigger downstream processing (scraping, parsing, data extraction) when changes occur","Monitor price, availability, or content changes and update databases or ticketing systems"],"limitations":["Trigger-only node — does not create or manage Visualping jobs (requires jobs to exist in Visualping)","Requires Visualping account email/password authentication (no OAuth/API-key option documented)","n8n instance must be reachable from the internet for Visualping webhooks to be delivered","Job ID must be numeric; 'job not found' can occur if ID is incorrect or inaccessible","Tested with n8n v1.57.0 and requires Node.js v20.15 or higher (compatibility constraint)"],"relatedNodes":["Webhook","HTTP Request","Other trigger nodes (for orchestrating downstream workflows)"]}


node_type: n8n-nodes-kipps.kippsAiChatbot
package_name: n8n-nodes-kipps
display_name: Kipps.AI Chatbot
description: Interact with a Kipps.AI Chatbot to send and receive messages.
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: kipps.ai
author_github_url: https://github.com/KIPPS-AI/
npm_package_name: n8n-nodes-kipps
npm_version: 0.0.7
community_fetched_at: 2026-02-19T14:41:52.678Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # n8n Nodes for Kipps.AI

  This repository contains n8n nodes for interacting with the Kipps.AI platform. These nodes allow you to integrate your Kipps.AI chatbots and voicebots into your n8n workflows.

  ## Nodes

  This package includes the following nodes:

  - **Kipps.AI Chatbot**: Interact with a Kipps.AI chatbot.
  - **Kipps.AI Voicebot**: Initiate, interact with, and end calls with a Kipps.AI voicebot.

  ## Installation

  ### Docker

  1.  **Clone this repository:**
      ```bash
      git clone https://github.com/KIPPS-AI/n8n-nodes-kipps.git
      ```
  2.  **Navigate to the cloned directory:**
      ```bash
      cd n8n-nodes-kipps
      ```
  3.  **Build the package:**

      ```bash
      npm install
      npm run build

      ```

  4.  **Run the Docker container:**

      ```bash
      docker run -it --rm -p 5678:5678 `
      -v "${env:USERPROFILE}\.n8n:/home/node/.n8n" `
      -v "${PWD}:/home/node/.n8n/custom" `  -e N8N_CUSTOM_EXTENSIONS_MODE=paths`
      -e N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom `
      n8nio/n8n
      ```

      On Linux/macOS, use:

      ```bash
      docker run -it --rm -p 5678:5678 \
      -v "$HOME/.n8n:/home/node/.n8n" \
      -v "$(pwd):/home/node/.n8n/custom" \
      -e N8N_CUSTOM_EXTENSIONS_MODE=paths \
      -e N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom \
      n8nio/n8n
      ```

  ### npm (Bare-metal or Custom Node.js install)

  1.  **Install the package:**
      ```bash
      npm install n8n-nodes-kipps
      ```
  2.  **Restart your n8n instance.**

  ### Mount Instructions

  If you are running n8n in a Docker container, you can mount the nodes into your container.

  1.  **Clone this repository:**
      ```bash
      git clone https://github.com/KIPPS-AI/n8n-nodes-kipps.git
      ```
  2.  **Add the following to your `docker-compose.yml` file:**
      ```yaml
      volumes:
        - ./n8n-nodes-kipps:/root/.n8n/custom
      ```
  3.  **Restart your n8n container.**

  ## Authentication

  To use these nodes, you will need a Kipps.AI API key.

  1.  **Obtain your API Key:**
      - Log in to your Kipps.AI account at [https://app.kipps.ai/](https://app.kipps.ai/).
      - Navigate to the API settings page (you might find it under "Developers" section).
      - Generate a new API key.

  2.  **Add the Kipps.AI Credential in n8n:**
      - In your n8n instance, go to the "Credentials" section.
      - Click on "Add credential".
      - Search for "Kipps AI API" and select it.
      - Enter your API key in the credential configuration.
      - Save the credential.

  ## Node Parameters

  ### Kipps.AI Chatbot

  - **Agent ID**: The ID of the chatbot agent to use.
  - **Message**: The message to send to the chatbot.
  - **Session ID**: Optional Conversation ID for context management.

  ### Kipps.AI Voicebot

  - **Action**: The action to perform.
    - **Start Call**: Initiates a call.
    - **Send Audio/Text**: Sends audio or text to the call.
    - **End Call**: Ends the call.
  - **Voicebot ID**: The ID of the voicebot to use.
  - **Phone Number**: The phone number to call (required for `Start Call`).
  - **Room Name**: The room name of the call to interact with.
  - **Input Type**: The type of input to send (`Text` or `Audio`).
  - **Text Input**: The text to send to the voicebot.
  - **Audio Input**: The path to the audio file to send.

  ## Usage Examples

  ### Kipps.AI Chatbot

  This example shows how to send a message to a Kipps.AI chatbot and receive a response.

  1.  **Add the Kipps.AI Chatbot node to your workflow.**
  2.  **Configure the node with your Agent ID and the message you want to send.**
  3.  **Execute the workflow.**

  The node will output the chatbot's response.

  ### Kipps.AI Voicebot

  This example shows how to initiate a call, send a message, and end the call with a Kipps.AI voicebot.

  1.  **Start a call:**
      - Add the Kipps.AI Voicebot node to your workflow.
      - Set the **Action** to `Start Call`.
      - Provide the **Voicebot ID** and the **Phone Number** to call.
  2.  **Send a message:**
      - Add another Kipps.AI Voicebot node.
      - Set the **Action** to `Send Audio/Text`.
      - Provide the **Room Name** from the previous step.
      - Set the **Input Type** to `Text` and enter your message.
  3.  **End the call:**
      - Add a final Kipps.AI Voicebot node.
      - Set the **Action** to `End Call`.
      - Provide the **Room Name**.

  ## Troubleshooting

  - **401 Unauthorized**: Make sure your API key is correct and has the necessary permissions.
  - **404 Not Found**: Double-check the Agent ID or Voicebot ID.
  - **Network Errors**: Ensure that your n8n instance can reach the Kipps.AI API (`https://backend.kipps.ai`).
  - **Credential Mistakes**: Verify that you have created a Kipps.AI API credential and selected it in the node.

ai_documentation_summary:
  {"purpose":"Send text messages to a Kipps.AI chatbot agent and receive its responses, optionally maintaining conversation context across a session.","capabilities":["Send a text message to a specified Kipps.AI chatbot Agent (Agent ID)","Receive and output the chatbot's response for use in downstream workflow nodes","Associate messages with an optional Session ID to maintain conversation context","Configure which chatbot agent to target via Agent ID"],"authentication":"API key required (Kipps.AI API credential configured in n8n)","commonUseCases":["Send a message to a chatbot and process the reply within an automated workflow","Maintain multi-step conversational context by supplying a Session ID between node executions","Integrate chatbot responses into support, notification, or decisioning workflows","Trigger chatbot interactions from other workflow events (webhooks, schedules, etc.)"],"limitations":["Requires a Kipps.AI account and a valid API key (401 Unauthorized if invalid)","Chatbot node is for text interactions; voice or audio call functionality is handled by the separate Voicebot node","No mention of streaming/partial responses or handling of non-text attachments","Network connectivity to Kipps.AI backend (https://backend.kipps.ai) is required (network errors possible)","Errors such as 404 may occur if Agent ID is incorrect"],"relatedNodes":["Kipps.AI Voicebot"]}


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

updated_at: 2026-02-19 14:41:52
author_name: dumitrucucu
author_github_url: https://github.com/agency-ai-solutions/
npm_package_name: n8n-nodes-agencii
npm_version: 0.1.7
community_fetched_at: 2026-02-19T14:41:52.679Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Chat",
          "value": "chat"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendMessage",
      "options": [
        {
          "name": "Send Message",
          "value": "sendMessage",
          "action": "Send message to agency",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/",
              "method": "POST"
            }
          },
          "description": "Send a message to your agency on the Agencii.ai platform and receive a response"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "hidden",
      "default": "getResponse",
      "routing": {
        "send": {
          "type": "body",
          "property": "operation"
        }
      },
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ],
          "operation": [
            "sendMessage"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "name": "Send Message",
      "value": "sendMessage",
      "action": "Send message to agency",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/",
          "method": "POST"
        }
      },
      "description": "Send a message to your agency on the Agencii.ai platform and receive a response"
    }
  ]

npm_readme:
  # n8n-nodes-agencii

  This is an n8n community node for the **Agencii.ai Platform**. It connects your n8n workflows to your agency-swarm powered agencies on the Agencii.ai platform.

  [Agencii.ai](https://agencii.ai) is an AI automation platform that uses [agency-swarm](https://github.com/VRSEN/agency-swarm) to provide infrastructure for building and deploying AI agent agencies. The platform enables you to create multi-agent systems where specialized agents work together to accomplish complex tasks.

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

  ## How It Works

  This integration connects your n8n workflows directly to your agencies on the Agencii.ai platform:

  1. **Platform Configuration**: In your Agencii.ai dashboard, you configure n8n integration settings for your agency
  2. **Integration ID**: Each agency gets a unique n8n integration ID that identifies which agency to route requests to
  3. **Default Agent Routing**: When you send a message through this node, the platform routes it to your agency's default agent
  4. **Agency-Swarm Processing**: Your agency (powered by agency-swarm) processes the request using its configured agents and tools
  5. **Response**: The agency's response is returned to your n8n workflow for further processing

  ## Table of Contents

  - [How It Works](#how-it-works)
  - [Installation](#installation)
  - [Operations](#operations)
  - [Design Principles](#design-principles)
  - [Credentials](#credentials)
  - [Usage](#usage)
  - [Compatibility](#compatibility)
  - [Resources](#resources)
  - [Version History](#version-history)

  ## Installation

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

  ### Quick Install

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

  After installation, the **Agencii** node will be available in your node palette.

  ## Operations

  The Agencii node supports the following operation:

  ### Send Message

  Send a message to your agency on the Agencii.ai platform and receive a response from your agency's default agent.

  **Parameters:**

  - **Message** (required): The message or task to send to your agency
  - **Session ID** (optional): Identifier to continue an existing conversation. If not provided, a new session is created automatically.
  - **Integration ID** (required): The specific Integration ID for the agency you want to connect to

  Note: Model selection, temperature, max tokens, tools, and agent behavior are configured on the Agencii.ai platform (see [Agency Swarm Overview](https://agency-swarm.ai/welcome/overview)).

  **Returns:**

  - `text`: The agency's response to your message
  - `response`: Alias for `text` (for backwards compatibility)
  - `sessionId`: The session identifier (for continuing the conversation in follow-up calls)
  - `n8nIntegrationId`: The integration ID used
  - Additional metadata fields as provided by the backend

  ## Design Principles

  - Connectivity, not configuration:
    - This node connects n8n to your agencies on the Agencii.ai platform. It does not configure agent behavior.
  - Platform-managed tuning:
    - Model, temperature, max tokens, system prompts, tools, and multi-agent logic are defined on the platform.
  - Fixed endpoint:
    - The endpoint is fixed and not user-editable in this node. Routing to the correct agency is handled via your Integration ID.
  - Default agent routing:
    - Messages are routed to your agency’s default agent unless otherwise configured on the platform.
  - Session-focused:
    - Provide `Session ID` to continue context; omit it to start a new session automatically.

  ## Credentials

  To use this node, you need to configure your Agencii.ai Platform credentials:

  ### Prerequisites

  1. Sign up for an Agencii.ai account at [agencii.ai](https://agencii.ai)
  2. Get your API key from your Agencii dashboard
  3. For each workflow, you'll need the specific Integration ID for the agency you want to connect to

  ### Setting Up Credentials in n8n

  1. In n8n, go to **Credentials** and click **Add Credential**
  2. Search for **Agencii API** and select it
  3. Fill in the following field:
     - **API Key**: Your Agencii.ai API key for authentication
  4. Click **Save**

  ### Configuring Each Node

  Each Agencii node instance requires an **Integration ID** parameter that specifies which agency to connect to. This allows you to:

  - Connect different nodes to different agencies in the same workflow
  - Reuse the same API credentials across multiple agencies
  - Easily switch between agencies by changing the Integration ID parameter

  ### Authentication Method

  The node uses Bearer token authentication (API Key in header) and sends your Integration ID as a URL query parameter to route requests to the correct agency on the Agencii.ai platform.

  ## Usage

  ### Single Request

  Use the **Send Message** operation to send a single message to your agency and receive a response.

  **Example Use Case:** Task execution via agency

  ```
  1. Add an Agencii node to your workflow
  2. Select Resource: Chat
  3. Select Operation: Send Message
  4. Set Integration ID: Your agency's Integration ID from Agencii dashboard
  5. Set Message: "Analyze the customer feedback data and provide a summary: {{$json.feedbackData}}"
  6. Leave Session ID empty (a new session will be created automatically)
  ```

  **Result:** Your agency processes the request using its configured agents and tools, returning the result.

  ### Multi-Turn Conversation

  For conversational workflows where context matters, reuse the `sessionId` from previous calls in subsequent **Send Message** calls to maintain session continuity.

  **Example Use Case:** Interactive data analysis with context

  ```
  Step 1: Initial request
  - Add an Agencii node
  - Select Resource: Chat
  - Select Operation: Send Message
  - Set Integration ID: Your agency's Integration ID
  - Set Message: "Analyze this sales data and identify trends: {{$json.salesData}}"
  - Leave Session ID empty (stores the sessionId in output)

  Step 2: Follow-up questions
  - Add another Agencii node
  - Select Resource: Chat
  - Select Operation: Send Message
  - Set Integration ID: Same Integration ID as Step 1
  - Set Message: "Based on those trends, what should our Q4 strategy be?"
  - Set Session ID: {{$node["Previous Node"].json.sessionId}}
  - Your agency will remember the previous analysis and provide contextual recommendations
  ```

  **Benefits:**

  - Your agency maintains conversation context across multiple interactions
  - More natural and contextual task execution
  - Efficient processing as the agency remembers prior exchanges

  ### Advanced Patterns

  #### Conditional Session Management

  Use an IF node to check if a `sessionId` exists. If yes, reuse it for conversation continuity; if no, a new session will be created automatically.

  #### Session Persistence

  Store `sessionId` values in n8n's built-in data storage or an external database to maintain long-running conversations with your agency across multiple workflow executions.

  ### Understanding Agency Routing

  When you send a message through this node:

  1. Your **Integration ID** identifies which agency to route to
  2. The message is sent to your agency's **default agent** (configured in Agencii.ai platform)
  3. Your agency, powered by **agency-swarm**, coordinates between its agents to process the request
  4. Each agent has specific tools and capabilities configured in your agency setup
  5. The agency returns the final response to your n8n workflow

  **Note:** Agent behavior, system prompts, tools, and capabilities are all configured within the Agencii.ai platform, not in this n8n node. The node simply connects n8n to your pre-configured agency.

  ## Compatibility

  - **Minimum n8n version:** 1.0.0
  - **Tested on:** n8n v1.0.0+
  - **Node API Version:** 1

  This node uses n8n's declarative routing feature for simplified API integration.

  ## Resources

  - [n8n Documentation](https://docs.n8n.io/)
  - [n8n Community Nodes](https://docs.n8n.io/integrations/#community-nodes)
  - [Agencii.ai Platform](https://agencii.ai)
  - [Agency Swarm Overview](https://agency-swarm.ai/welcome/overview)
  - [Agency-Swarm Framework](https://github.com/VRSEN/agency-swarm)
  - [Agencii.ai Documentation](https://docs.agencii.ai)

  ## Support

  For issues, questions, or feature requests:

  - Open an issue on [GitHub](https://github.com/agency-ai-solutions/n8n-nodes-agencii/issues)
  - Join the [n8n community](https://community.n8n.io/)

  ## Version History

  ### 0.1.0 (Initial Release)

  - ✨ Initial implementation of Agencii.ai Platform integration for n8n
  - 🚀 Support for **Send Message** operation: Send messages to your agency-swarm powered agencies
  - 🔐 Secure API authentication via Integration ID (routes to specific agency)
  - 🤖 Direct integration with agency-swarm infrastructure on Agencii.ai
  - 📊 Response includes `text`, `response` (alias), and `sessionId` fields
  - 💬 Session management for multi-turn conversations with agencies
  - 📝 Comprehensive documentation and workflow examples

  ## License

  [MIT](LICENSE)

  ## Contributing

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

ai_documentation_summary:
  {"purpose":"Connect n8n workflows to Agencii.ai agencies to send messages/tasks to an agency-swarm powered agency and receive the agency's chat response (including session handling).","capabilities":["Send Message: forward a message/task to an Agencii agency and return the agency's response","Start new conversation sessions automatically when no Session ID is provided","Continue multi-turn conversations by supplying a Session ID","Route requests to a specific agency using an Integration ID per node instance","Return structured response fields: text (or response), sessionId, n8nIntegrationId, plus backend metadata"],"authentication":"API key (Bearer token in Authorization header). Integration ID is sent as a URL query parameter to route requests.","commonUseCases":["One-off task execution by an agency (e.g., analyze customer feedback and return a summary)","Multi-turn conversational workflows that maintain context via sessionId","Connecting different workflow nodes to different agencies by setting different Integration IDs","Automating complex, multi-agent tasks via platform-managed agent/tool orchestration"],"limitations":["Node does not allow configuring model, temperature, max tokens, tools, system prompts, or agent behavior — those are managed on the Agencii.ai platform","Fixed endpoint in the node; endpoint URL is not user-editable","Messages are routed to the agency's default agent unless changed on the platform","Supports a single operation (Send Message); no built-in advanced message control parameters beyond Session ID and Integration ID"],"relatedNodes":[]}


node_type: n8n-nodes-aimfox.aimfox
package_name: n8n-nodes-aimfox
display_name: Aimfox
description: Interact with Aimfox application
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: mihailozepina
author_github_url: https://github.com/mihailozepina/
npm_package_name: n8n-nodes-aimfox
npm_version: 1.0.14
community_fetched_at: 2026-02-19T14:41:52.679Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "account",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Blacklist",
          "value": "blacklist"
        },
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Conversation",
          "value": "conversation"
        },
        {
          "name": "Custom Variable",
          "value": "customVariable"
        },
        {
          "name": "Label",
          "value": "label"
        },
        {
          "name": "Lead",
          "value": "lead"
        },
        {
          "name": "Template",
          "value": "template"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAccounts",
      "options": [
        {
          "name": "Get Account Limits",
          "value": "getAccountLimits",
          "action": "Get account limits",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/limits",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get the interaction limits for a specific account"
        },
        {
          "name": "List Accounts",
          "value": "listAccounts",
          "action": "List accounts",
          "routing": {
            "request": {
              "url": "/accounts",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all accounts in the workspace"
        },
        {
          "name": "Set Account Limits",
          "value": "setAccountLimits",
          "action": "Set account limits",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/limits",
              "body": {
                "inmail": "={{$parameter[\"inmailLimit\"]}}",
                "connect": "={{$parameter[\"connectLimit\"]}}",
                "message_request": "={{$parameter[\"messageRequestLimit\"]}}"
              },
              "method": "PATCH",
              "headers": {}
            }
          },
          "description": "Update the weekly interaction limits for an account"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listBlacklist",
      "options": [
        {
          "name": "Add Companies to Blacklist",
          "value": "addCompaniesToBlacklist",
          "action": "Add companies to blacklist",
          "routing": {
            "request": {
              "url": "/blacklist-companies",
              "body": {
                "companies": "={{$parameter[\"companyUrls\"].split(\",\").map(url => url.trim())}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add multiple LinkedIn companies to the blacklist"
        },
        {
          "name": "Add Profile to Blacklist",
          "value": "addProfileToBlacklist",
          "action": "Add profile to blacklist",
          "routing": {
            "request": {
              "url": "=/blacklist/{{$parameter[\"profileUrn\"]}}",
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add profile to the blacklist using the profile URN"
        },
        {
          "name": "List Blacklisted Companies",
          "value": "listBlacklistedCompanies",
          "action": "List blacklisted companies",
          "routing": {
            "request": {
              "url": "/blacklist-companies",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all blacklisted LinkedIn companies in the workspace"
        },
        {
          "name": "List Blacklisted Profiles",
          "value": "listBlacklist",
          "action": "List blacklisted profiles",
          "routing": {
            "request": {
              "url": "/blacklist",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all blacklisted profiles in the workspace"
        },
        {
          "name": "Remove Company From Blacklist",
          "value": "removeCompanyFromBlacklist",
          "action": "Remove company from blacklist",
          "routing": {
            "request": {
              "url": "=/blacklist-companies/{{$parameter[\"companyUrn\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Remove a LinkedIn company from the blacklist using the company URN"
        },
        {
          "name": "Remove Profile From Blacklist",
          "value": "removeProfileFromBlacklist",
          "action": "Remove profile from blacklist",
          "routing": {
            "request": {
              "url": "=/blacklist/{{$parameter[\"profileUrn\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Remove profile from the blacklist using the profile URN"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "blacklist"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listConversations",
      "options": [
        {
          "name": "Get Conversation",
          "value": "getConversation",
          "action": "Get conversation",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get a specific conversation by URN"
        },
        {
          "name": "Get Lead Conversation",
          "value": "getLeadConversation",
          "action": "Get lead conversation",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/leads/{{$parameter[\"leadId\"]}}/conversation",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get a specific lead conversation URN"
        },
        {
          "name": "List Conversations",
          "value": "listConversations",
          "action": "List conversations",
          "routing": {
            "request": {
              "url": "/conversations",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all conversations for the selected workspace"
        },
        {
          "name": "Mark Conversation As Read",
          "value": "markConversationAsRead",
          "action": "Mark conversation as read",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}/mark-as-read",
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Mark an existing conversation as read"
        },
        {
          "name": "Send Message To Conversation",
          "value": "sendMessageToConversation",
          "action": "Send message to conversation",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}",
              "body": {
                "message": "={{$parameter[\"conversationMessage\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Send a message to an existing conversation"
        },
        {
          "name": "Start Conversation",
          "value": "startConversation",
          "action": "Start conversation",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations",
              "body": {
                "message": "={{$parameter[\"conversationMessage\"]}}",
                "recipients": [
                  "={{$parameter[\"leadId\"]}}"
                ]
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Start a new conversation with the lead"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listCampaigns",
      "options": [
        {
          "name": "Add Profile to Campaign",
          "value": "addProfileToCampaign",
          "action": "Add profile to campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience",
              "body": {
                "profile_url": "={{$parameter[\"profileUrl\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add profile to the selected campaign"
        },
        {
          "name": "Add Profile to Campaign with Custom Variables",
          "value": "addProfileToCampaignWithCustomVariables",
          "action": "Add profile to campaign with custom variables",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience/multiple",
              "body": {
                "type": "profile_url",
                "profiles": [
                  {
                    "profile_url": "={{$parameter[\"profileUrl\"]}}",
                    "custom_variables": "={{JSON.parse($parameter[\"customVariables\"])}}"
                  }
                ]
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add profile to the selected campaign with custom variables"
        },
        {
          "name": "Create Campaign",
          "value": "createCampaign",
          "action": "Create a campaign",
          "routing": {
            "request": {
              "url": "/campaigns",
              "body": {
                "name": "={{$parameter[\"campaignName\"]}}",
                "type": "={{$parameter[\"campaignType\"]}}",
                "account_ids": "={{$parameter[\"accountIds\"].split(\",\").map(id => id.trim())}}",
                "audience_size": "={{$parameter[\"audienceSize\"]}}",
                "outreach_type": "={{$parameter[\"outreachType\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Create a new Aimfox campaign"
        },
        {
          "name": "Get Campaign",
          "value": "getCampaign",
          "action": "Get a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get a specific campaign by ID"
        },
        {
          "name": "List Campaigns",
          "value": "listCampaigns",
          "action": "List campaigns",
          "routing": {
            "request": {
              "url": "/campaigns",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all campaigns in the workspace"
        },
        {
          "name": "Pause",
          "value": "pauseCampaign",
          "action": "Pause a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
              "body": {
                "state": "PAUSED"
              },
              "method": "PATCH",
              "headers": {}
            }
          },
          "description": "Pause a running campaign"
        },
        {
          "name": "Remove Profile From Campaign",
          "value": "removeProfileFromCampaign",
          "action": "Remove profile from campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience/{{$parameter[\"profileUrnOrIdentifier\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Remove a profile from the selected campaign using URN or public identifier"
        },
        {
          "name": "Resume",
          "value": "resumeCampaign",
          "action": "Resume a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
              "body": {
                "state": "ACTIVE"
              },
              "method": "PATCH",
              "headers": {}
            }
          },
          "description": "Resume a paused campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCampaignCustomVariables",
      "options": [
        {
          "name": "Add Custom Variables to Target",
          "value": "addCustomVariablesToTarget",
          "action": "Add custom variables to target",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables",
              "body": {
                "custom_variables": "={{[{ target_urn: $parameter[\"targetUrn\"], variables: JSON.parse($parameter[\"variables\"]) }]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add custom variables to a specific target in a campaign"
        },
        {
          "name": "Get Campaign Custom Variables",
          "value": "getCampaignCustomVariables",
          "action": "Get campaign custom variables",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get all custom variables for a specific campaign"
        },
        {
          "name": "Get Target Custom Variables",
          "value": "getTargetCustomVariables",
          "action": "Get target custom variables",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables/{{$parameter[\"targetUrn\"]}}",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get custom variables for a specific target in a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "customVariable"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listLabels",
      "options": [
        {
          "name": "Add Label",
          "value": "addLabel",
          "action": "Add label",
          "routing": {
            "request": {
              "url": "/labels",
              "body": {
                "name": "={{$parameter[\"labelName\"]}}",
                "color": "={{$parameter[\"labelColor\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add a new label to the selected workspace"
        },
        {
          "name": "Delete Label",
          "value": "deleteLabel",
          "action": "Delete label",
          "routing": {
            "request": {
              "url": "=/labels/{{$parameter[\"workspaceLabelId\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Delete a label from the workspace"
        },
        {
          "name": "Edit Label",
          "value": "editLabel",
          "action": "Edit label",
          "routing": {
            "request": {
              "url": "=/labels/{{$parameter[\"workspaceLabelId\"]}}",
              "body": {
                "name": "={{$parameter[\"labelName\"]}}",
                "color": "={{$parameter[\"labelColor\"]}}"
              },
              "method": "PATCH",
              "headers": {}
            }
          },
          "description": "Edit an existing label in the workspace"
        },
        {
          "name": "List Labels",
          "value": "listLabels",
          "action": "List labels",
          "routing": {
            "request": {
              "url": "/labels",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all labels for the selected workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "label"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listRecentLeads",
      "options": [
        {
          "name": "Add Label To Lead",
          "value": "addLabelToLead",
          "action": "Add label to lead",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/labels/{{$parameter[\"labelId\"]}}",
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add a new label to the selected lead"
        },
        {
          "name": "Add Note To Lead",
          "value": "addNoteToLead",
          "action": "Add note to lead",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/notes",
              "body": {
                "text": "={{$parameter[\"noteText\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add a new note to the selected lead"
        },
        {
          "name": "Delete Note From Lead",
          "value": "deleteNoteFromLead",
          "action": "Delete note from lead",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/notes/{{$parameter[\"noteId\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Delete a note from the selected lead"
        },
        {
          "name": "Get Lead",
          "value": "getLead",
          "action": "Get lead",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get a specific lead by ID"
        },
        {
          "name": "Get Lead Custom Variables",
          "value": "getLeadCustomVariables",
          "action": "Get lead custom variables",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/leads/{{$parameter[\"leadUrn\"]}}/custom-variables",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get custom variables for a specific lead"
        },
        {
          "name": "List Lead Notes",
          "value": "listLeadNotes",
          "action": "List lead notes",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/notes",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all notes for the selected lead"
        },
        {
          "name": "List Recent Leads",
          "value": "listRecentLeads",
          "action": "List recent leads",
          "routing": {
            "request": {
              "url": "/analytics/recent-leads",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List recent leads for the selected workspace"
        },
        {
          "name": "Remove Label From Lead",
          "value": "removeLabelFromLead",
          "action": "Remove label from lead",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/labels/{{$parameter[\"labelId\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Remove a label from the selected lead"
        },
        {
          "name": "Search Leads",
          "value": "searchLeads",
          "action": "Search leads",
          "routing": {
            "request": {
              "qs": {
                "count": "={{$parameter[\"count\"]}}",
                "start": "={{$parameter[\"start\"]}}"
              },
              "url": "/leads:search",
              "body": {
                "labels": "={{$parameter[\"additionalFilters\"]?.filterLabels ? $parameter[\"additionalFilters\"].filterLabels.split(\",\").map(l => l.trim()) : []}}",
                "skills": "={{$parameter[\"additionalFilters\"]?.skills ? $parameter[\"additionalFilters\"].skills.split(\",\").map(s => s.trim()) : []}}",
                "lead_of": "={{$parameter[\"additionalFilters\"]?.leadOf ? $parameter[\"additionalFilters\"].leadOf.split(\",\").map(l => l.trim()) : []}}",
                "origins": "={{$parameter[\"additionalFilters\"]?.origins ? $parameter[\"additionalFilters\"].origins.split(\",\").map(o => o.trim()) : []}}",
                "keywords": "={{$parameter[\"keywords\"] || \"\"}}",
                "optimize": "={{$parameter[\"optimize\"]}}",
                "education": "={{$parameter[\"additionalFilters\"]?.education ? $parameter[\"additionalFilters\"].education.split(\",\").map(e => e.trim()) : []}}",
                "interests": "={{$parameter[\"additionalFilters\"]?.interests ? $parameter[\"additionalFilters\"].interests.split(\",\").map(i => i.trim()) : []}}",
                "languages": "={{$parameter[\"additionalFilters\"]?.languages ? $parameter[\"additionalFilters\"].languages.split(\",\").map(l => l.trim()) : []}}",
                "locations": "={{$parameter[\"additionalFilters\"]?.locations ? $parameter[\"additionalFilters\"].locations.split(\",\").map(l => l.trim()) : []}}",
                "past_companies": "={{$parameter[\"additionalFilters\"]?.pastCompanies ? $parameter[\"additionalFilters\"].pastCompanies.split(\",\").map(c => c.trim()) : []}}",
                "current_companies": "={{$parameter[\"additionalFilters\"]?.currentCompanies ? $parameter[\"additionalFilters\"].currentCompanies.split(\",\").map(c => c.trim()) : []}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Search through all leads in the workspace"
        },
        {
          "name": "Update Note",
          "value": "updateNote",
          "action": "Update note",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/notes/{{$parameter[\"noteId\"]}}",
              "body": {
                "text": "={{$parameter[\"noteText\"]}}"
              },
              "method": "PATCH",
              "headers": {}
            }
          },
          "description": "Update a note for the selected lead"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listTemplates",
      "options": [
        {
          "name": "List Templates",
          "value": "listTemplates",
          "action": "List templates",
          "routing": {
            "request": {
              "url": "/templates",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all templates in the selected workspace"
        },
        {
          "name": "Get Template",
          "value": "getTemplate",
          "action": "Get template",
          "routing": {
            "request": {
              "url": "=/templates/{{$parameter[\"templateId\"]}}",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get a specific template by ID"
        },
        {
          "name": "Create Template",
          "value": "createTemplate",
          "action": "Create template",
          "routing": {
            "request": {
              "url": "/templates",
              "body": {
                "ai": "={{$parameter[\"templateAi\"]}}",
                "name": "={{$parameter[\"templateName\"]}}",
                "type": "={{$parameter[\"templateType\"]}}",
                "message": "={{$parameter[\"templateMessage\"]}}",
                "subject": "={{$parameter[\"templateSubject\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Create a new template in the selected workspace"
        },
        {
          "name": "Remove Template",
          "value": "removeTemplate",
          "action": "Remove template",
          "routing": {
            "request": {
              "url": "=/templates/{{$parameter[\"templateId\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Remove a template from the workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Account Limits",
      "value": "getAccountLimits",
      "action": "Get account limits",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/limits",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get the interaction limits for a specific account"
    },
    {
      "name": "List Accounts",
      "value": "listAccounts",
      "action": "List accounts",
      "routing": {
        "request": {
          "url": "/accounts",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all accounts in the workspace"
    },
    {
      "name": "Set Account Limits",
      "value": "setAccountLimits",
      "action": "Set account limits",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/limits",
          "body": {
            "inmail": "={{$parameter[\"inmailLimit\"]}}",
            "connect": "={{$parameter[\"connectLimit\"]}}",
            "message_request": "={{$parameter[\"messageRequestLimit\"]}}"
          },
          "method": "PATCH",
          "headers": {}
        }
      },
      "description": "Update the weekly interaction limits for an account"
    },
    {
      "name": "Add Companies to Blacklist",
      "value": "addCompaniesToBlacklist",
      "action": "Add companies to blacklist",
      "routing": {
        "request": {
          "url": "/blacklist-companies",
          "body": {
            "companies": "={{$parameter[\"companyUrls\"].split(\",\").map(url => url.trim())}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add multiple LinkedIn companies to the blacklist"
    },
    {
      "name": "Add Profile to Blacklist",
      "value": "addProfileToBlacklist",
      "action": "Add profile to blacklist",
      "routing": {
        "request": {
          "url": "=/blacklist/{{$parameter[\"profileUrn\"]}}",
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add profile to the blacklist using the profile URN"
    },
    {
      "name": "List Blacklisted Companies",
      "value": "listBlacklistedCompanies",
      "action": "List blacklisted companies",
      "routing": {
        "request": {
          "url": "/blacklist-companies",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all blacklisted LinkedIn companies in the workspace"
    },
    {
      "name": "List Blacklisted Profiles",
      "value": "listBlacklist",
      "action": "List blacklisted profiles",
      "routing": {
        "request": {
          "url": "/blacklist",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all blacklisted profiles in the workspace"
    },
    {
      "name": "Remove Company From Blacklist",
      "value": "removeCompanyFromBlacklist",
      "action": "Remove company from blacklist",
      "routing": {
        "request": {
          "url": "=/blacklist-companies/{{$parameter[\"companyUrn\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Remove a LinkedIn company from the blacklist using the company URN"
    },
    {
      "name": "Remove Profile From Blacklist",
      "value": "removeProfileFromBlacklist",
      "action": "Remove profile from blacklist",
      "routing": {
        "request": {
          "url": "=/blacklist/{{$parameter[\"profileUrn\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Remove profile from the blacklist using the profile URN"
    },
    {
      "name": "Get Conversation",
      "value": "getConversation",
      "action": "Get conversation",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get a specific conversation by URN"
    },
    {
      "name": "Get Lead Conversation",
      "value": "getLeadConversation",
      "action": "Get lead conversation",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/leads/{{$parameter[\"leadId\"]}}/conversation",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get a specific lead conversation URN"
    },
    {
      "name": "List Conversations",
      "value": "listConversations",
      "action": "List conversations",
      "routing": {
        "request": {
          "url": "/conversations",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all conversations for the selected workspace"
    },
    {
      "name": "Mark Conversation As Read",
      "value": "markConversationAsRead",
      "action": "Mark conversation as read",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}/mark-as-read",
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Mark an existing conversation as read"
    },
    {
      "name": "Send Message To Conversation",
      "value": "sendMessageToConversation",
      "action": "Send message to conversation",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}",
          "body": {
            "message": "={{$parameter[\"conversationMessage\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Send a message to an existing conversation"
    },
    {
      "name": "Start Conversation",
      "value": "startConversation",
      "action": "Start conversation",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations",
          "body": {
            "message": "={{$parameter[\"conversationMessage\"]}}",
            "recipients": [
              "={{$parameter[\"leadId\"]}}"
            ]
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Start a new conversation with the lead"
    },
    {
      "name": "Add Profile to Campaign",
      "value": "addProfileToCampaign",
      "action": "Add profile to campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience",
          "body": {
            "profile_url": "={{$parameter[\"profileUrl\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add profile to the selected campaign"
    },
    {
      "name": "Add Profile to Campaign with Custom Variables",
      "value": "addProfileToCampaignWithCustomVariables",
      "action": "Add profile to campaign with custom variables",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience/multiple",
          "body": {
            "type": "profile_url",
            "profiles": [
              {
                "profile_url": "={{$parameter[\"profileUrl\"]}}",
                "custom_variables": "={{JSON.parse($parameter[\"customVariables\"])}}"
              }
            ]
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add profile to the selected campaign with custom variables"
    },
    {
      "name": "Create Campaign",
      "value": "createCampaign",
      "action": "Create a campaign",
      "routing": {
        "request": {
          "url": "/campaigns",
          "body": {
            "name": "={{$parameter[\"campaignName\"]}}",
            "type": "={{$parameter[\"campaignType\"]}}",
            "account_ids": "={{$parameter[\"accountIds\"].split(\",\").map(id => id.trim())}}",
            "audience_size": "={{$parameter[\"audienceSize\"]}}",
            "outreach_type": "={{$parameter[\"outreachType\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Create a new Aimfox campaign"
    },
    {
      "name": "Get Campaign",
      "value": "getCampaign",
      "action": "Get a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get a specific campaign by ID"
    },
    {
      "name": "List Campaigns",
      "value": "listCampaigns",
      "action": "List campaigns",
      "routing": {
        "request": {
          "url": "/campaigns",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all campaigns in the workspace"
    },
    {
      "name": "Pause",
      "value": "pauseCampaign",
      "action": "Pause a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
          "body": {
            "state": "PAUSED"
          },
          "method": "PATCH",
          "headers": {}
        }
      },
      "description": "Pause a running campaign"
    },
    {
      "name": "Remove Profile From Campaign",
      "value": "removeProfileFromCampaign",
      "action": "Remove profile from campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience/{{$parameter[\"profileUrnOrIdentifier\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Remove a profile from the selected campaign using URN or public identifier"
    },
    {
      "name": "Resume",
      "value": "resumeCampaign",
      "action": "Resume a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
          "body": {
            "state": "ACTIVE"
          },
          "method": "PATCH",
          "headers": {}
        }
      },
      "description": "Resume a paused campaign"
    },
    {
      "name": "Add Custom Variables to Target",
      "value": "addCustomVariablesToTarget",
      "action": "Add custom variables to target",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables",
          "body": {
            "custom_variables": "={{[{ target_urn: $parameter[\"targetUrn\"], variables: JSON.parse($parameter[\"variables\"]) }]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add custom variables to a specific target in a campaign"
    },
    {
      "name": "Get Campaign Custom Variables",
      "value": "getCampaignCustomVariables",
      "action": "Get campaign custom variables",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get all custom variables for a specific campaign"
    },
    {
      "name": "Get Target Custom Variables",
      "value": "getTargetCustomVariables",
      "action": "Get target custom variables",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables/{{$parameter[\"targetUrn\"]}}",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get custom variables for a specific target in a campaign"
    },
    {
      "name": "Add Label",
      "value": "addLabel",
      "action": "Add label",
      "routing": {
        "request": {
          "url": "/labels",
          "body": {
            "name": "={{$parameter[\"labelName\"]}}",
            "color": "={{$parameter[\"labelColor\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add a new label to the selected workspace"
    },
    {
      "name": "Delete Label",
      "value": "deleteLabel",
      "action": "Delete label",
      "routing": {
        "request": {
          "url": "=/labels/{{$parameter[\"workspaceLabelId\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Delete a label from the workspace"
    },
    {
      "name": "Edit Label",
      "value": "editLabel",
      "action": "Edit label",
      "routing": {
        "request": {
          "url": "=/labels/{{$parameter[\"workspaceLabelId\"]}}",
          "body": {
            "name": "={{$parameter[\"labelName\"]}}",
            "color": "={{$parameter[\"labelColor\"]}}"
          },
          "method": "PATCH",
          "headers": {}
        }
      },
      "description": "Edit an existing label in the workspace"
    },
    {
      "name": "List Labels",
      "value": "listLabels",
      "action": "List labels",
      "routing": {
        "request": {
          "url": "/labels",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all labels for the selected workspace"
    },
    {
      "name": "Add Label To Lead",
      "value": "addLabelToLead",
      "action": "Add label to lead",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/labels/{{$parameter[\"labelId\"]}}",
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add a new label to the selected lead"
    },
    {
      "name": "Add Note To Lead",
      "value": "addNoteToLead",
      "action": "Add note to lead",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/notes",
          "body": {
            "text": "={{$parameter[\"noteText\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add a new note to the selected lead"
    },
    {
      "name": "Delete Note From Lead",
      "value": "deleteNoteFromLead",
      "action": "Delete note from lead",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/notes/{{$parameter[\"noteId\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Delete a note from the selected lead"
    },
    {
      "name": "Get Lead",
      "value": "getLead",
      "action": "Get lead",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get a specific lead by ID"
    },
    {
      "name": "Get Lead Custom Variables",
      "value": "getLeadCustomVariables",
      "action": "Get lead custom variables",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/leads/{{$parameter[\"leadUrn\"]}}/custom-variables",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get custom variables for a specific lead"
    },
    {
      "name": "List Lead Notes",
      "value": "listLeadNotes",
      "action": "List lead notes",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/notes",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all notes for the selected lead"
    },
    {
      "name": "List Recent Leads",
      "value": "listRecentLeads",
      "action": "List recent leads",
      "routing": {
        "request": {
          "url": "/analytics/recent-leads",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List recent leads for the selected workspace"
    },
    {
      "name": "Remove Label From Lead",
      "value": "removeLabelFromLead",
      "action": "Remove label from lead",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/labels/{{$parameter[\"labelId\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Remove a label from the selected lead"
    },
    {
      "name": "Search Leads",
      "value": "searchLeads",
      "action": "Search leads",
      "routing": {
        "request": {
          "qs": {
            "count": "={{$parameter[\"count\"]}}",
            "start": "={{$parameter[\"start\"]}}"
          },
          "url": "/leads:search",
          "body": {
            "labels": "={{$parameter[\"additionalFilters\"]?.filterLabels ? $parameter[\"additionalFilters\"].filterLabels.split(\",\").map(l => l.trim()) : []}}",
            "skills": "={{$parameter[\"additionalFilters\"]?.skills ? $parameter[\"additionalFilters\"].skills.split(\",\").map(s => s.trim()) : []}}",
            "lead_of": "={{$parameter[\"additionalFilters\"]?.leadOf ? $parameter[\"additionalFilters\"].leadOf.split(\",\").map(l => l.trim()) : []}}",
            "origins": "={{$parameter[\"additionalFilters\"]?.origins ? $parameter[\"additionalFilters\"].origins.split(\",\").map(o => o.trim()) : []}}",
            "keywords": "={{$parameter[\"keywords\"] || \"\"}}",
            "optimize": "={{$parameter[\"optimize\"]}}",
            "education": "={{$parameter[\"additionalFilters\"]?.education ? $parameter[\"additionalFilters\"].education.split(\",\").map(e => e.trim()) : []}}",
            "interests": "={{$parameter[\"additionalFilters\"]?.interests ? $parameter[\"additionalFilters\"].interests.split(\",\").map(i => i.trim()) : []}}",
            "languages": "={{$parameter[\"additionalFilters\"]?.languages ? $parameter[\"additionalFilters\"].languages.split(\",\").map(l => l.trim()) : []}}",
            "locations": "={{$parameter[\"additionalFilters\"]?.locations ? $parameter[\"additionalFilters\"].locations.split(\",\").map(l => l.trim()) : []}}",
            "past_companies": "={{$parameter[\"additionalFilters\"]?.pastCompanies ? $parameter[\"additionalFilters\"].pastCompanies.split(\",\").map(c => c.trim()) : []}}",
            "current_companies": "={{$parameter[\"additionalFilters\"]?.currentCompanies ? $parameter[\"additionalFilters\"].currentCompanies.split(\",\").map(c => c.trim()) : []}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Search through all leads in the workspace"
    },
    {
      "name": "Update Note",
      "value": "updateNote",
      "action": "Update note",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/notes/{{$parameter[\"noteId\"]}}",
          "body": {
            "text": "={{$parameter[\"noteText\"]}}"
          },
          "method": "PATCH",
          "headers": {}
        }
      },
      "description": "Update a note for the selected lead"
    },
    {
      "name": "List Templates",
      "value": "listTemplates",
      "action": "List templates",
      "routing": {
        "request": {
          "url": "/templates",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all templates in the selected workspace"
    },
    {
      "name": "Get Template",
      "value": "getTemplate",
      "action": "Get template",
      "routing": {
        "request": {
          "url": "=/templates/{{$parameter[\"templateId\"]}}",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get a specific template by ID"
    },
    {
      "name": "Create Template",
      "value": "createTemplate",
      "action": "Create template",
      "routing": {
        "request": {
          "url": "/templates",
          "body": {
            "ai": "={{$parameter[\"templateAi\"]}}",
            "name": "={{$parameter[\"templateName\"]}}",
            "type": "={{$parameter[\"templateType\"]}}",
            "message": "={{$parameter[\"templateMessage\"]}}",
            "subject": "={{$parameter[\"templateSubject\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Create a new template in the selected workspace"
    },
    {
      "name": "Remove Template",
      "value": "removeTemplate",
      "action": "Remove template",
      "routing": {
        "request": {
          "url": "=/templates/{{$parameter[\"templateId\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Remove a template from the workspace"
    }
  ]

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

  # n8n-nodes-aimfox

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

  Aimfox is a LinkedIn automation platform that helps businesses automate their LinkedIn outreach, lead generation, and social selling activities.

  [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 operations:

  ### Account
  - **Get Account Limits**: Get the interaction limits for a specific account
  - **List Accounts**: List all accounts in the workspace
  - **Set Account Limits**: Update the weekly interaction limits for an account

  ### Blacklist
  - **Add Companies to Blacklist**: Add multiple LinkedIn companies to the blacklist
  - **Add Profile to Blacklist**: Add profile to the blacklist using the profile URN
  - **List Blacklisted Companies**: List all blacklisted LinkedIn companies in the workspace
  - **List Blacklisted Profiles**: List all blacklisted profiles in the workspace
  - **Remove Company From Blacklist**: Remove a LinkedIn company from the blacklist using the company URN
  - **Remove Profile From Blacklist**: Remove profile from the blacklist using the profile URN

  ### Campaign
  - **Add Profile to Campaign**: Add profile to the selected campaign
  - **Add Profile to Campaign with Custom Variables**: Add profile to the selected campaign with custom variables
  - **Create Campaign**: Create a new Aimfox campaign
  - **Get Campaign**: Get a specific campaign by ID
  - **List Campaigns**: List all campaigns in the workspace
  - **Pause**: Pause a running campaign
  - **Remove Profile From Campaign**: Remove a profile from the selected campaign using URN or public identifier
  - **Resume**: Resume a paused campaign

  ### Conversation
  - **Get Conversation**: Get a specific conversation by URN
  - **Get Lead Conversation**: Get a specific lead conversation URN
  - **List Conversations**: List all conversations for the selected workspace
  - **Mark Conversation As Read**: Mark an existing conversation as read
  - **Send Message To Conversation**: Send a message to an existing conversation
  - **Start Conversation**: Start a new conversation with the lead

  ### Custom Variable
  - **Add Custom Variables to Target**: Add custom variables to a specific target in a campaign
  - **Get Campaign Custom Variables**: Get all custom variables for a specific campaign
  - **Get Target Custom Variables**: Get custom variables for a specific target in a campaign

  ### Label
  - **Add Label**: Add a new label to the selected workspace
  - **Delete Label**: Delete a label from the workspace
  - **Edit Label**: Edit an existing label in the workspace
  - **List Labels**: List all labels for the selected workspace

  ### Lead
  - **Add Label To Lead**: Add a new label to the selected lead
  - **Add Note To Lead**: Add a new note to the selected lead
  - **Delete Note From Lead**: Delete a note from the selected lead
  - **Get Lead**: Get a specific lead by ID
  - **Get Lead Custom Variables**: Get custom variables for a specific lead
  - **List Lead Notes**: List all notes for the selected lead
  - **List Recent Leads**: List recent leads for the selected workspace
  - **Remove Label From Lead**: Remove a label from the selected lead
  - **Search Leads**: Search for leads in the workspace with advanced filters
  - **Update Note**: Update a note for the selected lead

  ### Template
  - **Create Template**: Create a new template in the selected workspace
  - **Get Template**: Get a specific template by ID
  - **List Templates**: List all templates in the selected workspace
  - **Remove Template**: Remove a template from the workspace

  ## Triggers

  This node supports the following triggers:
  - **Account Logged In**: This event triggers when a LinkedIn profile successfully logs into the system.
  - **Account Logged Out**: This event triggers when a LinkedIn profile is logged out of the system.
  - **Connect Accepted**: This event triggers when a LinkedIn connection request is accepted, establishing a new connection between profiles.
  - **Connect Sent**: This event triggers when a LinkedIn connection request is successfully sent.
  - **Inmail Reply**: This event triggers when a user replies to a LinkedIn Inmail message, initiating a conversation.
  - **Inmail**: This event triggers when a LinkedIn Inmail message is successfully sent.
  - **Message Request**: This event triggers when a message request is sent.
  - **Message Sent**: This event triggers when a message is successfully sent to a LinkedIn profile.
  - **New Connection**: This event triggers when a new connection is acquired through Aimfox, indicating the successful addition of a LinkedIn connection.
  - **New Reply**: This event triggers when a user replies to a LinkedIn message, initiating a conversation.
  - **Profile Viewed**: This event triggers when a LinkedIn profile is viewed.

  ## Credentials

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

  ### Prerequisites
  1. Sign up for an Aimfox account at [https://aimfox.com](https://aimfox.com)
  2. Generate an API key from your Aimfox dashboard

  ### Setup
  1. In n8n, go to **Settings** > **Credentials**
  2. Click **Create New Credential**
  3. Search for "Aimfox API" and select it
  4. Enter your Aimfox API key
  5. Click **Save**

  The API key will be used to authenticate all requests to the Aimfox API with Bearer token authentication.

  ## Compatibility

  - Minimum n8n version: 0.198.0
  - Tested with n8n versions: 0.198.0+

  ## Usage

  ### Basic Workflow Example
  1. Start with a **Manual Trigger** or **Schedule Trigger**
  2. Add the **Aimfox** node
  3. Select your workspace first (required for most operations)
  4. Choose your desired operation (Account, Campaign, Profile, or Workspace)
  5. Configure the specific operation parameters

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Aimfox API documentation](https://docs.aimfox.com)


node_type: n8n-nodes-infranodus.infranodus
package_name: n8n-nodes-infranodus
display_name: InfraNodus Graph RAG
description: Build knowledge graphs, get AI advice, and extract content gaps with the InfraNodus API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: aerodynamika
author_github_url: https://github.com/infranodus/
npm_package_name: n8n-nodes-infranodus
npm_version: 0.1.8
community_fetched_at: 2026-02-19T14:41:52.680Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "aiAdviceForGraph",
      "options": [
        {
          "name": "AI Advice From Graph",
          "value": "aiAdviceForGraph"
        },
        {
          "name": "Knowledge Graph",
          "value": "knowledgeGraphs"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getGraph",
      "options": [
        {
          "name": "Create / Update a Graph From Text",
          "value": "createGraph",
          "action": "Create / update a graph from text",
          "routing": {
            "request": {
              "url": "/graphAndStatements",
              "method": "POST"
            }
          },
          "description": "Create a new knowledge graph or update an existing one from text and return it & stats"
        },
        {
          "name": "Get an Existing Graph",
          "value": "getGraph",
          "action": "Get an existing infranodus graph",
          "routing": {
            "request": {
              "url": "/graphAndStatements",
              "method": "POST"
            }
          },
          "description": "Get an existing graph of a user from InfraNodus"
        },
        {
          "name": "Generate Content Gaps and Topics",
          "value": "generateGraphStats",
          "action": "Generate content gaps and topics",
          "routing": {
            "request": {
              "url": "/graphAndStatements",
              "method": "POST"
            }
          },
          "description": "Generate content gaps and topics from a text or existing graph"
        },
        {
          "name": "Generate RAG Augmentation Prompt",
          "value": "generateGraphSummary",
          "action": "Generate RAG augmentation prompt",
          "routing": {
            "request": {
              "url": "/graphAndStatements",
              "method": "POST"
            }
          },
          "description": "Generate RAG augmentation prompt from a text or existing graph"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "knowledgeGraphs"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "promptGraph",
      "options": [
        {
          "name": "Query an Expert (Existing Graph)",
          "value": "promptGraph",
          "action": "Get a response from knowledge base",
          "routing": {
            "request": {
              "url": "/graphAndAdvice",
              "method": "POST"
            }
          },
          "description": "Get an AI advice from an existing knowledge base or ontology"
        },
        {
          "name": "Retrieve Statements with GraphRAG",
          "value": "retrieveStatementsFromGraph",
          "action": "Retrieve statements from a graph",
          "routing": {
            "request": {
              "url": "/graphAndAdvice",
              "method": "POST"
            }
          },
          "description": "Retrieve relevant statements from an existing graph using GraphRAG"
        },
        {
          "name": "Generate Research Questions",
          "value": "questionGraph",
          "action": "Generate research questions",
          "routing": {
            "request": {
              "url": "/graphAndAdvice",
              "method": "POST"
            }
          },
          "description": "Generate research questions based on the content gaps in a graph"
        },
        {
          "name": "Generate a Topical Summary",
          "value": "summarizeGraph",
          "action": "Generate topical summary",
          "routing": {
            "request": {
              "url": "/graphAndAdvice",
              "method": "POST"
            }
          },
          "description": "Generate a topical summary of a knowledge graph"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiAdviceForGraph"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create / Update a Graph From Text",
      "value": "createGraph",
      "action": "Create / update a graph from text",
      "routing": {
        "request": {
          "url": "/graphAndStatements",
          "method": "POST"
        }
      },
      "description": "Create a new knowledge graph or update an existing one from text and return it & stats"
    },
    {
      "name": "Get an Existing Graph",
      "value": "getGraph",
      "action": "Get an existing infranodus graph",
      "routing": {
        "request": {
          "url": "/graphAndStatements",
          "method": "POST"
        }
      },
      "description": "Get an existing graph of a user from InfraNodus"
    },
    {
      "name": "Generate Content Gaps and Topics",
      "value": "generateGraphStats",
      "action": "Generate content gaps and topics",
      "routing": {
        "request": {
          "url": "/graphAndStatements",
          "method": "POST"
        }
      },
      "description": "Generate content gaps and topics from a text or existing graph"
    },
    {
      "name": "Generate RAG Augmentation Prompt",
      "value": "generateGraphSummary",
      "action": "Generate RAG augmentation prompt",
      "routing": {
        "request": {
          "url": "/graphAndStatements",
          "method": "POST"
        }
      },
      "description": "Generate RAG augmentation prompt from a text or existing graph"
    },
    {
      "name": "Query an Expert (Existing Graph)",
      "value": "promptGraph",
      "action": "Get a response from knowledge base",
      "routing": {
        "request": {
          "url": "/graphAndAdvice",
          "method": "POST"
        }
      },
      "description": "Get an AI advice from an existing knowledge base or ontology"
    },
    {
      "name": "Retrieve Statements with GraphRAG",
      "value": "retrieveStatementsFromGraph",
      "action": "Retrieve statements from a graph",
      "routing": {
        "request": {
          "url": "/graphAndAdvice",
          "method": "POST"
        }
      },
      "description": "Retrieve relevant statements from an existing graph using GraphRAG"
    },
    {
      "name": "Generate Research Questions",
      "value": "questionGraph",
      "action": "Generate research questions",
      "routing": {
        "request": {
          "url": "/graphAndAdvice",
          "method": "POST"
        }
      },
      "description": "Generate research questions based on the content gaps in a graph"
    },
    {
      "name": "Generate a Topical Summary",
      "value": "summarizeGraph",
      "action": "Generate topical summary",
      "routing": {
        "request": {
          "url": "/graphAndAdvice",
          "method": "POST"
        }
      },
      "description": "Generate a topical summary of a knowledge graph"
    }
  ]

npm_readme:
  # n8n-nodes-infranodus

  This is an n8n community node from [InfraNodus](https://infranodus.com). It lets you use [InfraNodus GraphRAG API](https://infranodus.com/docs/graph-rag-knowledge-graph) in your n8n workflows.

  You can create and use knowledge graphs as experts in your LLM workflows (no OpenAI keys required). InfraNodus can provide information about the main topics and content gaps in any text, so you can use it in your marketing and research workflows.

  ![InfraNodus graph](https://infranodus.com/images/front/infranodus-overview.jpg)

  Video demo: [https://www.youtube.com/watch?v=kS0QTUvcH6E](https://www.youtube.com/watch?v=kS0QTUvcH6E)

  You can also use the knowledge graphs to augment and improve your RAG flows with graph-based AI advice about the structure of the knowledge and better quality retrieval without the need to set up complex vector store infrastructures.

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

  ### For automatic installation

  1. Open the nodes panel at the top right of your n8n editor (+ button)
  2. Search for "InfraNodus"
  3. Click on the "Install" button

  ### For manual installation:

  You can install this node manually if you're running a local version of n8n.

  0. Install the local version of n8n

  If you don't have n8n installed yet, you can install it using

  - [n8n Docker installer](https://docs.n8n.io/hosting/installation/npm/) (in this case you'll need Docker installed)

  ```bash
  docker volume create n8n_data

  docker run -it --rm \
   --name n8n \
   -p 5678:5678 \
   -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
   -e N8N_RUNNERS_ENABLED=true \
   -v n8n_data:/home/node/.n8n \
   docker.n8n.io/n8nio/n8n
  ```

  - through the command line in your terminal using the [n8n NPX installer](https://docs.n8n.io/hosting/installation/npm/) — for temporarily launching n8n without installing it (in this case, you'll need node version 20 or 22 installed).

  ```bash
  npx n8n
  ```

  - through `npm` [n8n node package](https://docs.n8n.io/hosting/installation/npm/) manager (in this case you install it globally and can launch it from your termainal)

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

  In all cases, your configuration settings will be saved even if you quit at this folder, where you can also install the InfraNodus node:

  ```bash
  cd ~/.n8n
  ```

  1. Launch the local version of n8n

  - If it's installed globally:

  ```bash
  n8n start
  ```

  - If it's installed through Docker:

  Start the Docker n8n instsance:

  ```bash
  docker run -it --rm \
   --name n8n \
   -p 5678:5678 \
   -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
   -e N8N_RUNNERS_ENABLED=true \
   -v n8n_data:/home/node/.n8n \
   docker.n8n.io/n8nio/n8n
  ```

  Then access the Docker shell (terminal entry into your Docker n8n instance):

  ```bash
  docker exec -it n8n sh
  ```

  1. Install the node

  Change to the nodes folder:

  ```bash
  cd ~/.n8n/nodes
  ```

  If it doesn't exist, create it first:

  ```bash
  mkdir -p ~/.n8n/nodes
  ```

  2. Install the node into this folder:

  ```bash
  npm install n8n-nodes-infranodus
  ```

  3. Then restart n8n

  ## Local Node Development

  If you're using the node on your local machine, you can link your local InfraNodus n8n node to your local n8n instance.

  Then you can modify the resources and requests using the [InfraNodus API](https://infranodus.com/api). You can also add new custom tools.

  If you have InfraNodus running locally, you can replace the `baseUrl` with your local InfraNodus instance address (default is `https://infranodus.com/api/v1`).

  In order to start local development, you need to link your local InfraNodus n8n node to your local n8n instance, so every time you change the code in the InfraNodus n8n node, it updates in n8n as well.

  0. Create a copy of this repository on your local machine

  1. Go to this node's folder on your local machine and install dependencies

  ```bash
  npm install
  ```

  2. Make the necessary changes and build the node

  ```bash
  npm build
  ```

  3. Make sure you're in the InfraNodus node's folder and run:

  ```bash
  npm link
  ```

  3. Then go to the locally installed `n8n/nodes` folder, usually at

  ```bash
  cd ~/.n8n/nodes
  ```

  4. Link the local InfraNodus n8n node package to the n8n instance:

  ```bash
  npm link n8n-nodes-infranodus
  ```

  This will make your local n8n instance refer not to the generally available npm package but to the local infranodus n8n node instance you linked to.

  5. Then run the n8n instance locally using the

  ```bash
  n8n start
  ```

  ### To Update the Local Node in n8n

  To have the updates reflected in n8n, you need to:

  1. Run the build command in the node's folder

  ```bash
  npm run build
  ```

  2. Restart n8n:

  ```bash
  n8n start
  ```

  ## Operations

  The node supports the following operations:

  - Create a knowledge graph
  - Get a knowledge graph
  - Generate a question based on the content gaps in a knowledge graph
  - Prompt a knowledge graph expert

  ## Credentials

  The node requires an API token from InfraNodus. You can get it from [your InfraNodus account](https://infranodus.com/api-access).

  We use Bearer authentication in case you want to build your own node using InfraNodus.

  ## Compatibility

  The node is compatible with n8n v0.225.0 and above.

  ## Usage

  To learn more about using InfraNodus with n8n, see our tutorials and videos on the Nodus Labs support portal: [https://support.noduslabs.com/hc/en-us/search?utf8=%E2%9C%93&query=n8n](https://support.noduslabs.com/hc/en-us/search?utf8=%E2%9C%93&query=n8n)

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Nodus Labs support portal](https://support.noduslabs.com/hc/en-us/search?utf8=%E2%9C%93&query=n8n)
  - [InfraNodus API endpoints](https://support.noduslabs.com/hc/en-us/articles/13605983537692-InfraNodus-API-Access-Points)
  - [Video demo of how the InfraNodus n8n node works](http://youtube.com/watch?v=vkvRWto3TnQ)

  ## Version history

  v 0.1.8 (2025-12-09)

  - better naming convention for create / update graph

  v 0.1.7 (2025-12-03)

  - bug fixes
  - improve installation instructions

  v 0.1.5 (2025-12-03)

  - Add new GraphRAG / vector search retrieval endpoint
  - Add support for latest AI models
  - Add local development instructions to the README file

  v 0.1.4 (2025-10-25)

  - Fix bugs with duplicate tool definitions

  v 0.1.3 (2025-09-17)

  - Fix bugs and incorrect tool settings

  v 0.1.0 (2025-09-11)

  - Initial release

ai_documentation_summary:
  {"purpose":"Provides access to the InfraNodus GraphRAG API from n8n workflows so you can create and query knowledge graphs, get AI-driven analysis of topic structure and content gaps, and augment RAG flows with graph-based advice.","capabilities":["Create a knowledge graph from provided text/data","Retrieve/get an existing knowledge graph","Generate questions based on content gaps in a knowledge graph","Prompt a knowledge-graph expert (graph-based AI advice)","Analyze main topics and content gaps in text","Augment RAG workflows with graph-based retrieval/advice (reduces need for separate vector store)"],"authentication":"API key required (InfraNodus API token) using Bearer authentication","commonUseCases":["Build knowledge graphs from documents or datasets to surface main topics and relationships","Identify content gaps and generate questions for research or content planning","Augment RAG (retrieval-augmented generation) flows with graph-based context and improved retrieval","Use graph-based AI advice to improve structure/quality of knowledge used by LLM workflows","Marketing and research workflows that need topic discovery and gap analysis without setting up vector DBs"],"limitations":["Requires an InfraNodus account and API token to use","Node is compatible with n8n v0.225.0 and above (older n8n versions may not be supported)","No mention of built-in support for other authentication methods (only Bearer/API token documented)"],"relatedNodes":[]}


node_type: @reportei/n8n-nodes-reportei.reportei
package_name: @reportei/n8n-nodes-reportei
display_name: Reportei
description: Perform actions with Reportei API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: pgabriel20
author_github_url: https://github.com/reportei/reportei-n8n-node.git
npm_package_name: @reportei/n8n-nodes-reportei
npm_version: 0.1.5
community_fetched_at: 2026-02-19T14:41:52.681Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "report",
      "options": [
        {
          "name": "Report",
          "value": "report"
        },
        {
          "name": "Dashboard",
          "value": "dashboard"
        },
        {
          "name": "Timeline",
          "value": "timeline"
        }
      ],
      "required": true,
      "description": "Choose which resource you want to operate on",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create a Report",
          "value": "create",
          "action": "Create a report",
          "description": "Creates a new report in Reportei"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a dashboard",
          "description": "Create a new dashboard in Reportei"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Add event to timeline",
          "description": "Add an event (milestone) to the timeline in Reportei"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "timeline"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create a Report",
      "value": "create",
      "action": "Create a report",
      "description": "Creates a new report in Reportei"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a dashboard",
      "description": "Create a new dashboard in Reportei"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Add event to timeline",
      "description": "Add an event (milestone) to the timeline in Reportei"
    }
  ]

npm_readme:
  # n8n-nodes-reportei

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

  **Reportei** is a reporting and dashboard platform that helps you generate marketing reports, track timelines, and automate analytics. With this node, you can create reports, dashboards, and timeline events, as well as trigger workflows on various events happening in your Reportei account.

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

  Once installed, you can select **Reportei** and **Reportei Trigger** in your n8n workflows to interact with the Reportei API.

  ## Operations

  The **Reportei** node offers the following _actions_ (operations):

  - **Create Report**: Create a marketing report, specifying the project, integrations, date ranges, titles, and optionally select a template.  
  - **Create Dashboard**: Create a custom dashboard linked to a project, with selected integrations, date ranges, and optionally select a template.  
  - **Add Event to Timeline**: Insert a milestone or note into a project’s report timeline.

  The **Reportei Trigger** node supports these _events_ (webhooks):

  - **Report Created**  
  - **Report Viewed**  
  - **Dashboard Created**  
  - **Automation Executed**  
  - **Control Goal Met**  
  - **Control Goal Not Met**  
  - **Timeline Milestone Added**

  ## Credentials

  To use this node, you need a **Reportei API** token (Bearer token).  
  1. **Get your token** from the Reportei account page.  
  2. In n8n, create a new credential called **Reportei API** and paste your token.  
  3. Use this credential in the **Reportei** or **Reportei Trigger** node.

  For webhooks, the node will automatically register or unregister a webhook subscription in your Reportei account if you use the **Reportei Trigger** node. You only need to provide valid credentials and set the correct event type.

  ## Compatibility

  - **Minimum n8n version**: 1.85.0 (or whichever you have tested).  
  - The node is developed and tested against **Reportei**’s [API v1](https://app.reportei.com/docs/api).  
  - No known incompatibilities, but you must enable **community nodes** in n8n’s settings for installation.

  ## Usage

  1. In your n8n instance, install the node via one of the methods described in the community nodes [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/).  
  2. Create or select a credential for **Reportei API**.  
  3. **Actions** node (Reportei):
     - Drag the **Reportei** node into your workflow.  
     - Select your resource (Report, Dashboard, or Timeline) and the operation (create).  
     - Fill the required fields, such as “Project ID”, “Integrations”, “Title”, etc.  
     - Execute the workflow to see the results.
  4. **Trigger** node (Reportei Trigger):
     - Drag the **Reportei Trigger** node into your workflow.  
     - Choose an event type (e.g., “report_created”).  
     - (Optional) If you are running n8n locally or behind a tunnel, fill **Custom Webhook Base URL** with your public domain (for example, `https://your-domain.tld`). This replaces the default localhost address in the webhook registration, ensuring external services (Reportei) can reach your n8n instance.  
     - Activate the workflow. The node will register a webhook at Reportei.  
     - Once the event occurs, n8n will receive a POST request at your specified domain and trigger your workflow.

  If you need more help with n8n basics, check out the [Try it out](https://docs.n8n.io/try-it-out/) documentation.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)  
  - [Reportei API documentation](https://app.reportei.com/docs/api)  
  - [n8n official docs](https://docs.n8n.io/)

  ## Version history

  - **0.1.0**  
    - Initial release of the **n8n-nodes-reportei** package.  
    - Added actions: Create Report, Create Dashboard, Add Timeline Event.  
    - Added triggers for 6 events: `report_created`, `dashboard_created`, `automation_executed`, `control_goal_met`, `control_goal_not_met`, `timeline_milestone`.

  - **0.1.1**  
    - Fixed minor bugs in the existing operations and triggers.

  - **0.1.2**  
    - Added the optional **Custom Webhook Base URL** input in the trigger node.  
    - Users can now specify a public domain (such as a tunnel URL) to replace localhost, making it easier to receive events behind NAT or local environments.

  - **0.1.3**  
    - **NEW**: Added optional **Template Selection** for Reports and Dashboards.  
    - Templates are now loaded dynamically based on the selected project.  
    - Enhanced API endpoint handling with multiple fallback URLs for better reliability.  
    - Improved error handling for template loading operations.

  - **0.1.4**  
    - **FIXED**: Added credential test functionality to validate API tokens.  
    - The node now includes automatic credential validation using the `/me` endpoint.  
    - This resolves the "Missing credential test" error during n8n community node verification.  
    - Improved user experience with immediate feedback on invalid credentials.

  - **0.1.5**  
    - **NEW**: Added 'Report Viewed' trigger event (`report_viewed`).  
    - **IMPROVED**: Made 'Project Name or ID' field optional in trigger configuration. Users can now create triggers without specifying a specific project, allowing for more flexible webhook configurations.  

ai_documentation_summary:
  {"purpose":"Use the Reportei API from n8n to create marketing reports, dashboards, and timeline events, and to trigger workflows from Reportei webhook events.","capabilities":["Create Report (specify project, integrations, date ranges, title, optional template)","Create Dashboard (link to project, select integrations, date ranges, optional template)","Add Event to Timeline (insert milestone or note into a project's report timeline)","Trigger workflows on Reportei events: report_created, report_viewed, dashboard_created, automation_executed, control_goal_met, control_goal_not_met, timeline_milestone","Automatic webhook registration/unregistration for trigger nodes","Optional Custom Webhook Base URL to use a public domain or tunnel for webhook delivery","Dynamic template loading per project and optional template selection for reports/dashboards","Credential test/validation using the /me endpoint","Multiple fallback API endpoint handling for improved reliability"],"authentication":"Reportei API token (Bearer token) required","commonUseCases":["Generate scheduled or on-demand marketing reports and dashboards from n8n workflows","Automatically append milestones or notes to project timelines","Trigger downstream automations when reports or dashboards are created or viewed, when automations run, or when goal events occur","Integrate Reportei events with other systems (notifications, CRMs, data warehouses) via webhooks","Use project-specific templates to standardize report and dashboard creation"],"limitations":["Node actions are focused on creation (Create Report, Create Dashboard, Add Timeline Event); update/delete/list operations are not documented","Triggers are limited to the specific event types listed in the README","Webhooks require n8n to be reachable by Reportei (use Custom Webhook Base URL or a tunnel when running locally/behind NAT)","Requires enabling community nodes in n8n and a minimum n8n version of 1.85.0","Developed and tested against Reportei API v1; future API changes may affect compatibility"],"relatedNodes":["Reportei","Reportei Trigger"]}


node_type: n8n-nodes-winston-ai.winstonAi
package_name: n8n-nodes-winston-ai
display_name: Winston AI
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: winston-ai
author_github_url: https://github.com/gowinston-ai/winston-ai-n8n.git
npm_package_name: n8n-nodes-winston-ai
npm_version: 1.0.6
community_fetched_at: 2026-02-19T14:41:52.682Z
ai_summary_generated_at: 2026-02-19 16:43:57
description:
  AI detector with industry leading accuracy rates in detecting use of AI in text and images. The Winston AI tools also offers a robust plagiarism checker to help maintain integrity.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "aiTextDetection",
      "options": [
        {
          "name": "AI Text Detection",
          "value": "aiTextDetection"
        },
        {
          "name": "AI Image Detection",
          "value": "aiImageDetection"
        },
        {
          "name": "Plagiarism",
          "value": "plagiarism"
        },
        {
          "name": "Text Compare",
          "value": "textCompare"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scan-ai-text",
      "options": [
        {
          "name": "Scan AI Generated Text",
          "value": "scan-ai-text",
          "action": "Scan AI generated text",
          "routing": {
            "request": {
              "url": "/v2/ai-content-detection",
              "method": "POST"
            }
          },
          "description": "Analyze text to detect AI-generated content. The Human Score we give is a metric used by Winston AI to estimate the likelihood that a given piece of content was generated by an AI tool versus being written by a human."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiTextDetection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scan-ai-image",
      "options": [
        {
          "name": "Scan AI Generated Image",
          "value": "scan-ai-image",
          "action": "Scan AI generated image",
          "routing": {
            "request": {
              "url": "/v2/image-detection",
              "method": "POST"
            }
          },
          "description": "Our image detection feature enables AI-generated image detection by verifying image metadata and using a machine learning system trained to differentiate between human and AI-generated images"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiImageDetection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scan-plagiarism",
      "options": [
        {
          "name": "Scan for Plagiarism",
          "value": "scan-plagiarism",
          "action": "Scan for plagiarism",
          "routing": {
            "request": {
              "url": "/v2/plagiarism",
              "method": "POST"
            }
          },
          "description": "Winston AI’s plagiarism API is a powerful tool designed to check text for plagiarism by scouring the internet for similar content. It queries multiple websites and compares the input text with the content found on these websites. This can be particularly useful in academic settings, content creation, legal scenarios or any other situation where originality of content is required."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "plagiarism"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "compare-texts",
      "options": [
        {
          "name": "Compare Texts",
          "value": "compare-texts",
          "action": "Compare texts",
          "routing": {
            "request": {
              "url": "/v2/text-compare",
              "method": "POST"
            }
          },
          "description": "Compare two texts to find similarities and differences between them. This endpoint analyzes both texts and returns detailed information about matching content, word counts, and similarity scores."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "textCompare"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Scan AI Generated Text",
      "value": "scan-ai-text",
      "action": "Scan AI generated text",
      "routing": {
        "request": {
          "url": "/v2/ai-content-detection",
          "method": "POST"
        }
      },
      "description": "Analyze text to detect AI-generated content. The Human Score we give is a metric used by Winston AI to estimate the likelihood that a given piece of content was generated by an AI tool versus being written by a human."
    },
    {
      "name": "Scan AI Generated Image",
      "value": "scan-ai-image",
      "action": "Scan AI generated image",
      "routing": {
        "request": {
          "url": "/v2/image-detection",
          "method": "POST"
        }
      },
      "description": "Our image detection feature enables AI-generated image detection by verifying image metadata and using a machine learning system trained to differentiate between human and AI-generated images"
    },
    {
      "name": "Scan for Plagiarism",
      "value": "scan-plagiarism",
      "action": "Scan for plagiarism",
      "routing": {
        "request": {
          "url": "/v2/plagiarism",
          "method": "POST"
        }
      },
      "description": "Winston AI’s plagiarism API is a powerful tool designed to check text for plagiarism by scouring the internet for similar content. It queries multiple websites and compares the input text with the content found on these websites. This can be particularly useful in academic settings, content creation, legal scenarios or any other situation where originality of content is required."
    },
    {
      "name": "Compare Texts",
      "value": "compare-texts",
      "action": "Compare texts",
      "routing": {
        "request": {
          "url": "/v2/text-compare",
          "method": "POST"
        }
      },
      "description": "Compare two texts to find similarities and differences between them. This endpoint analyzes both texts and returns detailed information about matching content, word counts, and similarity scores."
    }
  ]

npm_readme:
  # n8n-nodes-winston-ai ⚡️

  [![CI](https://github.com/gowinston-ai/winston-ai-n8n/actions/workflows/CI.yml/badge.svg)](https://github.com/gowinston-ai/winston-ai-n8n/actions/workflows/CI.yml)
  ![TypeScript](https://img.shields.io/badge/code-TypeScript-blue?logo=typescript)

  This is an n8n community node that lets you access all Winston AI analysis endpoints in your n8n workflows.

  [Winston AI](https://gowinston.ai/) provides industry-leading tools to:

  * Detect whether a text was generated by AI or written by a human
  * Detect AI-generated images
  * Scan content for plagiarism on the public web
  * Compare two texts for similarity

  [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 n8n [community-nodes installation guide](https://docs.n8n.io/integrations/community-nodes/installation/)


  ## Operations 🕹️

  | Resource           | Operation (value)      | Description |
  |--------------------|------------------------|-------------|
  | AI Text Detection  | Scan AI generated text (`scan-ai-text`) | Analyse a text and return Winston AI’s *Human Score* plus optional sentence-level scores. |
  | AI Image Detection | Scan AI generated image (`scan-ai-image`) | Determine the likelihood that an image was generated by AI, plus metadata such as EXIF, MIME type and watermark detection. |
  | Plagiarism         | Scan for plagiarism (`scan-plagiarism`) | Check text for plagiarism by searching the web for matching content. Optional language / country filtering and source exclusion supported. |
  | Text Compare       | Compare texts (`compare-texts`) | Compare two texts and return a similarity score and detailed match information. |

  ## Credentials 🔐

  The node requires a Winston AI API key.

  1. Sign in to the [Winston AI dashboard](https://dev.gowinston.ai/) and generate an API key.
  2. In n8n, create new **Winston AI API** credentials:
     * Field **API Key** → paste your key.
  3. Use these credentials in any Winston AI node. The key will be sent in the `Authorization` header as `Bearer <token>`.

  ## Compatibility

  * Minimum n8n version: **1.0.0** (tested on 1.24)
  * Requires Node.js **≥ 20.15**

  ## Usage 📊

  1. Add the **Winston AI** node to your workflow.
  2. Choose a *Resource* and *Operation*.
  3. Configure the mandatory fields (e.g. *Text*, *Image URL*, *First Text*, *Second Text*).
  4. Execute the node. The JSON response from the Winston AI API is returned in the output data.

  Example: Detect AI-generated text
  ```text
  Resource: AI Text Detection
  Operation: Scan AI generated text
  Text: "This paragraph was written by ChatGPT…"
  → Returns score, sentence-level analysis, attack detection flags, credits info, etc.
  ```

  ## Resources

  * Winston AI API Docs: 
    * [AI text detection](https://docs.gowinston.ai/api-reference/v2/ai-content-detection/post)
    * [AI image detection](https://docs.gowinston.ai/api-reference/v2/image-detection/post)
    * [Plagiarism](https://docs.gowinston.ai/api-reference/v2/plagiarism/post)
    * [Text compare](https://docs.gowinston.ai/api-reference/v2/text-compare/post)
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)

  ## Version history

  | Version | Date       | Notes |
  |---------|------------|-------|
  | 1.0.0   | 2025-07-25 | Initial release with text detection, image detection, plagiarism scan and text compare. |

ai_documentation_summary:
  {"purpose":"Expose Winston AI analysis endpoints inside n8n workflows to detect AI-generated text and images, scan for plagiarism on the public web, and compare texts for similarity.","capabilities":["Scan AI-generated text (returns Human Score, optional sentence-level scores, attack-detection flags, credits info)","Scan AI-generated images (returns AI-likelihood, EXIF metadata, MIME type, watermark detection)","Scan for plagiarism (searches the public web for matching content; supports optional language/country filtering and source exclusion)","Compare two texts (returns similarity score and detailed match information)"],"authentication":"API key required — Winston AI API key sent as Bearer token in the Authorization header","commonUseCases":["Automatically detect and flag AI-generated text in content workflows","Identify AI-generated or manipulated images and extract image metadata","Check submitted content for plagiarism against the public web","Compare two documents or passages for similarity/matching passages","Enforce content integrity and moderation rules in automated pipelines"],"limitations":["Requires a Winston AI API key to operate","Image scanning expects an image URL (no explicit file-upload workflow described)","Plagiarism checks search the public web only (does not mention private/corporate corpus scanning)","Supports only the four listed operations (text detection, image detection, plagiarism, text compare)","Compatibility constraints: minimum n8n 1.0.0 (tested on 1.24) and Node.js ≥ 20.15"],"relatedNodes":[]}


node_type: n8n-nodes-medullar.medullar
package_name: n8n-nodes-medullar
display_name: Medullar
description: AI-powered discovery & insight platform that acts as your extended digital mind.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: medullar_solutions
author_github_url: https://github.com/medullar/n8n-node.git
npm_package_name: n8n-nodes-medullar
npm_version: 0.2.3
community_fetched_at: 2026-02-19T14:41:52.682Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "space",
      "options": [
        {
          "name": "Space",
          "value": "space"
        }
      ],
      "required": true,
      "description": "Interact with a Medullar Space",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list-space",
      "options": [
        {
          "name": "Add Space Record",
          "value": "add-record",
          "action": "Add record to space",
          "description": "Adds a Record into a Space"
        },
        {
          "name": "Ask Space",
          "value": "ask-space",
          "action": "Ask a question to a space",
          "description": "Ask anything to a Space"
        },
        {
          "name": "Create Space",
          "value": "create-new-space",
          "action": "Create new space",
          "description": "Create a new Space"
        },
        {
          "name": "Delete Space",
          "value": "delete-space",
          "action": "Delete a space",
          "description": "Delete a Space"
        },
        {
          "name": "List Spaces",
          "value": "list-space",
          "action": "List all spaces",
          "description": "List all user Spaces"
        },
        {
          "name": "Rename Space",
          "value": "rename-space",
          "action": "Rename a space",
          "description": "Rename a Space"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Space Record",
      "value": "add-record",
      "action": "Add record to space",
      "description": "Adds a Record into a Space"
    },
    {
      "name": "Ask Space",
      "value": "ask-space",
      "action": "Ask a question to a space",
      "description": "Ask anything to a Space"
    },
    {
      "name": "Create Space",
      "value": "create-new-space",
      "action": "Create new space",
      "description": "Create a new Space"
    },
    {
      "name": "Delete Space",
      "value": "delete-space",
      "action": "Delete a space",
      "description": "Delete a Space"
    },
    {
      "name": "List Spaces",
      "value": "list-space",
      "action": "List all spaces",
      "description": "List all user Spaces"
    },
    {
      "name": "Rename Space",
      "value": "rename-space",
      "action": "Rename a space",
      "description": "Rename a Space"
    }
  ]

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

  # n8n-nodes-medullar

  ![Icon image](https://cdn.medullar.com/images/web/logo/medullar_favicon_128x128.png)

  This is an [n8n](https://n8n.io) community node that lets you integrate seamlessly with Medullar’s collaborative knowledge platform in your n8n workflows [Medullar](https://medullar.com).

  **Medullar** is an AI-powered workspace for actionable team intelligence—capturing insights, connecting conversations, and automating knowledge sharing across your daily tools. With this node, you can connect to your Medullar Spaces, fetch key insights, trigger knowledge actions, and weave Medullar’s contextual smarts directly into your workflow automation.

  Use this node to unify scattered information, automate knowledge handoffs, and bridge project data—so your workflows become not just automated, but genuinely intelligent.

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

  ## Features
  - **List Spaces**: Retrieve all your Medullar Spaces to keep track of your collaborative environments.
  - **Create Space**: Easily create new Spaces to organize your projects and knowledge.
  - **Add Space Record**: Add various types of content to your Spaces including text, URLs, images, and files to build your knowledge base.
  - **Ask Space**: Interact with your Medullar Spaces using multiple AI modes:
    - MedullaryAI Agent (OpenAI and xAI Grok variants)
    - MedullaryAI Fact Check for verification
    - MedullaryAI Researcher for in-depth analysis
    - MedullaryAI Sales Researcher for sales intelligence
    - MedullaryAI Search Agent for targeted searches
    - Optional Deep Analysis for more accurate but slower responses
  - **Rename Space**: Update the name of existing Spaces to better reflect their purpose.
  - **Delete Space**: Remove Spaces that are no longer needed to keep your workspace organized.

  ## Credentials

  To use this node, you need to set up credentials for Medullar. You can find your API key in your Medullar account settings.

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Requires Medullar paid plan

  ## Resources
  - [n8n Documentation](https://docs.n8n.io)
  - [Medullar](https://www.medullar.com)

  ## License

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

ai_documentation_summary:
  {"purpose":"Integrate Medullar's AI-powered collaborative knowledge platform into n8n workflows to manage Spaces, ingest content, and query team knowledge using multiple AI modes for insights and automation.","capabilities":["List Spaces — retrieve all Medullar Spaces","Create Space — create new collaborative Spaces","Add Space Record — add text, URLs, images, and files to a Space","Ask Space — query a Space using multiple AI modes (MedullaryAI Agent, Fact Check, Researcher, Sales Researcher, Search Agent)","Ask Space — use OpenAI and xAI Grok variants as agent backends","Ask Space — optional Deep Analysis mode for more accurate (but slower) responses","Rename Space — update Space names","Delete Space — remove Spaces"],"authentication":"API key required (set Medullar credentials using an API key from your Medullar account)","commonUseCases":["Centralize and organize project knowledge by creating and populating Spaces","Ingest documents, links, images, and files into a team knowledge base","Automate knowledge handoffs and trigger workflow actions based on Space content","Ask Spaces for insights, research, fact-checking, or sales intelligence using different AI modes","Keep Spaces up to date by renaming or deleting them programmatically"],"limitations":["Requires a Medullar paid plan","Requires n8n version 1.0.0 or later"],"relatedNodes":[]}


node_type: @seclore/n8n-nodes-seclore.secloreProtect
package_name: @seclore/n8n-nodes-seclore
display_name: Seclore
description: Protect files using Seclore DRM
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: seclore_admin
author_github_url: https://github.com/seclore-tech/n8n-nodes-seclore.git
npm_package_name: @seclore/n8n-nodes-seclore
npm_version: 1.0.8
community_fetched_at: 2026-02-19T14:41:52.683Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "drmProtection",
      "options": [
        {
          "name": "DRM Protection",
          "value": "drmProtection",
          "description": "DRM file protection operations"
        },
        {
          "name": "DRM Unprotection",
          "value": "drmUnprotection",
          "description": "DRM file unprotection operations"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "protectWithHotFolder",
      "options": [
        {
          "name": "Protect Using Policy",
          "value": "protectWithHotFolder",
          "action": "Protect file using policy",
          "description": "Protect a file using HotFolder ID configuration"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "drmProtection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "unprotect",
      "options": [
        {
          "name": "Unprotect",
          "value": "unprotect",
          "action": "Unprotect file",
          "description": "Unprotect a protected file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "drmUnprotection"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Protect Using Policy",
      "value": "protectWithHotFolder",
      "action": "Protect file using policy",
      "description": "Protect a file using HotFolder ID configuration"
    },
    {
      "name": "Unprotect",
      "value": "unprotect",
      "action": "Unprotect file",
      "description": "Unprotect a protected file"
    }
  ]

npm_readme:
  # n8n-nodes-seclore

  This is an n8n community node. It lets you use Seclore DRM Server in your n8n workflows.

  [Seclore](https://www.seclore.com) is a leading data-centric security platform that provides enterprise-grade Digital Rights Management (DRM) capabilities to protect sensitive files and documents throughout their lifecycle.

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

  Use `n8n-nodes-seclore` as the package name.

  ## Operations

  This node supports the following operations with Seclore DRM Server:

  ### DRM Protection
  #### Protect using Policy
  - **Description**: Protects files using Seclore's HotFolder ID configuration and policy-based protection
  - **Required Parameters**:
    - **HotFolder ID**: The ID of the HotFolder configuration to use for protection
    - **Input Binary Property**: Name of the binary property containing the file to protect (default: 'data')
  - **Output**: Protected file with DRM protection applied according to the specified policy


  ### DRM Unprotection
  #### Unprotect
  - **Description**: Removes DRM protection from Seclore-protected files
  - **Required Parameters**:
    - **Input Binary Property**: Name of the binary property containing the protected file (default: 'data')
  - **Output**: Unprotected original file content


  ## Credentials

  To use this node, you need to authenticate with your Seclore DRM Server. The following credentials are required:

  ### Prerequisites
  - Access to a Seclore DRM Server instance
  - Valid tenant credentials (Tenant ID and Tenant Secret)
  - Appropriate permissions for file protection/unprotection operations

  ### Authentication Setup
  1. **Base URL**: The base URL of your Seclore DRM Server (e.g., `https://api.seclore.com`)
  2. **Tenant ID**: Your unique Seclore tenant identifier
  3. **Tenant Secret**: Your tenant's secret key for API authentication

  ### Configuration Steps
  1. In n8n, go to **Credentials** → **Create New**
  2. Search for "Seclore API" and select it
  3. Fill in your Seclore DRM Server details:
     - **Base URL**: Enter your Seclore DRM Server base URL
     - **Tenant ID**: Provide your unique tenant identifier
     - **Tenant Secret**: Enter your tenant's secret key (will be masked for security)
  4. Test the connection to ensure credentials are valid (tests against `/seclore/drm/1.0/auth/login` endpoint)
  5. Save the credentials for use in your workflows

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Tested with n8n versions**: 1.0.0+
  - **Node.js version**: 18.x or higher
  - **Seclore API version**: Compatible with Seclore DRM API v1.0

  ## Usage

  ### Basic Workflow Examples

  #### Protecting Files with Policy
  1. Use a trigger node to receive files (HTTP Request, File Trigger, etc.)
  2. Add the **Seclore** node to your workflow
  3. Configure the node:
     - **Resource**: Select "DRM Protection"
     - **Operation**: Select "Protect using Policy"
     - **HotFolder ID**: Enter your HotFolder configuration ID
     - **Input Binary Property**: Specify the binary property name (default: 'data')
  4. Configure your Seclore API credentials
  5. The node will return the protected file with DRM encryption applied according to your policy

  #### Unprotecting Files
  1. Receive protected Seclore files in your workflow
  2. Add the **Seclore** node to your workflow
  3. Configure the node:
     - **Resource**: Select "DRM Unprotection"
     - **Operation**: Select "Unprotect"
     - **Input Binary Property**: Specify the binary property containing the protected file (default: 'data')
  4. Configure your Seclore API credentials
  5. The node will return the original unprotected file content

  ### Important Notes
  - Ensure your Seclore DRM Server is accessible from your n8n instance
  - File operations may take time depending on file size and server performance
  - Always handle errors appropriately in your workflows
  - Protected files can only be unprotected by authorized users with proper credentials
  - HotFolder ID must be configured in your Seclore Policy Server before using protection operations
  - The node supports binary data processing for both input and output files

  ### Error Handling
  The node includes comprehensive error handling and logging:
  - Connection failures to Seclore server
  - Authentication errors
  - File processing errors
  - Automatic cleanup of temporary files

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Seclore Official Documentation](https://docs.seclore.com/)
  * [Seclore Support](https://support.seclore.com/)

  ## License

  Refer the [LICENSE.md](LICENSE.md) file for details.

  ## Support

  For issues related to this n8n node:
  - Create an issue in this repository
  - Contact: support@seclore.com

  For Seclore platform support:
  - Visit [Seclore Support Portal](https://support.seclore.com/)
  - Check [Seclore Documentation](https://docs.seclore.com/)

ai_documentation_summary:
  {"purpose":"Apply and remove Seclore DRM protection on files within n8n workflows — supports policy-based protection via HotFolder ID and unprotection of Seclore-protected files.","capabilities":["Protect files using policy-based DRM (Protect using Policy) via configured HotFolder ID","Remove DRM protection from Seclore-protected files (Unprotect)","Accept and return binary file data (configurable Input Binary Property, default 'data')","Credential validation (tests auth against /seclore/drm/1.0/auth/login)","Comprehensive error handling and logging for connection, auth, and file processing errors","Automatic cleanup of temporary files produced during processing"],"authentication":"Seclore API credentials: provide Base URL, Tenant ID and Tenant Secret (tenant-based API authentication)","commonUseCases":["Automatically apply enterprise DRM before sharing or storing sensitive files","Unprotect files in a workflow for processing or conversion by downstream nodes","Integrate with trigger nodes (HTTP Request, File Trigger, etc.) to enforce DRM on ingested files","Automate bulk protection using HotFolder-based policy configurations"],"limitations":["Requires access to a Seclore DRM Server instance (server must be reachable from n8n)","HotFolder ID must be preconfigured in Seclore Policy Server — node does not manage HotFolder/policy creation","Protected files can only be unprotected by authorized users with appropriate Seclore permissions","File operations may be slow for large files and depend on server performance","Compatibility limited to Seclore DRM API v1.0 and tested with n8n >= 1.0.0; Node.js 18.x or higher required"],"relatedNodes":["HTTP Request (for ingesting files or calling external endpoints)","Trigger nodes (HTTP Request Trigger, File Trigger, etc.)","Credentials (Seclore API credential type)","Binary-capable processing nodes (for downstream handling of protected/unprotected files)"]}


node_type: n8n-nodes-clipboardgenie.clipboardGenie
package_name: n8n-nodes-clipboardgenie
display_name: Clipboard Genie
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: genielaboratories
author_github_url: https://github.com/genielaboratories/
npm_package_name: n8n-nodes-clipboardgenie
npm_version: 0.1.7
community_fetched_at: 2026-02-19T14:41:52.683Z
ai_summary_generated_at: 2026-02-19 16:43:57
description:
  Integrate n8n with the ClipboardGenie app to send and receive clipboard data between your desktop and workflows.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "item",
      "options": [
        {
          "name": "Item",
          "value": "item"
        },
        {
          "name": "Notification",
          "value": "notification"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createText",
      "options": [
        {
          "name": "Create Text Item",
          "value": "createText",
          "action": "Create text item",
          "description": "Create a new text item in the desktop app"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "item"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "show",
      "options": [
        {
          "name": "Show",
          "value": "show",
          "action": "Show notification",
          "description": "Displays a system notification on your desktop with an optional title and message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "notification"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Text Item",
      "value": "createText",
      "action": "Create text item",
      "description": "Create a new text item in the desktop app"
    },
    {
      "name": "Show",
      "value": "show",
      "action": "Show notification",
      "description": "Displays a system notification on your desktop with an optional title and message"
    }
  ]

npm_readme:
  ﻿# n8n-nodes-clipboardgenie

  This is an n8n community node. It allows you to connect **Clipboard Genie** with your n8n workflows.

  **Clipboard Genie** is a modern Windows clipboard manager with pinboards, advanced search, and desktop notifications.
  With this node, you can send text items directly to the app or trigger desktop notifications from your workflows.


  > This is a community-contributed node. It is not affiliated with or maintained by n8n GmbH.


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

  ---

  ## Installation

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

  ```bash
  # Inside your n8n instance
  npm install n8n-nodes-clipboardgenie
  ```

  After installation, restart n8n to load the new node.

  ---

  ## Operations

  This node provides two resources:

  ### 🗂️ Resource: Item

  **Operation: Create Text Item**

  Creates a new text item in your Clipboard Genie desktop app.
  You can choose the pinboard where the item will appear, optionally show it on the main board, and display a system notification.

  #### Parameters

  | Name                                 | Type    | Required    | Default | Description                                                                                                                                                                                                                                                                                                                                          |
  | ------------------------------------ | ------- | ----------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | **Pinboard Name**                    | String  | ✅ Yes       | `""`    | Specify the pinboard name where the item will be added.                                                                                                                                                                                                                                                                                              |
  | **Show on Main Board**               | Boolean | No          | `false` | Also display the item on your main board.                                                                                                                                                                                                                                                                                                            |
  | **Text to Send**                     | String  | ✅ Yes       | `""`    | The text content of the new item.                                                                                                                                                                                                                                                                                                                    |
  | **Open Link or Path**                | String  | No          | `""`    | Optional URL, file path, or command associated with the item. When provided, a button in the app will open it directly.<br>Supported formats: `https://example.com`, `file:///Users/name/file.pdf`, `file://app.name --param value`.<br>For Windows paths with spaces, wrap them in quotes, e.g. `"C:\\Program Files\\App\\app.exe" "--flag value"`. |
  | **Show System Notification**         | Boolean | No          | `true`  | Display a desktop notification when the item is received.                                                                                                                                                                                                                                                                                            |
  | **Notification Title**               | String  | Conditional | `""`    | Optional title displayed in the notification (only shown if notifications are enabled).                                                                                                                                                                                                                                                              |
  | **Notification Message**             | String  | Conditional | `""`    | Optional body text for the notification.                                                                                                                                                                                                                                                                                                             |
  | **Close Notification Automatically** | Boolean | Conditional | `false` | Automatically close the notification after a short delay.                                                                                                                                                                                                                                                                                            |

  ---

  ### 🔔 Resource: Notification

  **Operation: Show**

  Displays a native desktop notification with an optional title, message, and “Open” button.

  #### Parameters

  | Name                     | Type    | Required | Default | Description                                                                             |
  | ------------------------ | ------- | -------- | ------- | --------------------------------------------------------------------------------------- |
  | **Notification Title**   | String  | No       | `""`    | Optional title. If not set, a default title will appear.                                |
  | **Notification Message** | String  | ✅ Yes    | `""`    | Main content of the notification.                                                       |
  | **Open Link or Path**    | String  | No       | `""`    | Optional URL, file path, or app command. When provided, a button will open it directly. |
  | **Auto Close**           | Boolean | No       | `false` | Automatically close the notification after a short delay.                               |

  ---

  ## Credentials

  ### 🔑 API Key Authentication

  Clipboard Genie uses API key authentication for all n8n integrations.

  1. In the Clipboard Genie desktop app, go to
     **Settings → Extensions → n8n**
  2. Click **Generate API Key**.
  3. Copy the generated key and paste it into the **API Key** field in your n8n credentials for Clipboard Genie.
  4. The node will automatically send it using:

     ```
     Authorization: Bearer <API_KEY>
     ```

  ---

  ## Compatibility

  * **n8n version:** ≥ 1.x (supports community nodes)
  * **Clipboard Genie:** latest desktop version with n8n extension
  * **Platform:** Windows desktop (notifications and pinboards handled by the app)

  ---

  ## Usage

  ### ▶️ Example 1: Create a Text Item

  1. Add a new node: **Clipboard Genie → Item → Create Text Item**
  2. Fill in the required fields:

     * *Pinboard Name*
     * *Text to Send*
  3. (Optional) Enable **Show System Notification** to alert the user when the item is added.
  4. Execute the workflow.
     The text will appear in the selected pinboard in Clipboard Genie desktop application.

  ---

  ### ▶️ Example 2: Show a Desktop Notification

  1. Add a node: **Clipboard Genie → Notification → Show**
  2. Provide a *Notification Message* (required).
  3. Optionally set:

     * *Notification Title*
     * *Open Link or Path*
     * *Auto Close*
  4. Run the workflow.
     The user will receive a native desktop notification with the specified content and actions.

  ---

  ## Resources

  * [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Clipboard Genie Website](https://clipboardgenie.com)
  * [GitHub Repository & Issues](https://github.com/genielaboratories/n8n-nodes-clipboardgenie/issues) — report bugs or suggest new features

  ---

  ## Version history

  | Version   | Changes                                                                                             |
  | --------- | --------------------------------------------------------------------------------------------------- |
  | **0.1.6** | Fix: optional parameters (internal version, never published to npm)                                |
  | **0.1.0** | Initial release with two operations:<br>– Item → Create Text Item<br>– Notification → Show         |

  ---

ai_documentation_summary:
  {"purpose":"Integrate n8n with the Clipboard Genie Windows desktop app to send text items to the clipboard manager and to trigger native desktop notifications from workflows.","capabilities":["Create a text item in Clipboard Genie (specify pinboard name, optionally show on main board)","Attach an openable URL, file path, or command to an item (supports https://, file:///, and file://app style; special handling for quoted Windows paths)","Trigger a system/desktop notification when an item is received (set notification title, message, and auto-close)","Display native desktop notifications with an optional “Open” button (title and message configurable)","Send clipboard/text data from workflows to the Clipboard Genie app (desktop integration)"],"authentication":"None (README does not document API keys or OAuth; node is intended to connect to the local Clipboard Genie desktop app — the app must be installed/running)","commonUseCases":["Send generated text snippets (e.g., templates, code, tokens) from workflows to a Clipboard Genie pinboard","Notify desktop users of workflow events/results with actionable notifications","Store links, files, or command shortcuts produced by workflows into the clipboard manager for quick access","Automatically surface important workflow outputs on the desktop via notifications and pinboard items"],"limitations":["Windows-only target (Clipboard Genie is a Windows clipboard manager)","Node operations documented focus on text items and notifications — no mention of images or other rich clipboard formats","Requires the Clipboard Genie desktop app to be installed and running on the target machine","No authentication or remote API workflow documented — likely intended as a local desktop integration","Community-contributed node (not officially maintained by n8n GmbH)"],"relatedNodes":[]}


node_type: n8n-nodes-unstract.llmWhisperer
package_name: n8n-nodes-unstract
display_name: LLMWhisperer
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: arun-unstract
author_github_url: https://github.com/Zipstack/n8n-nodes.git
npm_package_name: n8n-nodes-unstract
npm_version: 0.5.7
community_fetched_at: 2026-02-19T14:41:52.684Z
ai_summary_generated_at: 2026-02-19 16:43:57
description:
  Extract text from PDFs, images, and scanned documents using OCR. Preserves layout and formatting for accurate text extraction from any document type

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "extractText",
      "options": [
        {
          "name": "Extract Text",
          "value": "extractText",
          "action": "Extract text from document",
          "description": "Extract text from PDFs and images using OCR"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Extract Text",
      "value": "extractText",
      "action": "Extract text from document",
      "description": "Extract text from PDFs and images using OCR"
    }
  ]

npm_readme:
  # n8n-nodes-unstract
  <div align="center">

  ![n8n-node-codechat-wapi](https://img.shields.io/npm/v/n8n-nodes-unstract?label=n8n-nodes-unstract&logo=unstract)
  ![License](https://img.shields.io/npm/l/n8n-nodes-unstract)
  [![n8n](https://img.shields.io/badge/n8n-community-F94B72)](https://community.n8n.io/)
  ![dt](https://img.shields.io/npm/dt/n8n-nodes-unstract)
  ![dw](https://img.shields.io/npm/dw/n8n-nodes-unstract)

  </div>
  This is an n8n community node package that provides integrations with Unstract services, including LLMWhisperer and the Unstract API. These nodes enable seamless document processing and text extraction workflows within your n8n automations.

  ## What is Unstract?

  [Unstract](https://unstract.com) is a platform that helps extract structured data from unstructured documents using AI. It provides powerful APIs for document processing, including:

  - **LLMWhisperer**: Convert documents to layout-preserved plain text
  - **Unstract API**: Extract structured data from documents using custom workflows

  ## Features

  This package includes following main nodes:

  ### 🔤 LLMWhisperer Node
  - Convert documents (PDF, images, etc.) to layout-preserved plain text
  - Maintain document structure and formatting
  - Support for various document formats
  - Configurable processing modes

  ### 🤖 Unstract Node
  - Process documents using Unstract's AI-powered extraction
  - Extract structured data from unstructured documents
  - Support for custom API deployments
  - Seamless integration with Unstract workflows

  ### 📤 Unstract HITL Push Node
  - Push documents to Human-in-the-Loop (HITL) processing queues
  - Configure timeout, metrics, metadata, and queue targeting
  - Support for various document types and queue configurations
  - Error handling for upload and processing issues

  ### 📥 Unstract HITL Fetch Node
  - Retrieve approved results from HITL processing queues
  - Poll for completed processing with configurable intervals
  - Optional queue name parameter for targeted fetching
  - Proper error handling for "No approved items available" responses

  ## Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes** in your n8n instance
  2. Select **Install a community node**
  3. Enter the npm package name: `n8n-nodes-unstract`
  4. Click **Install**

  ### Manual Installation

  You can install this node package in your n8n instance using npm:

  ```bash
  npm install n8n-nodes-unstract
  ```

  For Docker installations, add the package to your n8n container:

  ```bash
  # Replace <your-path-to-n8n-custom-nodes> with the path to n8n
  N8N_CUSTOM_EXTENSIONS="<your-path-to-n8n-custom-nodes>" npx n8n start
  ```

  ## Configuration

  ### Prerequisites

  Before using these nodes, you'll need:

  1. **API Credentials**: Get your API keys from:
     - [LLMWhisperer API - Follow the doc](https://docs.unstract.com/llmwhisperer/llm_whisperer/getting_started/llm_whisperer_registering/)
     - [Unstract Platform - Follow the doc](https://docs.unstract.com/unstract/unstract_platform/api_deployment/unstract_api_deployment_intro/)

  2. **Node.js**: Version 20 or above is required

  ### Setting up Credentials

  1. **LLMWhisperer API Credentials**:
     - Go to your n8n credentials settings
     - Create new credentials of type "LLMWhisperer API"
     - Enter your LLMWhisperer API key

  2. **Unstract API Credentials**:
     - Go to your n8n credentials settings
     - Create new credentials of type "Unstract API"
     - Enter your Unstract API key and endpoint details

  3. **Unstract HITL Credentials**:
     - Go to your n8n credentials settings
     - Create new credentials of type "Unstract HITL"
     - Enter your HITL API key for Human-in-the-Loop processing

  ## Usage Examples

  ### LLMWhisperer Node

  Use the LLMWhisperer node to convert documents to text while preserving layout:

  1. Add the LLMWhisperer node to your workflow
  2. Configure your API credentials
  3. Set the input file (binary data)
  4. Choose processing mode and options
  5. Execute to get layout-preserved text output

  ### Unstract Node

  Use the Unstract node to extract structured data:

  1. Add the Unstract node to your workflow
  2. Configure your API credentials and deployment
  3. Set the input document (binary data)
  4. Specify your API deployment name
  5. Execute to get structured data output

  ### Unstract HITL Push Node

  Use the HITL Push node to send documents for human review:

  1. Add the Unstract HITL Push node to your workflow
  2. Configure your HITL API credentials
  3. Set the input document (binary data)
  4. Configure queue name, timeout, and metadata options
  5. Execute to push document to HITL processing queue

  ### Unstract HITL Fetch Node

  Use the HITL Fetch node to retrieve approved results:

  1. Add the Unstract HITL Fetch node to your workflow
  2. Configure your HITL API credentials
  3. Optionally specify a queue name to target specific queues
  4. Configure polling interval and retry settings
  5. Execute to fetch approved results from HITL queue

  ## Screenshots

  ### Node Integration Examples

  Visual guides for integrating Unstract nodes in your n8n workflows:

  #### LLMWhisperer Node Configuration
  ![LLMWhisperer node setup and configuration](screenshots/llmwhisperer-node-config.png)

  #### Unstract Node Configuration  
  ![Unstract API node setup and configuration](screenshots/unstract-node-config.png)

  #### HITL Push Node Configuration
  ![HITL Push node setup with queue configuration and document upload](screenshots/hitl-push-node-config.png)

  #### HITL Fetch Node Configuration
  ![HITL Fetch node setup with polling configuration](screenshots/hitl-fetch-node-config.png)

  These screenshots help developers understand the visual setup and configuration of each node type for seamless integration into n8n workflows.

  ## API Documentation

  For detailed API documentation and advanced configuration options:

  - [LLMWhisperer Documentation](https://docs.unstract.com/llm_whisperer/)
  - [Unstract Platform Documentation](https://docs.unstract.com/unstract/)

  ## Development

  ### Prerequisites

  - Node.js 20 or above
  - npm or yarn

  ### Setup

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

  # Install dependencies
  npm install

  # Build the project
  npm run build

  # Run linting
  npm run lint
  ```

  ### Running n8n with Custom Nodes

  For development and testing:

  ```bash
  # Set the custom extensions path and start n8n
  N8N_CUSTOM_EXTENSIONS="/path/to/n8n-nodes" npx n8n start
  ```

  ## Support

  - **Documentation**: [docs.unstract.com](https://docs.unstract.com)
  - **Issues**: [GitHub Issues](https://github.com/Zipstack/n8n-nodes/issues)
  - **Community**: [Join our community discussions](https://join.slack.com/t/unstract/shared_invite/zt-372jed537-bYz99iZnfXnhqyjbU8lPLg)
  - **Email**: support@unstract.com

  ## License

  This project is licensed under the MIT License - see the package.json file for details.

  ## Contributing

  We welcome contributions! Please feel free to submit issues, feature requests, or pull requests.

  ---

  **Made with ❤️ by the Unstract team**

ai_documentation_summary:
  {"purpose":"Convert PDFs, images, and scanned documents to layout-preserved plain text using OCR so extracted text retains original document structure and formatting for downstream processing.","capabilities":["Convert documents (PDFs, images, scanned files) to layout-preserved plain text","Preserve document structure and formatting (layout-aware OCR)","Support for multiple document formats (PDF, image types)","Configurable processing modes/options","Accept binary input files from n8n workflow and return text output"],"authentication":"API key required (LLMWhisperer API credentials configured in n8n)","commonUseCases":["OCR scanned PDFs and images to searchable, layout-preserved text","Preprocess documents before feeding to LLMs or text-analysis nodes while retaining layout","Prepare documents for structured extraction workflows (use with Unstract node)","Automate document ingestion pipelines where accurate formatting/layout retention is important"],"limitations":["Requires an LLMWhisperer API key and Unstract account/credentials","Node.js 20+ is required to run the node in n8n","Does not perform structured data extraction itself (use the Unstract node for structured outputs)","README does not specify limits such as file size, rate limits, or language support"],"relatedNodes":["Unstract (Unstract API)","Unstract HITL Push","Unstract HITL Fetch"]}


node_type: @nvoip/n8n-nodes-nvoip.nvoip
package_name: @nvoip/n8n-nodes-nvoip
display_name: Nvoip
description: Make calls, send WhatsApp and SMS.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: lucasnaves
author_github_url: https://github.com/Nvoip/nvoip-n8n.git
npm_package_name: @nvoip/n8n-nodes-nvoip
npm_version: 0.1.10
community_fetched_at: 2026-02-19T14:41:52.685Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "sms",
      "options": [
        {
          "name": "SMS",
          "value": "sms",
          "description": "SMS actions"
        },
        {
          "name": "WhatsApp",
          "value": "whatsapp",
          "description": "WhatsApp actions"
        },
        {
          "name": "Call",
          "value": "call",
          "description": "Call actions"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "makeCall",
      "options": [
        {
          "name": "Make Call",
          "value": "makeCall",
          "action": "Make a phone call",
          "description": "Make an outbound call using Nvoip"
        },
        {
          "name": "Send Interactive Voice Broadcast",
          "value": "sendVoiceBlastInteractive",
          "action": "Send interactive voice broadcast",
          "description": "Send an automated voice message with the ability to receive DTMF input"
        },
        {
          "name": "Send Voice Broadcast",
          "value": "sendVoiceBlast",
          "action": "Send voice broadcast",
          "description": "Send an automated voice message delivered as audio file or TTS"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendSms",
      "options": [
        {
          "name": "Send SMS",
          "value": "sendSms",
          "action": "Send SMS",
          "description": "Send a customized SMS message to a customer"
        },
        {
          "name": "Send SMS (Template)",
          "value": "sendTemplateSms",
          "action": "Send template SMS",
          "description": "Send an SMS using a predefined template"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sms"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendWhatsapp",
      "options": [
        {
          "name": "Send WhatsApp (With HSM)",
          "value": "sendWhatsapp",
          "action": "Send whatsapp message",
          "description": "Send WhatsApp template messages using Nvoip for automated communication"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "whatsapp"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Make Call",
      "value": "makeCall",
      "action": "Make a phone call",
      "description": "Make an outbound call using Nvoip"
    },
    {
      "name": "Send Interactive Voice Broadcast",
      "value": "sendVoiceBlastInteractive",
      "action": "Send interactive voice broadcast",
      "description": "Send an automated voice message with the ability to receive DTMF input"
    },
    {
      "name": "Send Voice Broadcast",
      "value": "sendVoiceBlast",
      "action": "Send voice broadcast",
      "description": "Send an automated voice message delivered as audio file or TTS"
    },
    {
      "name": "Send SMS",
      "value": "sendSms",
      "action": "Send SMS",
      "description": "Send a customized SMS message to a customer"
    },
    {
      "name": "Send SMS (Template)",
      "value": "sendTemplateSms",
      "action": "Send template SMS",
      "description": "Send an SMS using a predefined template"
    },
    {
      "name": "Send WhatsApp (With HSM)",
      "value": "sendWhatsapp",
      "action": "Send whatsapp message",
      "description": "Send WhatsApp template messages using Nvoip for automated communication"
    }
  ]

npm_readme:
  # 📡 @nvoip/n8n-nodes-nvoip

  [![Node.js Version](https://img.shields.io/badge/Node.js-20+-green)](https://nodejs.org/)
  [![n8n](https://img.shields.io/badge/n8n-supported-brightgreen)](https://n8n.io/)
  [![License](https://img.shields.io/badge/License-MIT-blue)](LICENSE)

  Integração da **Nvoip** com o **[n8n](https://n8n.io/)** para automação de comunicações:  
  ✅ Envio de SMS  
  ✅ Mensagens via WhatsApp  
  ✅ Ligações telefônicas  
  ✅ Torpedos de voz (simples e interativos)  

  ---

  ## 🚀 Introdução
  Este pacote fornece um **node personalizado para o n8n**, permitindo integrar de forma simples e rápida os serviços da **Nvoip** em fluxos de automação.  
  O projeto foi desenvolvido em **TypeScript**, com suporte a **OAuth2** para autenticação segura e diversas funcionalidades de comunicação.

  ---

  ## ⚙️ Como usar o node

  Siga este passo a passo para configurar e usar o node @nvoip/n8n-nodes-nvoip:

  1. **Instale o node da comunidade**  
     - Abra o n8n e vá até a aba de **Nodes da Comunidade**.  
     - Procure por `@nvoip/n8n-nodes-nvoip` e instale.

  2. **Adicione o node no seu fluxo**  
     - Arraste o node para o seu canvas de automação.  
     - Clique nele para abrir as configurações.

  3. **Configure suas credenciais**  
     - Na aba de **Login/Autenticação**, insira suas credenciais da Nvoip.  
     - O node utiliza **OAuth2**, garantindo acesso seguro à API da Nvoip.

  4. **Configure a ação desejada**  
     - **SMS**: Defina o número do destinatário e a mensagem (suporte a variáveis e templates).  
     - **WhatsApp**: Configure o envio de mensagens via API oficial, com suporte a templates predefinidos.  
     - **Ligações telefônicas**: Escolha o ramal de origem, número de destino e configure transferências se necessário.  
     - **Torpedo de voz**: Selecione **Simples** (texto convertido em áudio) ou **Interativo** (envio de link para áudio público).

  5. **Teste o fluxo**  
     - Execute o node no modo de teste.  
     - Verifique logs e mensagens enviadas para garantir que a integração está funcionando corretamente.

  6. **Salve e publique seu fluxo**  
     - Quando tudo estiver configurado, salve o fluxo e publique para produção.


  ## SMS

  -	Envio de mensagens customizadas
  	
  -	Suporte a variáveis e templates de SMS

  ## WhatsApp

  -	Envio de mensagens via API oficial
  	
  -	Suporte a templates predefinidos

  ## Ligações Telefônicas

  -	Disparo de chamadas via ramal
  	
  -	Conexão entre usuário e cliente final
  	
  -	Implementação inicial do recurso transferTrue (em desenvolvimento)
  	
  -	Torpedo de Voz
  	
  -	Simples: texto convertido em áudio
  	
  -	Interativo: envio de link para áudio público

  ## 📌 Conclusão

  O @nvoip/n8n-nodes-nvoip amplia o poder de automação no n8n, permitindo gerenciar toda a comunicação multicanal da Nvoip em um único node.
  A arquitetura modular garante extensibilidade e manutenção simples, abrindo espaço para futuras evoluções.

ai_documentation_summary:
  {"purpose":"Integrate Nvoip communications into n8n workflows to send SMS and WhatsApp messages, originate phone calls, and deliver voice messages (TTS or interactive audio links).","capabilities":["Send SMS with custom content, templates and variable interpolation","Send WhatsApp messages via the official API with support for predefined templates","Originate phone calls from a configured extension to a destination number","Configure call transfers/connect user-to-client flows","Send voice messages (Torpedo de voz) — Simple (text-to-speech) and Interative (send public audio link)","Configure node credentials and run/test the node within n8n (logs and test execution)"],"authentication":"OAuth2","commonUseCases":["Automated transactional or alert SMS notifications from workflows","Delivery of WhatsApp template messages for customer notifications or confirmations","Outbound voice campaigns using TTS for reminders or alerts","Workflow-triggered phone calls to connect customers with agents or external numbers","Interactive voice notifications that provide a public audio link for recipients"],"limitations":["Call transfer feature (transferTrue) is in initial development and may be incomplete","Interactive voice option sends a public audio link (potential privacy/exposure consideration)","README does not document inbound message/call webhook handling or delivery/reporting features"],"relatedNodes":[]}


node_type: @drwally/n8n-nodes-integration.drwally
package_name: @drwally/n8n-nodes-integration
display_name: DrWally
description: DrWally send message node
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: drwally
author_github_url: https://github.com/sinova-dev/drwally-n8n-node.git
npm_package_name: @drwally/n8n-nodes-integration
npm_version: 1.0.6
community_fetched_at: 2026-02-19T14:41:52.685Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendPrivate",
      "options": [
        {
          "name": "Send Private Message",
          "value": "sendPrivate",
          "action": "Send a private message",
          "description": "Send a private message"
        },
        {
          "name": "Send Group Message",
          "value": "sendGroup",
          "action": "Send a group message",
          "description": "Send a group message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Private Message",
      "value": "sendPrivate",
      "action": "Send a private message",
      "description": "Send a private message"
    },
    {
      "name": "Send Group Message",
      "value": "sendGroup",
      "action": "Send a group message",
      "description": "Send a group message"
    }
  ]

npm_readme:
  # n8n-nodes-DrWally

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

  DrWally API is service that allows users automate whatsapp messaging for business purposes.

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

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

  ## Installation

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

  ## Operations

  1. Send private message - send message to a single user
  2. Send group message - send message to a group

  ## Credentials

  For sending messages using DrWally node, you need to have account on [DrWally website](https://drwallyai.com/)

  1. Create account.
  2. Log in.
  3. In sidebar select WhatsApp for Business
  4. Connect your whatsapp account to the app
  5. Select Webhooks for WhatsApp for Business on sidebar
  6. Generate webhook for selected phone number
  7. Use Webhook URL and Secret Key, to create credentials in n8n

  ## Compatibility

  Minimum n8n version - 2.1.5

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [DrWally API](https://api.drwallyai.com/api-public)

ai_documentation_summary:
  {"purpose":"Provides n8n workflow integration with the DrWally API to automate WhatsApp messaging for business (send messages to individual users or groups).","capabilities":["Send private message to a single WhatsApp user","Send group message to a WhatsApp group"],"authentication":"Webhook URL and Secret Key (create DrWally credentials in n8n after generating Webhook URL and Secret Key in your DrWally account)","commonUseCases":["Send transactional notifications (order updates, confirmations) to customers via WhatsApp","Send appointment reminders or alerts to individual users","Broadcast announcements or updates to WhatsApp groups","Integrate automated customer support messages into workflows"],"limitations":["Only two operations documented: send private message and send group message (no other API actions described in the README)","Requires a DrWally account and WhatsApp for Business connection plus webhook generation before use","README does not mention support for media messages, message templates, scheduling, status delivery receipts, or message history retrieval","Requires n8n version >= 2.1.5"],"relatedNodes":["Webhook (to receive/respond to incoming events)","HTTP Request (for custom API calls or supplemental API interactions)"]}


node_type: n8n-nodes-phacet-official.phacet
package_name: n8n-nodes-phacet-official
display_name: Phacet
description: Interact with Phacet API to manage spreadsheet data
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: phacetlabs
author_github_url: https://github.com/spx-software/n8n-phacet-official.git
npm_package_name: n8n-nodes-phacet-official
npm_version: 0.2.1
community_fetched_at: 2026-02-19T14:41:52.685Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "row",
      "options": [
        {
          "name": "Row",
          "value": "row"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a row",
          "description": "Create a new row in a phacet"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a row",
          "description": "Updates an existing row in a specific AI Table with new cell values"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a row",
          "description": "Retrieve a row by its ID from a specific AI Table"
        },
        {
          "name": "Get Cell Download URL",
          "value": "getCellDownloadUrl",
          "action": "Get a cell download URL",
          "description": "Gets a temporary download URL for a file stored in a file-type column"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "row"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a row",
      "description": "Create a new row in a phacet"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a row",
      "description": "Updates an existing row in a specific AI Table with new cell values"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a row",
      "description": "Retrieve a row by its ID from a specific AI Table"
    },
    {
      "name": "Get Cell Download URL",
      "value": "getCellDownloadUrl",
      "action": "Get a cell download URL",
      "description": "Gets a temporary download URL for a file stored in a file-type column"
    }
  ]

npm_readme:
  # n8n-nodes-phacet

  ![Phacet Logo](https://raw.githubusercontent.com/spx-software/n8n-phacet-official/main/nodes/Phacet/phacet.svg)

  This is an n8n community node for [Phacet](https://phacetlabs.com), a powerful AI-driven spreadsheet platform. It allows you to upload files and manage spreadsheet data directly from 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.

  ### Community Nodes (n8n Cloud & Self-hosted)

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-phacet-official`
  4. Select **Install**

  Once installed, the Phacet node will be available in your node palette.

  ## Operations

  ### File Operations
  - **Upload**: Upload PDF files to Phacet for processing

  ### Row Operations
  - **Create**: Create new rows in Phacet spreadsheets with dynamic column mapping

  ## Credentials

  You need a Phacet API key to use this node.

  ### Getting your Phacet API Key

  1. Log in to your [Phacet dashboard](https://app.phacetlabs.com)
  2. Go to **Settings** or **API Settings**
  3. Generate a new API key
  4. Copy the API key

  ### Setting up the credential in n8n

  1. In n8n, create a new **Phacet API** credential
  2. Enter your API key in the **API Key** field
  3. Save the credential

  ## Compatibility

  - **n8n version**: 1.0.0 or later
  - **Node version**: 18.0.0 or later

  ## Usage

  ### Upload Files

  Use the **Upload** operation to send PDF files to Phacet:

  1. Add the Phacet node to your workflow
  2. Select **File** as the resource
  3. Select **Upload** as the operation
  4. Configure your file input (usually from a previous node)
  5. The node returns the uploaded file information including the file ID

  ### Create Rows

  Use the **Create** operation to add new rows to your Phacet spreadsheets:

  1. Add the Phacet node to your workflow
  2. Select **Row** as the resource
  3. Select **Create** as the operation
  4. Choose your **Phacet** from the dynamic dropdown
  5. Choose your **Session** from the dynamic dropdown (based on selected phacet)
  6. Map your data to **Columns** using the dynamic column selector
  7. The node returns the created row information

  ### Dynamic Dropdowns

  This node features intelligent dynamic dropdowns that:
  - Load your available phacets automatically
  - Show sessions based on your selected phacet
  - Display column names (not just IDs) for easy mapping
  - Update in real-time as you make selections

  ## Example Workflows

  ### PDF Processing Pipeline
  ```
  Email Trigger → Extract Attachments → Phacet Upload → Create Row with File ID
  ```

  ### Data Import Workflow
  ```
  HTTP Request → JSON Processing → Phacet Create Row → Notification
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Phacet API Documentation](https://docs.phacetlabs.com/reference/authentication-1)
  - [Phacet Platform](https://phacetlabs.com)

  ## License

  [MIT](LICENSE.md)

  ---

  **Developed by [Phacet Labs](https://phacetlabs.com)**

ai_documentation_summary:
  {"purpose":"Connect n8n workflows to the Phacet API to upload PDF files for AI processing and to create rows in Phacet spreadsheets with dynamic column mapping.","capabilities":["Upload PDF files to Phacet (returns uploaded file information including file ID)","Create new rows in Phacet spreadsheets with dynamic column mapping","Dynamic dropdowns that load available phacets, sessions (based on selected phacet), and column names for easy mapping","Return created row information to use later in workflows"],"authentication":"API key required (Phacet API Key configured in n8n as a Phacet API credential)","commonUseCases":["PDF processing pipeline: Extract attachments → Phacet Upload → Create row with file ID","Data import: HTTP request/JSON processing → Phacet Create Row → Notification","Automatically ingest documents into spreadsheet rows with mapped columns","Attach processed document IDs to records in downstream workflow steps"],"limitations":["File upload is described for PDF files only","Exposed operations are limited to File Upload and Row Create (no explicit support in README for update, delete, or row listing operations)","Requires a Phacet account and API key to use dynamic dropdowns and API operations","Compatibility constraints: n8n version 1.0.0 or later and Node version 18.0.0 or later"],"relatedNodes":[]}


node_type: @lnkbio/n8n-nodes-lnkbio.lnkBio
package_name: @lnkbio/n8n-nodes-lnkbio
display_name: Lnk.Bio
description: Create and manage links on Lnk.Bio
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: lnkbiodevs
author_github_url: https://github.com/gimucco/n8n-nodes-lnkbio.git
npm_package_name: @lnkbio/n8n-nodes-lnkbio
npm_version: 0.2.2
community_fetched_at: 2026-02-19T14:41:52.686Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Link",
          "value": "create",
          "action": "Create a new link",
          "description": "Create a new Lnk"
        },
        {
          "name": "Delete Link",
          "value": "delete",
          "action": "Delete an existing link",
          "description": "Delete an existing Lnk"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Link",
      "value": "create",
      "action": "Create a new link",
      "description": "Create a new Lnk"
    },
    {
      "name": "Delete Link",
      "value": "delete",
      "action": "Delete an existing link",
      "description": "Delete an existing Lnk"
    }
  ]

npm_readme:
  # n8n-nodes-lnkbio

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

  Lnk.Bio is a linkinbio service used by more than 1.5M creators to manage their social media links.

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

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

  ## Installation

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

  ## Operations

  Lnk.Bio only support 2 Actions: Create a Lnk, and Delete a Lnk.

  There are no triggers, as Lnk.Bio is considered output-only when it comes to automation services.

  ## Credentials

  You need a Client ID and Client Secret from Lnk.Bio to correctly authenticate your API calls.

  1. Register a free account from https://lnk.bio/signup
  2. Verify your email
  3. Navigate to Tools => Developers/API
  4. Create a new Public App to retrieve the Client ID and Client Secret.

  Do note that if you're only looking to automate your own Lnk.Bio account, you won't need to go through app review.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Lnk.Bio help site](https://help.lnk.bio)
  * [Lnk.Bio API specs](https://api.lnk.bio)

  ## Version history

  * 0.2.2 - Added scheduled_from and scheduled_to parameters to align with the latest version of the Lnk.Bio APIs. The new parameters allow users to schedule links in advance and/or set an expiration date.

  * 0.1.9 - Add pairedItem to response handling in LnkBio node

  * 0.1.7 - Updated deprecated requestOAuth2 to httpRequestWithAuthentication; Implemented continueOnFail(); Removed includeCredentialsOnAuthorization and bodyFormat;

  * 0.1.5 - Credentials fix

  * 0.1.3 - Credentials fix

  * 0.1.2 - Lint Fixes

  * 0.1.0 - initial version

ai_documentation_summary:
  {"purpose":"Provide n8n workflow actions to create and delete links on Lnk.Bio, allowing automation of link-in-bio management (including scheduling/expiry) from n8n.","capabilities":["Create a Lnk (create a link entry on Lnk.Bio)","Delete a Lnk","Support scheduling parameters (scheduled_from and scheduled_to) to schedule activation and expiration of links","Output-only integration (no trigger nodes provided)"],"authentication":"Client ID and Client Secret required — register a Public App in Lnk.Bio (Tools => Developers/API) to obtain credentials for authenticating API calls.","commonUseCases":["Automate creating new Lnk.Bio links from content or social-posting workflows","Schedule links to go live or expire at specific times (using scheduled_from / scheduled_to)","Programmatically remove outdated or temporary links","Integrate Lnk.Bio link management into broader marketing or publishing automation"],"limitations":["Only supports two actions: Create and Delete (no read/list/update operations exposed)","No trigger nodes — considered output-only, cannot listen for Lnk.Bio events","Requires Client ID and Client Secret (app registration); public app review may be required for non-personal/multi-user integrations"],"relatedNodes":[]}


node_type: @wizaco/n8n-nodes-wiza.wiza
package_name: @wizaco/n8n-nodes-wiza
display_name: Wiza
description: Interact with Wiza API for contact enrichment
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: wizadev
author_github_url: https://github.com/WizaCo/n8n-nodes-wiza.git
npm_package_name: @wizaco/n8n-nodes-wiza
npm_version: 0.1.1
community_fetched_at: 2026-02-19T14:41:52.687Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "emailFinder",
      "options": [
        {
          "name": "Email Finder",
          "value": "emailFinder",
          "action": "Find verified work and personal email addresses for a contact using their name company information or linked in url",
          "description": "Find verified work and personal email addresses for a contact using their name, company information, or LinkedIn URL"
        },
        {
          "name": "Phone Finder",
          "value": "phoneFinder",
          "action": "Find mobile and direct dial phone numbers for a contact using their name company information or linkedin url",
          "description": "Find mobile and direct dial phone numbers for a contact using their name, company information, or LinkedIn URL"
        },
        {
          "name": "LinkedIn Profile Finder",
          "value": "linkedinFinder",
          "action": "Find contact linkedin profile url and key details such as job title company and location using their name company or email address",
          "description": "Find a contact's LinkedIn profile URL and key details—such as job title, company, and location—using their name, company, or email address"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Email Finder",
      "value": "emailFinder",
      "action": "Find verified work and personal email addresses for a contact using their name company information or linked in url",
      "description": "Find verified work and personal email addresses for a contact using their name, company information, or LinkedIn URL"
    },
    {
      "name": "Phone Finder",
      "value": "phoneFinder",
      "action": "Find mobile and direct dial phone numbers for a contact using their name company information or linkedin url",
      "description": "Find mobile and direct dial phone numbers for a contact using their name, company information, or LinkedIn URL"
    },
    {
      "name": "LinkedIn Profile Finder",
      "value": "linkedinFinder",
      "action": "Find contact linkedin profile url and key details such as job title company and location using their name company or email address",
      "description": "Find a contact's LinkedIn profile URL and key details—such as job title, company, and location—using their name, company, or email address"
    }
  ]

npm_readme:
  # n8n-nodes-wiza

  An n8n community node for integrating with the [Wiza](https://wiza.co) contact enrichment API. Find email addresses, phone numbers, and LinkedIn profiles for your prospects using multiple data sources.

  ![Wiza Logo](https://wiza.co/favicon.png)

  ## Features

  ### 🔍 **Email Finder**
  Find verified work and personal email addresses using:
  - LinkedIn profile URLs
  - Contact details (name + company/domain)
  - Multiple data points for best results

  ### 📞 **Phone Finder**
  Find mobile and direct dial phone numbers using:
  - Email addresses
  - LinkedIn profile URLs  
  - Contact details (name + company/domain)
  - Multiple data points for best results

  ### 💼 **LinkedIn Profile Finder**
  Find LinkedIn profiles and extract key details using:
  - Email addresses
  - LinkedIn URLs (for enhanced profile data)
  - Contact details (name + company/domain)
  - Multiple data points for best results

  ## Installation

  ### Community Nodes (Recommended)

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

  ### Manual Installation

  ```bash
  # In your n8n root directory
  npm install n8n-nodes-wiza
  ```

  ### Docker

  ```bash
  # Using environment variable
  N8N_NODES_INCLUDE=n8n-nodes-wiza

  # Or in docker-compose.yml
  environment:
    N8N_NODES_INCLUDE: "n8n-nodes-wiza"
  ```

  ## Setup

  ### 1. Get Your API Key

  1. Sign up at [wiza.co](https://wiza.co)
  2. Navigate to **Settings > API** 
  3. Generate your API key

  ### 2. Configure Credentials

  1. In n8n, go to **Credentials**
  2. Click **Create New** 
  3. Search for **Wiza API**
  4. Enter your API key
  5. Click **Save**

  ## Usage

  ### Basic Email Finding

  ```json
  {
    "operation": "Email Finder",
    "inputType": "Contact Details", 
    "fullName": "John Doe",
    "company": "Acme Corp"
  }
  ```

  ### Phone Number Lookup

  ```json
  {
    "operation": "Phone Finder",
    "inputType": "Email",
    "email": "john@acme.com"
  }
  ```

  ### LinkedIn Profile Enhancement

  ```json
  {
    "operation": "LinkedIn Profile Finder", 
    "inputType": "All Fields",
    "email": "john@acme.com",
    "fullName": "John Doe",
    "company": "acme.com"
  }
  ```

  ## Input Types

  ### 📧 **Email**
  Provide an email address to find phone numbers or LinkedIn profiles.

  ### 🔗 **LinkedIn URL** 
  Provide a LinkedIn profile URL to find emails, phone numbers, or enhanced profile data.

  ### 👤 **Contact Details**
  Provide name and company/domain to find emails, phone numbers, or LinkedIn profiles.

  ### 🎯 **All Fields** *(Recommended)*
  Provide any combination of email, LinkedIn URL, name, and company for best results. All fields are optional - the more data you provide, the better the results.

  ## Response Data

  ### Email Finder Response
  ```json
  {
    "email": "john@acme.com",
    "email_type": "work", 
    "email_status": "valid",
    "name": "John Doe",
    "company": "Acme Corp",
    "title": "CEO",
    "linkedin_profile_url": "https://linkedin.com/in/johndoe"
  }
  ```

  ### Phone Finder Response  
  ```json
  {
    "phone_number": "+1234567890",
    "phone_status": "found",
    "mobile_phone": "+1234567890", 
    "name": "John Doe",
    "company": "Acme Corp",
    "email": "john@acme.com"
  }
  ```

  ### LinkedIn Profile Finder Response
  ```json
  {
    "linkedin_profile_url": "https://linkedin.com/in/johndoe",
    "name": "John Doe", 
    "title": "CEO",
    "company": "Acme Corp",
    "location": "New York, NY",
    "company_domain": "acme.com"
  }
  ```

  ## Configuration Options

  ### **Timeout**
  - **Default**: 300 seconds (5 minutes)
  - **Description**: Maximum time to wait for enrichment completion
  - **Range**: 30-600 seconds

  ### **Email Type** *(Email Finder only)*
  - **Work**: Professional emails (john@company.com)
  - **Personal**: Personal emails (john.doe@gmail.com) 
  - **Any**: Both work and personal emails

  ## Error Handling

  The node handles various error scenarios:

  - **Invalid API Key**: Check your credentials
  - **Rate Limiting**: Automatic retry with backoff
  - **Timeout**: Enrichment took too long to complete
  - **No Results**: No data found for the provided input
  - **Invalid Input**: Missing required fields or invalid format

  ## Workflow Examples

  ### Lead Enrichment Pipeline
  ```
  Webhook → Wiza Email Finder → Wiza Phone Finder → CRM Update
  ```

  ### LinkedIn Outreach Prep
  ```
  CSV Import → Wiza LinkedIn Finder → Message Personalization → LinkedIn Automation
  ```

  ### Data Validation Flow
  ```
  Database Query → Wiza Email Finder → Email Validation → Clean Database Update
  ```

  ## Support

  - **Documentation**: [wiza.co/api-docs](https://wiza.co/api-docs)
  - **Issues**: [GitHub Issues](https://github.com/WizaCo/n8n-nodes-wiza/issues)
  - **Wiza Support**: hello@wiza.com

  ## License

  [MIT](LICENSE.md)

  ## Contributing

  Contributions are welcome! Please read our [contributing guidelines](CODE_OF_CONDUCT.md) and submit pull requests to the main repository.

  ---

  Made with ❤️ by the Wiza team

ai_documentation_summary:
  {"purpose":"Provides contact enrichment via the Wiza API — find and verify emails, phone numbers, and LinkedIn profiles for prospects using LinkedIn URLs, emails, or name+company inputs.","capabilities":["Email Finder — locate verified work/personal emails from LinkedIn URLs, name+company (contact details), or other inputs","Phone Finder — locate mobile and direct-dial phone numbers using email, LinkedIn URL, or contact details","LinkedIn Profile Finder — find or enhance LinkedIn profiles and extract profile fields (name, title, company, location, company_domain, linkedin_profile_url)","Supports multiple input types: Email, LinkedIn URL, Contact Details (name + company/domain), or All Fields (combined inputs)","Configurable options: timeout (30–600 seconds) and email type selection (work/personal/any)","Structured JSON responses including status fields (email_status, phone_status), contact metadata (title, company, location) and profile URLs","Error handling: invalid API key detection, automatic retry/backoff for rate limiting, timeout detection, and 'no results' reporting"],"authentication":"API key required (Wiza API key configured in n8n credentials)","commonUseCases":["Lead enrichment pipeline (e.g., Webhook → Wiza Email Finder → Wiza Phone Finder → CRM update)","LinkedIn outreach preparation (e.g., CSV import → Wiza LinkedIn Finder → message personalization → LinkedIn automation)","Data validation and cleanup (e.g., database query → Wiza Email Finder → email validation → update records)"],"limitations":["Requires a valid Wiza account and API key","Results quality depends on input data — sparse input may return no results","Enrichment can time out (configurable, but limited to 30–600 seconds)","Subject to Wiza API rate limits and quotas (though node implements retry/backoff)"],"relatedNodes":["Webhook","CSV import / file-read nodes","CRM update nodes (e.g., Salesforce, HubSpot)","LinkedIn automation nodes","Database query nodes"]}


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

updated_at: 2026-02-19 14:41:52
author_name: parseur
author_github_url: https://github.com/parseur/parseur-n8n-node.git
npm_package_name: n8n-nodes-parseur
npm_version: 0.0.4
community_fetched_at: 2026-02-19T14:41:52.688Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # Parseur n8n Node

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

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

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


  ## About

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

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

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

  ## Operations

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

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


  ## Installation

  ### Install from npm

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

  ### Install from source

  1. Install dependencies

  ```bash
  brew install pnpm
  pnpm setup
  source ~/.zshrc
  ```

  2. Clone and build the node

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

  3. Set up a local n8n instance

  ```bash
  mkdir <n8n>
  cd <n8n>
  pnpm init
  pnpm add sqlite3
  pnpm approve-builds  # Needed for sqlite3 to complete install
  pnpm add n8n
  pnpm approve-builds  # Needed for n8n to complete install (select all packages, confirm and press Enter)
  pnpm exec n8n
  ```

  4. Link the Parseur node to n8n

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

  5. Restart n8n and you will see Parseur Trigger available.

  ```bash
  cd <n8n>
  pnpm exec n8n
  ```

  ## Credentials

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

  ### API Key

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

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

  In n8n:

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

  ### Webhook Token

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

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

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

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

  ## Compatibility

  Compatible with n8n v1.91.2.

  ## Resources

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

  ## Version history

  #### v0.0.1
  Initial release

  ## Contributing

  We welcome contributions and ideas!

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

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Trigger n8n workflows on Parseur webhook events and allow uploading documents or text to a Parseur mailbox via the Parseur API.","capabilities":["Trigger workflows via webhook for Parseur events (document.processed, document.processed.flattened, document.template_needed, document.export_failed, table.processed, table.processed.flattened)","Upload File: send binary files (PDF, EML, etc.) to a Parseur Mailbox","Upload Text: send plain text or HTML content as a document to a Mailbox","Webhook verification using a Webhook Token (expects X-Parseur-Token header)","Authenticate API requests using a Parseur API Key (credential 'Parseur API' in n8n)"],"authentication":"API key required for API requests; additionally requires a Webhook Token to validate incoming webhooks (sent in X-Parseur-Token header)","commonUseCases":["Start workflows when Parseur finishes processing a document to route extracted structured data","Ingest parsed table rows into databases or third-party services when table.processed events arrive","Programmatically upload PDFs, emails, or other files to a Parseur mailbox","Send plain or HTML content to Parseur as documents via API","Trigger alerts, retries, or human review when processing fails (document.template_needed or document.export_failed)"],"limitations":["Compatibility declared for n8n v1.91.2 (may require that or verification against other versions)"],"relatedNodes":[]}


node_type: @woztell-sanuker/n8n-nodes-woztell-sanuker.woztellTrigger
package_name: @woztell-sanuker/n8n-nodes-woztell-sanuker
display_name: WOZTELL Trigger
description: Handle WOZTELL events via webhooks
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: krisatwoztell
author_github_url: https://github.com/Woztell/n8n-nodes-woztell-sanuker.git
npm_package_name: @woztell-sanuker/n8n-nodes-woztell-sanuker
npm_version: 0.1.13
community_fetched_at: 2026-02-19T14:41:52.688Z
ai_summary_generated_at: 2026-02-19 16:43:57
npm_readme:
  # n8n-nodes-woztell-sanuker

  Welcome to our WOZTELL n8n nodes, for easier [WOZTELL](https://woztell.com/) integration within your n8n workflows, please read:

  *  [Product Features](#product-features)
  *  [In case you don't have the n8n](#in-case-you-dont-have-the-n8n)
  *  [Sign up WOZTELL and WhatsApp Business API for Free](#sign-up-woztell-and-whatsapp-business-api-for-free)
  *  [Installation](#installation)
  *  [Credentials](#credentials)
  *  [Build automation with WOZTELL](#build-automation-with-woztell)
  *  [Triggers and Nodes](#triggers-and-nodes)
  *  [Contact](#contact)
  *  [About Us](#about-us)
  *  [Resources](#resources)


  ## Product Features

  * **Webhook**: Receive all WhatsApp, Facebook Messenger, Instagram, WebChat, and website messages in WOZTELL inbox in real time.

  * **Send Messages**: Send messages or approved message templates to target customers via WhatsApp Business API.

  * **Chatbot Forwarding**: Route customer conversations to WOZTELL chatbot for autoreply.

  * **Full WhatsApp Message Type Support**: Support all business message types and conversation categories available on WhatsApp and Facebook Messenger.

  * **Member Search**: Batch query WOZTELL user information using Member Tags.

  * **OpenAPI Information Query**: Directly query and update user profiles, conversation histories, and related data on WOZTELL platform via OpenAPI.


  ## In case you don't have the n8n

  Connect WOZTELL on n8n | Unlock AI-powered WhatsApp automation in just a few clicks. Easily build no-code workflows on WhatsApp, Messenger, Instagram, and WebChat by connecting WOZTELL with thousands of n8n integrations. Automate personalized broadcasts, conversations, and inbox management, fully powered by WOZTELL’s OpenAPI and GenAI engine.


  ## Sign up WOZTELL and WhatsApp Business API for Free

  You can now create a WOZTELL account and open up a WhatsApp Business API account, completely for free.

  1.  Go to the registration link: https://platform.woztell.com/signup?lang=en&utm_campaign=plugin-n8n&utm_medium=plugin-n8n&utm_source=N8N

  2.  Fill in personal and company details and verify your email.

      ![register2](https://store.sanuker.cn/nn/images/register2.png)

      ![register3](https://store.sanuker.cn/nn/images/register3.png)

  3.  Once you signed up, you will be directed to the platform homepage. There, you can register a WhatsApp Business API account for free following [https://doc.woztell.com/docs/procedures/basic-whatsapp-chatbot-setup/standard-procedures-wa-connect-waba/](https://doc.woztell.com/docs/procedures/basic-whatsapp-chatbot-setup/standard-procedures-wa-connect-waba/) or  use the buttons on the top right of the homepage to chat with our sales team or book a demo session.

      ![register4](https://store.sanuker.cn/nn/images/register4.png)

  ## Installation

  Install WOZTELL community node package in your n8n

  1.	Sign in to n8n with admin access
  2.	Go to **Settings** > **Community Nodes**
  3.	Select **Install**
  4.	Copy and paste the n8n package name @woztell-sanuker/n8n-nodes-woztell-sanuker

  ```
  @woztell-sanuker/n8n-nodes-woztell-sanuker
  ```

  <img src="https://store.sanuker.cn/nn/images/image-20250826180723230.png" alt="image-20250826180723230" style="zoom:50%;" />

  5.  Click **Install**. n8n will now download the package and you may return to n8n to use.

  Learn more about installation from  [https://docs.n8n.io/integrations/community-nodes/installation/gui-install/](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/)



  ## Credentials

  Before you begin using our n8n plugin, you will need to obtain your API Credential information from the WOZTELL Platform. These credentials serve as the essential authentication keys for accessing the WOZTELL Product API. Please refer to the documentation linked below to acquire the appropriate credential according to the required permission level, and then enter this information into the WOZTELL n8n Credential configuration.

  1.  Open **Credential**

  ![image-20250829102707280](https://store.sanuker.cn/nn/images/image-20250829102707280.png)

  2.  Create credential by searching **WOZTELL**

  <img src="https://store.sanuker.cn/nn/images/image-20250829122336781.png" alt="image-20250829122336781" style="zoom:50%;" />

  3.  Login your WOZTELL account and open [**https://platform.woztell.com/settings/accesstokens?lang=en**](https://platform.woztell.com/settings/accesstokens?lang=en), and enable the **channel:list**, **botapi:sendResponses**, and **bot:redirectMemberToNode** permissions.

  4.  For more functions you need, please check the document [**https://doc.woztell.com/docs/documentations/settings/access-token/**](https://doc.woztell.com/docs/documentations/settings/access-token/)

  5.  Generate the access token

  6.  For more details on access token, please refer to this [https://doc.woztell.com/docs/documentations/settings/access-token](https://doc.woztell.com/docs/documentations/settings/access-token).

      ![image-20250829103010464](https://store.sanuker.cn/nn/images/image-20250829103010464.png)

  7.  Fill in access token and **Save**

      ![image-20250829103034574](https://store.sanuker.cn/nn/images/image-20250829103034574.png)

      

  ## Build automation with WOZTELL

  #### Create a n8n workflow

  ![image-20250829121753114](https://store.sanuker.cn/nn/images/image-20250829121753114.png)

  #### Open the nodes panel

  ![image-20250829121645155](https://store.sanuker.cn/nn/images/image-20250829121645155.png)

  #### Search WOZTELL

  <img src="https://store.sanuker.cn/nn/images/image-20250829121853114.png" alt="image-20250829121853114" style="zoom:50%;" />



  ## Triggers and Nodes

  #### Overview

  By searching the keyword **“WOZTELL”** in the sidebar, you can access the list of available n8n nodes and triggers.

  <img src="https://store.sanuker.cn/nn/images/image-20250829122639889.png" alt="image-20250829122639889" style="zoom:50%;" />

  Within this list, you will find all nodes and triggers developed by WOZTELL for n8n. You may directly drag and drop the required node or trigger into the workflow designer to make it part of your workflow.

  -  **Triggers**: These nodes enable you to receive all webhook message data coming from WOZTELL products.
  -  **BOT API Actions**: These nodes provide your workflow with the ability to send messages and perform data operations through WOZTELL products.
  -  **Member Actions**: These nodes allow you to efficiently manage all member information stored within WOZTELL products.



  #### Webhook: On WOZTELL Message received

  Through the **WOZTELL Trigger** node, you can receive webhook messages from any WOZTELL Channel, including various types such as *Inbound*, *Outbound*, and *Member Update*. Each message is delivered in JSON format and contains comprehensive data along with the associated event information.

  ![image-20250829122535949](https://store.sanuker.cn/nn/images/image-20250829122535949.png)

  Within this node, you can specify the corresponding **Webhook Path** and configure filtering options based on **Channel ID** and **Event Type**, ensuring that the information you receive is properly filtered and can be utilized effectively.

  Learn more from: [https://doc.woztell.com/docs/documentations/channels/channels-webhook](https://doc.woztell.com/docs/documentations/channels/channels-webhook)

  ![image-20250826184406024](https://store.sanuker.cn/nn/images/image-20250826184406024.png)



  #### Node: Send Response

  Using the **Send Response** node, you can directly send messages from your WhatsApp Business number to the target customer’s WhatsApp account via the WOZTELL BotAPI. All message content can be placed directly within the Response data.

  Once the message is sent, you will receive the corresponding API result, which allows subsequent nodes to continue processing the data.

  For more details, please refer to the official WOZTELL product documentation: [https://doc.woztell.com/docs/reference/bot-api-reference#send-responses](https://doc.woztell.com/docs/reference/bot-api-reference#send-responses)

  ![sendResponse](https://store.sanuker.cn/nn/images/sendResponse.png)



  #### Node: Redirect member to node

  With the **Redirect Member to Node** node, you no longer need to manually construct complex JSON data for sending messages. Instead, you simply pass the relevant WOZTELL information to a **Chatbot Tree** node, and the WOZTELL Chatbot will handle the subsequent actions for you — such as sending WhatsApp conversation message templates.

  This node can be understood as a memory pointer: it redirects the current operation to the WOZTELL Chatbot. You do not need to prepare complicated data structures; you only need to initiate a request to the BotAPI.

  For customers who already have chatbot designs running on the WOZTELL platform, this provides an excellent way to integrate with n8n.

  Learn more from: [https://doc.woztell.com/docs/reference/bot-api-reference#redirect-member-to-node](https://doc.woztell.com/docs/reference/bot-api-reference#redirect-member-to-node)

  ![redirectMemberToNode](https://store.sanuker.cn/nn/images/redirectMemberToNode.png)

  #### Node: Send WhatsApp Template message

  According to WhatsApp’s official business messaging guidelines, when contacting unfamiliar WhatsApp numbers or numbers outside the 24-hour session window, you must first send a **WhatsApp Template Message**.

  Our n8n plugin significantly simplifies the complexity of working with WhatsApp Template Messages. The current node can automatically generate the required message content based on templates that have already been created and approved. You only need to complete the corresponding form fields, and the Template Message can be sent directly.

  Learn more from: [https://doc.woztell.com/docs/integrations/whatsapp/wa-message-types#whatsapp-message-template](https://doc.woztell.com/docs/integrations/whatsapp/wa-message-types#whatsapp-message-template)

  ![image-20250826185818626](https://store.sanuker.cn/nn/images/image-20250826185818626.png)



  ## Contact

  We sincerely appreciate your strong support and understanding of our current n8n plugin. If you are interested in learning more about our products or services, you may also reach us through the following channels:

  *  WOZTELL product team: [https://woztell.com](https://woztell.com)
  *  Sanuker service team: [https://sanuker.com](https://sanuker.com)
  *  Email: [kris@woztell.com](mailto:kris@woztell.com)
  *  Email: [hello@woztell.com](mailto:hello@woztell.com)
  *  WOZTELL Customer Success WhatsApp: [https://wa.me/14157959796](https://wa.me/14157959796)
  *  Sanuker Service WhatsApp: [https://wa.me/85254432330](https://wa.me/85254432330)



  ## About Us

  **Sanuker**

  Sanuker is a leading AI Business Messaging Consulting firm, offering professional business messaging services and AI chatbot solutions tailored for enterprises. We distinguish ourselves in the market through our innovative approach to messaging designs and strategies, especially across Meta platforms - WhatsApp, Messenger, Instagram.

  As a trusted partners of AWS, HSBC Business Go, and Meta, we serve 10K+ clients across 25 countries through our WOZTELL Conversational Platform, empowering businesses to qualify leads and boost conversions.

  **WOZTELL**

  WOZTELL is your all-in-one platform to seamlessly create, manage, and deploy chatbots across WhatsApp, Messenger, Instagram, and Websites. Powered by cutting-edge GenAI engines, WOZTELL empowers you to execute personalized broadcasts, manage unlimited live chat agents, and integrate effortlessly with any third-party software via our robust OpenAPI.

  ## Resources

  - n8n Community Nodes, [https://docs.n8n.io/integrations/#community-nodes](https://docs.n8n.io/integrations/#community-nodes)
  - WOZTELL Platform documentation, [https://doc.woztell.com/](https://doc.woztell.com/)
  - WOZTELL Bot API, [https://doc.woztell.com/docs/reference/bot-api-reference](https://doc.woztell.com/docs/reference/bot-api-reference)
  - WOZTELL Open API, [https://doc.woztell.com/open-api-reference](https://doc.woztell.com/open-api-reference)
  - WOZTELL Webhook, [https://doc.woztell.com/docs/documentations/channels/channels-webhook](https://doc.woztell.com/docs/documentations/channels/channels-webhook)
  - WhatsApp Integration on Woztell: [https://doc.woztell.com/docs/integrations/whatsapp/wa-overview](https://doc.woztell.com/docs/integrations/whatsapp/wa-overview)
  - Facebook Messenger Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/facebook/fb-overview](https://doc.woztell.com/docs/integrations/facebook/fb-overview)
  - Instagram Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/instagram/ig-overview](https://doc.woztell.com/docs/integrations/instagram/ig-overview)
  - Webchat Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/web-chat/webchat-overview](https://doc.woztell.com/docs/integrations/web-chat/webchat-overview)

ai_documentation_summary:
  {"purpose":"Receive and handle WOZTELL platform events in n8n workflows via webhooks, enabling real‑time ingestion of messages and conversation events from WhatsApp, Messenger, Instagram, WebChat and website chat.","capabilities":["Receive incoming messages and events from WOZTELL via webhook (WhatsApp, Facebook Messenger, Instagram, WebChat, website)","Trigger n8n workflows on message or conversation events","Deliver raw WOZTELL event payloads to downstream nodes for processing, routing or logging"],"authentication":"API key required (WOZTELL access token — generate in WOZTELL platform and provide in n8n credentials; requires specific permissions such as channel:list, botapi:sendResponses, bot:redirectMemberToNode)","commonUseCases":["Start workflows when a customer sends a message on WhatsApp, Messenger, Instagram, WebChat or website","Automate replies or send approved templates by connecting the trigger to Send Message nodes","Forward incoming messages to a chatbot or human agent routing flow","Log incoming conversations or update external systems/CRMs using WOZTELL OpenAPI nodes"],"limitations":["Requires a WOZTELL access token with the appropriate permissions (channel:list, botapi:sendResponses, bot:redirectMemberToNode) before use","README is truncated and does not list node-specific configuration options or full event types supported in detail"],"relatedNodes":["WOZTELL Send Message (send messages / templates)","WOZTELL Member Search (batch query user info by tags)","WOZTELL OpenAPI / Info Query (query/update user profiles and conversation history)","WOZTELL Chatbot Forwarding (route conversations to chatbot)"]}


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

updated_at: 2026-02-19 14:41:52
author_name: skyvernnodejs
author_github_url: https://github.com/Skyvern-AI/skyvern-n8n.git
npm_package_name: n8n-nodes-skyvern
npm_version: 0.0.11
community_fetched_at: 2026-02-19T14:41:52.688Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Workflow",
          "value": "workflow"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    }
  ]

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

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

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

  # n8n-nodes-skyvern

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

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

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

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

  ## Installation

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

  ## Operations

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

  ## Credentials

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


  ## Resources

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

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

ai_documentation_summary:
  {"purpose":"Provides n8n workflow nodes to interact with Skyvern, allowing n8n workflows to call Skyvern's API to run and manage browser-based automation tasks and workflows.","capabilities":["Interact with Skyvern tasks (Task operation)","Interact with Skyvern workflows (Workflow operation)","Authenticate calls using a Skyvern API token","Configure the Skyvern service endpoint (cloud or self-host Base URL)"],"authentication":"API key (Skyvern API token) required via node credentials; Base URL configurable for cloud or self-host environments","commonUseCases":["Trigger or invoke Skyvern tasks from an n8n workflow","Start or interact with Skyvern workflows as part of automation pipelines","Integrate Skyvern's browser-based automation (LLM + vision) into broader n8n automations","Use n8n to orchestrate and monitor Skyvern-driven website automation"],"limitations":["README provides only high-level operation names (Task, Workflow) without granular operation/parameter details—refer to Skyvern docs or the integration code for specifics","Node is a community node and requires following the n8n community nodes installation process","Authentication is limited to API token (no OAuth documented)"],"relatedNodes":[]}


node_type: n8n-nodes-outplay.outplay
package_name: n8n-nodes-outplay
display_name: Outplay
description: Interact with Outplay API
category: CRM
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: pj_pratik
author_github_url: https://github.com/outplay-hq/
npm_package_name: n8n-nodes-outplay
npm_version: 0.2.14
community_fetched_at: 2026-02-19T14:41:52.689Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "prospect",
      "options": [
        {
          "name": "Prospect",
          "value": "prospect"
        },
        {
          "name": "Scheduler",
          "value": "scheduler"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "save",
      "options": [
        {
          "name": "Save Prospect",
          "value": "save",
          "action": "Save a prospect",
          "description": "Save a new prospect"
        },
        {
          "name": "Get Prospect",
          "value": "get",
          "action": "Get a prospect",
          "description": "Get a prospect by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prospect"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a scheduler lead",
          "description": "Create a scheduler lead with meeting type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scheduler"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Save Prospect",
      "value": "save",
      "action": "Save a prospect",
      "description": "Save a new prospect"
    },
    {
      "name": "Get Prospect",
      "value": "get",
      "action": "Get a prospect",
      "description": "Get a prospect by ID"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a scheduler lead",
      "description": "Create a scheduler lead with meeting type"
    }
  ]

npm_readme:
  # n8n-nodes-outplay

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

  Outplay is a sales engagement platform that helps sales teams automate their outreach and manage prospects effectively.

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

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

  ## Installation

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

  ### Quick Install

  In your n8n instance, navigate to **Settings > Community Nodes** and search for `n8n-nodes-outplay`, then click install.

  Alternatively, install via npm in your n8n installation:

  ```bash
  npm install n8n-nodes-outplay
  ```

  ## Operations

  This package provides two nodes for interacting with Outplay:

  ### 1. Outplay Node (Actions)

  The Outplay node provides the following operations for managing prospects:

  #### Prospect Resource

  - **Save Prospect** - Create or update a prospect in Outplay
    - Required fields: Email, First Name, Last Name
    - Optional fields: Company, Designation, Phone, LinkedIn, Twitter, Facebook, City, State, Country, Timezone, Sequence Identifier
    - Support for custom fields and tags
    - Use this to add new prospects or update existing ones based on email

  - **Get Prospect** - Retrieve prospect details by ID
    - Required field: Prospect ID
    - Returns complete prospect information including all custom fields and tags

  ### 2. Outplay Trigger Node (Triggers)

  The Outplay Trigger node listens for real-time events from Outplay via webhooks:

  - **Mail Received** (Event ID: 4) - Triggers when an email is received from a prospect
  - **Prospect Created** (Event ID: 1) - Triggers when a new prospect is created in Outplay
  - **Prospect Updated** (Event ID: 3) - Triggers when a prospect's information is updated
  - **Prospect Opt-Out** (Event ID: 2) - Triggers when a prospect opts out of communications

  ## Credentials

  To use this node, you need an Outplay account with API access.

  ### Prerequisites

  1. Sign up for an [Outplay account](https://www.outplayhq.com/)
  2. Navigate to **Settings > API Settings** in your Outplay dashboard
  3. Generate your API credentials (Client ID and Client Secret)

  ### Authentication Setup

  This node uses API Key authentication with the following required fields:

  - **Location**: Your Outplay instance location (e.g., "US", "EU", "DEV")
    - This determines the API endpoint: `https://{location}-api.outplayhq.com/api/v1`
  - **Client ID**: Your Outplay API Client ID
  - **Client Secret**: Your Outplay API Client Secret

  The credentials are authenticated using custom headers (`X-CLIENT-SECRET`) and query parameters (`client_id`).

  ### Setting Up Credentials in n8n

  1. In your n8n workflow, click on the Outplay node
  2. Click on the **Credential to connect with** dropdown
  3. Click **Create New Credential**
  4. Enter your Outplay API credentials:
     - Location (e.g., "US", "EU")
     - Client ID
     - Client Secret
  5. Click **Save**

  ## Usage

  ### Example Workflow: Save a New Prospect

  1. Add an **Outplay** node to your workflow
  2. Select **Prospect** as the resource
  3. Select **Save Prospect** as the operation
  4. Fill in the required fields:
     - Email: `john.doe@example.com`
     - First Name: `John`
     - Last Name: `Doe`
  5. Optionally add additional fields like Company, Designation, Phone, etc.
  6. Add tags or custom fields as needed
  7. Execute the node to create the prospect in Outplay

  ### Example Workflow: Listen for New Prospects

  1. Add an **Outplay Trigger** node to your workflow
  2. Select **Prospect Created** as the event
  3. The trigger will automatically register a webhook with Outplay
  4. When a new prospect is created in Outplay, the workflow will be triggered
  5. Use subsequent nodes to process the prospect data (e.g., send notifications, update CRM, etc.)

  ### Example Workflow: Get Prospect Details

  1. Add an **Outplay** node to your workflow
  2. Select **Prospect** as the resource
  3. Select **Get Prospect** as the operation
  4. Enter the Prospect ID
  5. Execute the node to retrieve the prospect's complete information

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Tested with n8n version**: 1.119.1
  - **n8n API version**: 1

  ## Development

  This node was built using the official n8n-node-dev tool and follows all n8n community node guidelines:

  - ✅ No external dependencies
  - ✅ MIT License
  - ✅ TypeScript implementation
  - ✅ Passes n8n linter (`npm run lint`)
  - ✅ English language only
  - ✅ No environment variable or file system access
  - ✅ Proper error handling and validation

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Outplay API Documentation](https://support.outplay.ai/#/article/3749)
  * [Outplay Website](https://www.outplayhq.com/)
  * [GitHub Repository](https://github.com/outplay/n8n-nodes-outplay)

  ## License

  [MIT](LICENSE.md)

  ## Support

  For issues or questions:
  - Create an issue on [GitHub](https://github.com/outplay-hq/n8n-nodes-outplay/issues)
  - Contact Outplay support at [support.outplay.ai](https://support.outplay.ai/#/)

  ## Version History

  See [CHANGELOG.md](CHANGELOG.md) for version history and updates.

ai_documentation_summary:
  {"purpose":"Provide n8n nodes to interact with the Outplay sales engagement API—manage prospects (create/update/retrieve) and listen for real-time Outplay events via webhooks.","capabilities":["Save Prospect: create or update a prospect in Outplay (requires Email, First Name, Last Name; supports Company, Designation, Phone, social links, location fields, Sequence Identifier)","Get Prospect: retrieve full prospect details by Prospect ID (includes custom fields and tags)","Support for custom fields and tags on prospects","Outplay Trigger (webhook) events: Mail Received (Event ID 4), Prospect Created (Event ID 1), Prospect Updated (Event ID 3), Prospect Opt-Out (Event ID 2)","Automatic webhook registration for triggers"],"authentication":"API-style credentials (Client ID and Client Secret). Provide Location (selects endpoint), Client ID, and Client Secret; authenticated via custom header X-CLIENT-SECRET and client_id query parameter.","commonUseCases":["Create or update prospect records in Outplay from forms, CRMs, or enrichment services","Fetch prospect details to enrich workflows or sync data into other systems","Trigger workflows on inbound prospect activity (new prospect, updates, opt-outs)","Trigger workflows when prospect emails are received to process or notify teams","Automate tagging or custom-field population when saving prospects"],"limitations":["Node only exposes Prospect resource operations (Save Prospect and Get Prospect); no list, search, or delete operations documented","Trigger events are limited to the four documented event types (Mail Received, Prospect Created, Prospect Updated, Prospect Opt-Out)","Requires an Outplay account with API access (Client ID/Client Secret) and knowledge of the instance location to determine the API endpoint","Uses custom header/query-parameter auth (no OAuth2 flow documented)"],"relatedNodes":["Outplay (Actions) node","Outplay Trigger (Trigger) node"]}


node_type: n8n-nodes-layerre.layerre
package_name: n8n-nodes-layerre
display_name: Layerre
description: Create templates and variants from Canva designs with Layerre
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-02-19 14:41:52
author_name: layerre
author_github_url: https://github.com/layerre/
npm_package_name: n8n-nodes-layerre
npm_version: 1.0.2
community_fetched_at: 2026-02-19T14:41:52.689Z
ai_summary_generated_at: 2026-02-19 16:43:57
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "template",
      "options": [
        {
          "name": "Template",
          "value": "template",
          "description": "Create and manage templates from Canva designs"
        },
        {
          "name": "Variant",
          "value": "variant",
          "description": "Create variants with layer overrides"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a template",
          "routing": {
            "request": {
              "url": "/template",
              "method": "POST"
            }
          },
          "description": "Create a new template from a Canva design URL"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a template",
          "routing": {
            "request": {
              "url": "=/template/{{$parameter.templateId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a template"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a template",
          "routing": {
            "request": {
              "url": "=/template/{{$parameter.templateId}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a template by ID with all its layers"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many templates",
          "routing": {
            "request": {
              "url": "/templates",
              "method": "GET"
            }
          },
          "description": "Retrieve a list of templates for the current user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a variant",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/template/{{$parameter.templateId}}/variant",
              "method": "POST"
            }
          },
          "description": "Create a new variant from a template with layer overrides"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a variant",
          "routing": {
            "request": {
              "url": "=/template/{{$parameter.templateId}}/variant/{{$parameter.variantId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a variant"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a variant",
          "routing": {
            "request": {
              "url": "=/template/{{$parameter.templateId}}/variant/{{$parameter.variantId}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a variant by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many variants",
          "routing": {
            "request": {
              "url": "=/template/{{$parameter.templateId}}/variants",
              "method": "GET"
            }
          },
          "description": "Retrieve a list of variants for a template"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "variant"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a template",
      "routing": {
        "request": {
          "url": "/template",
          "method": "POST"
        }
      },
      "description": "Create a new template from a Canva design URL"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a template",
      "routing": {
        "request": {
          "url": "=/template/{{$parameter.templateId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a template"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a template",
      "routing": {
        "request": {
          "url": "=/template/{{$parameter.templateId}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a template by ID with all its layers"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many templates",
      "routing": {
        "request": {
          "url": "/templates",
          "method": "GET"
        }
      },
      "description": "Retrieve a list of templates for the current user"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a variant",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/template/{{$parameter.templateId}}/variant",
          "method": "POST"
        }
      },
      "description": "Create a new variant from a template with layer overrides"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a variant",
      "routing": {
        "request": {
          "url": "=/template/{{$parameter.templateId}}/variant/{{$parameter.variantId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a variant"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a variant",
      "routing": {
        "request": {
          "url": "=/template/{{$parameter.templateId}}/variant/{{$parameter.variantId}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a variant by ID"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many variants",
      "routing": {
        "request": {
          "url": "=/template/{{$parameter.templateId}}/variants",
          "method": "GET"
        }
      },
      "description": "Retrieve a list of variants for a template"
    }
  ]

npm_readme:
  # n8n-nodes-layerre

  This is an n8n community node for [Layerre](https://layerre.com) - a platform for creating templates and variants from Canva designs.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Usage](#usage)  
  [Contributing](#contributing)  
  [License](#license)

  ## Installation

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

  ```bash
  npm install n8n-nodes-layerre
  ```

  ## Operations

  ### Template

  - **Create** - Create a new template from a Canva design URL
  - **Get** - Get a template by ID with all its layers
  - **Get Many** - List all templates for the current user
  - **Delete** - Delete a template

  ### Variant

  - **Create** - Create a new variant with layer overrides (text, images, colors, positions, etc.)
  - **Get** - Get a variant by ID
  - **Get Many** - List all variants for a template
  - **Delete** - Delete a variant

  ## Credentials

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

  1. Log in to your [Layerre account](https://layerre.com/app)
  2. Go to API Keys
  3. Create a new API key
  4. Copy the key (starts with `lyr_`)

  In n8n:
  1. Go to Credentials → Add Credential
  2. Search for "Layerre API"
  3. Paste your API key

  ## Usage

  ### Creating a Template from Canva

  1. Add the **Layerre** node to your workflow
  2. Select **Template** as the resource
  3. Select **Create** as the operation
  4. Paste your Canva share URL (e.g., `https://www.canva.com/design/...`)
  5. Execute the node

  The node will return the template with all extracted layers.

  ### Creating a Variant with Overrides

  1. Add the **Layerre** node to your workflow
  2. Select **Variant** as the resource
  3. Select **Create** as the operation
  4. Choose a template from the dropdown (dynamically loaded from your account)
  5. (Optional) Set variant dimensions (width/height) to override the template size
  6. Add layer overrides:
     - Select a layer from the dropdown (dynamically loaded from the selected template)
     - Configure override options:
       - **Text layers**: text content, color, font name, font size, font weight, italic, underline, text align, letter spacing, line spacing
       - **Image layers**: image URL, opacity, flip horizontal/vertical
       - **All layers**: position (x, y), size (width, height), rotation, color
  7. Execute the node

  The node will render the variant and return the image URL.

  ### Example: Bulk Image Generation

  ```
  [Spreadsheet] → [Loop Over Items] → [Layerre: Create Variant] → [Download Image]
  ```

  Use data from a spreadsheet to create personalized images at scale by mapping columns to layer overrides.

  ## Contributing

  Contributions are welcome! Here's how to get started:

  ### Development Setup

  1. Fork the repository on GitHub

  2. Clone your fork:
     ```bash
     git clone https://github.com/YOUR_USERNAME/n8n-nodes-layerre.git
     cd n8n-nodes-layerre
     ```

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

  4. Install n8n globally:
     ```bash
     npm install n8n -g
     ```

  5. Start development mode (runs n8n with the node loaded):
     ```bash
     npm run dev
     ```

  5. Make your changes and test in the n8n UI

  ### Building

  ```bash
  npm run build
  ```

  ### Linting

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

  ### Submitting Changes

  1. Create a feature branch (`git checkout -b feature/amazing-feature`)
  3. Commit your changes (`git commit -m 'Add amazing feature'`)
  4. Push to the branch (`git push origin feature/amazing-feature`)
  5. Open a Pull Request

  ## Resources

  - [Layerre Documentation](https://layerre.com/docs)
  - [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"Integrates Layerre into n8n to import Canva designs as templates and to create/manage rendered variants with layer-level overrides (text, images, colors, positions, etc.).","capabilities":["Create template from a Canva share URL (extracts all layers)","Get template by ID including all layers","List templates (Get Many) for the authenticated user","Delete a template","Create variant for a template with layer overrides","Get variant by ID","List variants for a template (Get Many)","Delete a variant","Specify variant dimensions (width/height) to override template size","Layer override options: text content, color, font name, font size, font weight, italic, underline, text align, letter spacing, line spacing"],"authentication":"API key required (Layerre API key; key starts with 'lyr_')","commonUseCases":["Import Canva designs into n8n as reusable templates","Generate personalized images at scale by mapping spreadsheet or looped data to layer overrides","Create variants with updated text, images, colors, positions, and sizes for A/B or multi-format outputs","Automate rendering and retrieval of generated images (image URL) for downstream processing","Manage templates and variants programmatically (list, get, delete)"],"limitations":[],"relatedNodes":[]}


