# nodes

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

updated_at: 2026-04-16 09:43:35
author_name: mudit-nedzo
author_github_url: https://github.com/mudit-nedzo/
npm_package_name: n8n-nodes-nedzo
npm_version: 1.0.18
community_fetched_at: 2026-04-16T09:43:35.860Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "call",
      "options": [
        {
          "name": "Agent",
          "value": "agent"
        },
        {
          "name": "Call",
          "value": "call"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Workspace",
          "value": "workspace"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Agent",
          "value": "create",
          "action": "Create Agent",
          "description": "Create a new agent within a workspace"
        },
        {
          "name": "Delete Agent",
          "value": "delete",
          "action": "Delete Agent",
          "description": "Delete agent. This action is permanent and can't be undone."
        },
        {
          "name": "Find Agent",
          "value": "find",
          "action": "Find Agent",
          "description": "Find and get an agent details"
        },
        {
          "name": "Update Agent",
          "value": "update",
          "action": "Update Agent",
          "description": "Updates an agent within a workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Make Phone Call",
          "value": "create",
          "action": "Make Phone Call",
          "description": "Creates an outbound phone call using Nedzo voice agent"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upsert",
      "options": [
        {
          "name": "Create/Update Contact",
          "value": "upsert",
          "action": "Create/Update Contact",
          "description": "Creates or updates a contact in a workspace"
        },
        {
          "name": "Delete Contact",
          "value": "delete",
          "action": "Delete Contact",
          "description": "Deletes a contact in a workspace"
        },
        {
          "name": "Find Contact",
          "value": "find",
          "action": "Find Contact",
          "description": "Gets a contact and all its information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Workspace",
          "value": "create",
          "action": "Create Workspace",
          "description": "Creates a workspace in an account"
        },
        {
          "name": "Delete Workspace",
          "value": "delete",
          "action": "Delete Workspace",
          "description": "Deletes a workspace. This action is permanent and can't be undone."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workspace"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Agent",
      "value": "create",
      "action": "Create Agent",
      "description": "Create a new agent within a workspace",
      "resource": "agent"
    },
    {
      "name": "Delete Agent",
      "value": "delete",
      "action": "Delete Agent",
      "description": "Delete agent. This action is permanent and can't be undone.",
      "resource": "agent"
    },
    {
      "name": "Find Agent",
      "value": "find",
      "action": "Find Agent",
      "description": "Find and get an agent details",
      "resource": "agent"
    },
    {
      "name": "Update Agent",
      "value": "update",
      "action": "Update Agent",
      "description": "Updates an agent within a workspace",
      "resource": "agent"
    },
    {
      "name": "Make Phone Call",
      "value": "create",
      "action": "Make Phone Call",
      "description": "Creates an outbound phone call using Nedzo voice agent",
      "resource": "call"
    },
    {
      "name": "Create/Update Contact",
      "value": "upsert",
      "action": "Create/Update Contact",
      "description": "Creates or updates a contact in a workspace",
      "resource": "contact"
    },
    {
      "name": "Delete Contact",
      "value": "delete",
      "action": "Delete Contact",
      "description": "Deletes a contact in a workspace",
      "resource": "contact"
    },
    {
      "name": "Find Contact",
      "value": "find",
      "action": "Find Contact",
      "description": "Gets a contact and all its information",
      "resource": "contact"
    },
    {
      "name": "Create Workspace",
      "value": "create",
      "action": "Create Workspace",
      "description": "Creates a workspace in an account",
      "resource": "workspace"
    },
    {
      "name": "Delete Workspace",
      "value": "delete",
      "action": "Delete Workspace",
      "description": "Deletes a workspace. This action is permanent and can't be undone.",
      "resource": "workspace"
    }
  ]

npm_readme:
  # n8n-nodes-nedzo

  This is an n8n community node for [Nedzo](https://nedzo.ai) - AI Voice Agent Automation Platform.

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

  ## Installation

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

  ### Community Nodes (Recommended)

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

  ### Manual Installation

  ```bash
  npm install n8n-nodes-nedzo
  ```

  ## Credentials

  This node requires Nedzo API credentials. You can obtain an API key from your [Nedzo dashboard](https://app.nedzo.ai).

  ## Operations

  ### Agent
  - **Create Agent** - Create a new agent within a workspace
  - **Find Agent** - Find and get an agent details
  - **Update Agent** - Updates an agent within a workspace
  - **Delete Agent** - Delete agent (permanent)

  ### Call
  - **Make Phone Call** - Creates an outbound phone call using Nedzo voice agent

  ### Contact
  - **Create/Update Contact** - Creates or updates a contact in a workspace
  - **Find Contact** - Gets a contact and all its information
  - **Delete Contact** - Deletes a contact in a workspace

  ### Workspace
  - **Create Workspace** - Creates a workspace in an account
  - **Delete Workspace** - Deletes a workspace (permanent)

  ## Documentation

  For detailed step-by-step instructions on using each operation, see the [full documentation](DOCUMENTATION.md).

  ## Compatibility

  Tested with n8n version 1.0.0 and above.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Nedzo API Documentation](https://docs.nedzo.ai)
  - [Nedzo Website](https://nedzo.ai)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of Nedzo AI Voice Agent features, allowing users to manage agents, contacts, and workspaces, as well as initiate outbound phone calls.","capabilities":["Create a new Nedzo agent","Find and retrieve agent details","Update an existing agent","Delete an agent permanently","Make outbound phone calls using Nedzo voice agents","Create or update contacts in a workspace","Retrieve contact information","Delete contacts from a workspace","Create a new workspace","Delete a workspace permanently"],"authentication":"API key required (obtained from Nedzo dashboard)","commonUseCases":["Automating outbound sales or support calls via AI voice agents","Managing customer contact records within the Nedzo platform","Orchestrating multi-agent workflows for customer interactions","Setting up dedicated workspaces for different client projects"],"limitations":["Requires valid Nedzo API credentials","Agent and workspace deletions are permanent and cannot be undone"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.webhook"]}


node_type: n8n-nodes-one-horizon.oneHorizon
package_name: n8n-nodes-one-horizon
display_name: One Horizon
description: Run One Horizon MCP tools from n8n
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: tijnvdaelen
author_github_url: https://github.com/onehorizonai/
npm_package_name: n8n-nodes-one-horizon
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:35.862Z
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "listPlannedWork",
      "options": [
        {
          "name": "Create Initiative",
          "value": "createInitiative"
        },
        {
          "name": "Create Todo",
          "value": "createTodo"
        },
        {
          "name": "Find Team Member",
          "value": "findTeamMember"
        },
        {
          "name": "List Blockers",
          "value": "listBlockers"
        },
        {
          "name": "List Bugs",
          "value": "listBugs"
        },
        {
          "name": "List Completed Work",
          "value": "listCompletedWork"
        },
        {
          "name": "List Initiatives",
          "value": "listInitiatives"
        },
        {
          "name": "List My Teams",
          "value": "listMyTeams"
        },
        {
          "name": "List Planned Work",
          "value": "listPlannedWork"
        },
        {
          "name": "My Work Recap",
          "value": "myWorkRecap"
        },
        {
          "name": "Raw Tool Call",
          "value": "rawToolCall"
        },
        {
          "name": "Report Bug",
          "value": "reportBug"
        },
        {
          "name": "Team Work Recap",
          "value": "teamWorkRecap"
        },
        {
          "name": "Update Bug",
          "value": "updateBug"
        },
        {
          "name": "Update Initiative",
          "value": "updateInitiative"
        },
        {
          "name": "Update Todo",
          "value": "updateTodo"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Initiative",
      "value": "createInitiative"
    },
    {
      "name": "Create Todo",
      "value": "createTodo"
    },
    {
      "name": "Find Team Member",
      "value": "findTeamMember"
    },
    {
      "name": "List Blockers",
      "value": "listBlockers"
    },
    {
      "name": "List Bugs",
      "value": "listBugs"
    },
    {
      "name": "List Completed Work",
      "value": "listCompletedWork"
    },
    {
      "name": "List Initiatives",
      "value": "listInitiatives"
    },
    {
      "name": "List My Teams",
      "value": "listMyTeams"
    },
    {
      "name": "List Planned Work",
      "value": "listPlannedWork"
    },
    {
      "name": "My Work Recap",
      "value": "myWorkRecap"
    },
    {
      "name": "Raw Tool Call",
      "value": "rawToolCall"
    },
    {
      "name": "Report Bug",
      "value": "reportBug"
    },
    {
      "name": "Team Work Recap",
      "value": "teamWorkRecap"
    },
    {
      "name": "Update Bug",
      "value": "updateBug"
    },
    {
      "name": "Update Initiative",
      "value": "updateInitiative"
    },
    {
      "name": "Update Todo",
      "value": "updateTodo"
    }
  ]

npm_readme:
  # n8n-nodes-one-horizon

  Certified-ready n8n community node for [One Horizon](https://onehorizon.ai), powered by One Horizon's MCP endpoint.

  This package provides:
  - Typed operations for the most-used One Horizon workflows
  - OAuth2 authentication with dynamic client registration
  - A `Raw Tool Call` operation for full MCP tool coverage

  ## Installation

  ### n8n Cloud (verified community node path)
  1. Open **Nodes** in n8n.
  2. Search for **One Horizon**.
  3. Install the verified package.

  ### n8n Self-Hosted
  Install in your n8n environment:

  ```bash
  npm install n8n-nodes-one-horizon
  ```

  Then restart n8n so the node is discovered.

  ## Credentials

  Use the credential type **One Horizon MCP OAuth2 API**.

  Default MCP endpoint:

  ```text
  https://mcp.onehorizon.ai/mcp
  ```

  Authentication uses One Horizon OAuth. On first use, n8n opens the consent flow.

  ## Typed Operations

  - `List Planned Work` -> `list-planned-work`
  - `List Completed Work` -> `list-completed-work`
  - `List Blockers` -> `list-blockers`
  - `My Work Recap` -> `my-work-recap`
  - `Team Work Recap` -> `team-work-recap`
  - `Create Todo` -> `create-todo`
  - `Update Todo` -> `update-todo`
  - `List Initiatives` -> `list-initiatives`
  - `Create Initiative` -> `create-initiative`
  - `Update Initiative` -> `update-initiative`
  - `List Bugs` -> `list-bugs`
  - `Report Bug` -> `report-bug`
  - `Update Bug` -> `update-bug`
  - `List My Teams` -> `list-my-teams`
  - `Find Team Member` -> `find-team-member`
  - `Raw Tool Call` -> any MCP tool via `tools/call`

  ## Raw Tool Call

  Use this operation when:
  - You need an MCP tool not yet exposed as a typed operation
  - You want to pass full custom JSON arguments

  `Raw Tool Name` supports:
  - Searchable dropdown (hydrated from MCP `tools/list`)
  - Manual ID entry

  ## Output Format

  Each execution item returns:
  - `operation` and `toolName`
  - `toolArguments`
  - `isError`
  - `text` (joined text blocks, when available)
  - `content` (structured MCP content array)
  - `rawResult`

  ## Example Workflows

  ### 1. Daily personal recap
  - Trigger: Cron (08:30 local)
  - Node: One Horizon -> `My Work Recap`
  - Follow-up: send to Slack/Email

  ### 2. Auto-log completed work
  - Trigger: External event/webhook
  - Node: One Horizon -> `Create Todo`
  - Params: `status=Completed`, `topic=API`

  ### 3. Team blocker digest
  - Trigger: Cron (weekday afternoon)
  - Node: One Horizon -> `List Blockers`
  - Optional: set `teamId`
  - Follow-up: summarize and post to team channel

  ## Error Handling

  Common failures:
  - `401/403`: credential expired or insufficient access
  - `429`: rate limiting upstream
  - Validation errors: missing required tool arguments

  The node surfaces MCP error details in the execution error output.

  ## Development

  ```bash
  npm ci
  npm run lint
  npm run build
  ```

  Run local n8n with hot reload:

  ```bash
  npm run dev
  ```

  ## Verification and Release

  ### CI checks
  - `npm run lint`
  - `npm run build`
  - `scan-community-package` (after publish)

  ### Publish with provenance
  Publishing is handled by GitHub Actions and uses npm provenance (`--provenance`).

  ### Submit for n8n verification
  Submit the package through the n8n Creator workflow after:
  - Package is publicly available on npm
  - Source repository is public and matches published package
  - Docs and examples are complete

  ## Security and Scope

  - The node does not use local filesystem access
  - The node does not use environment-variable-based runtime behavior
  - Access is scoped to the authenticated One Horizon user

  ## License

  MIT


node_type: n8n-nodes-whatsable.whatsAble
package_name: n8n-nodes-whatsable
display_name: WhatsAble
description: Send & Schedule WhatsApp messages using the official WhatsApp API and have human/AI collaboration
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: whatsabledev
author_github_url: https://github.com/Whatsable/
npm_package_name: n8n-nodes-whatsable
npm_version: 2.4.5
community_fetched_at: 2026-04-16T09:43:35.863Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "sendMessage",
      "options": [
        {
          "name": "Send Message",
          "value": "sendMessage"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendWhatsAppMessage",
      "options": [
        {
          "name": "Send WhatsApp Message",
          "value": "sendWhatsAppMessage",
          "action": "Send whatsapp message",
          "description": "Send WhatsApp messages immediately"
        },
        {
          "name": "Schedule WhatsApp Message",
          "value": "scheduleWhatsAppMessage",
          "action": "Schedule whatsapp message",
          "description": "Schedule WhatsApp messages for later delivery"
        },
        {
          "name": "Send WhatsApp Message to a Group",
          "value": "sendWhatsAppMessageToGroup",
          "action": "Send whatsapp message to a group",
          "description": "Send WhatsApp messages to a group"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sendMessage"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send WhatsApp Message",
      "value": "sendWhatsAppMessage",
      "action": "Send whatsapp message",
      "description": "Send WhatsApp messages immediately",
      "resource": "sendMessage"
    },
    {
      "name": "Schedule WhatsApp Message",
      "value": "scheduleWhatsAppMessage",
      "action": "Schedule whatsapp message",
      "description": "Schedule WhatsApp messages for later delivery",
      "resource": "sendMessage"
    },
    {
      "name": "Send WhatsApp Message to a Group",
      "value": "sendWhatsAppMessageToGroup",
      "action": "Send whatsapp message to a group",
      "description": "Send WhatsApp messages to a group",
      "resource": "sendMessage"
    }
  ]

npm_readme:
  <p align="center">
    <img src="https://d1pnnwteuly8z3.cloudfront.net/images/acc1c175-2e05-4bab-805e-64536550fa04/393f0ca5-e904-41f3-8eee-b2dab6bd4e0d.png" alt="WhatsAble Logo" width="160"/>
  </p>

  [![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE.md)

  ## Table of Contents

  - [Overview](#overview)
  - [Installation](#installation)
  - [Authentication](#authentication)
  - [Features](#features)
  - [How to Use WhatsAble Action Node](#how-to-use-whatsable-action-node)
  - [How to Use WhatsAble Trigger Node](#how-to-use-whatsable-trigger-node)
  - [How to Use Notifier Action Node](#how-to-use-notifier-action-node)
  - [How to Use Notifier Trigger Node](#how-to-use-notifier-trigger-node)
  - [How to Use Notifyer System Action Node](#how-to-use-notifyer-system-action-node)
  - [How to Use Notifyer System Trigger Node](#how-to-use-notifyer-system-trigger-node)
  - [Common Use Cases](#common-use-cases)
  - [Best Practices](#best-practices)
  - [Support](#support)
  - [License](#license)
  - [Resources](#resources)

  ---

  # n8n-nodes-whatsable

  This is an [n8n](https://n8n.io/) community node for integrating with the WhatsAble Suite, providing powerful WhatsApp messaging automation capabilities.

  ---

  ## Overview

  The WhatsAble Suite offers a comprehensive set of messaging tools that integrate seamlessly with n8n, enabling powerful automation workflows for businesses of all sizes. The suite comprises three powerful messaging platforms:

  ### WhatsAble
  - Ideal for small businesses and startups
  - Simple integration with n8n
  - Basic media support
  - Subscription-based pricing
  - 7-day free trial
  - [Documentation](https://docs.whatsable.app/guides/whatsable/n8n)

  ### Notifier by WhatsAble
  - Perfect for medium-sized businesses
  - Enhanced template support
  - Standard media capabilities
  - Flexible pricing options
  - Available free trial
  - [Documentation](https://docs.whatsable.app/guides/notifier/n8n)

  ### Notifyer System
  - Enterprise-grade solution
  - Advanced template capabilities
  - Full media support
  - Enterprise pricing
  - Try for free with 2 numbers
  - [Documentation](https://docs.whatsable.app/guides/notifier-system/n8n-overview)

  ---

  ## Installation

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

  ---

  ## Authentication

  To use this node, you need to have an API key from your chosen WhatsAble Suite platform:

  1. Sign up at [WhatsAble](https://whatsable.app)
  2. Choose your platform (WhatsAble, Notifier, or Notifyer System)
  3. Complete the verification process
  4. Generate an API key from your platform's dashboard

  > **Note:** Keep your API key secure and never share it publicly.

  ---

  ## Features

  ### WhatsAble Node
  - Send messages
  - Send template messages (Via Notifyer System)
  - Send non-template messages
  - Schedule messages
  - Support for various media types
  - [Documentation](https://docs.whatsable.app/guides/whatsable/n8n)

  ### WhatsAble Trigger Node
  - Receive incoming messages
  - Handle webhooks
  - Process notifications
  - Real-time message triggers
  - [Documentation](https://docs.whatsable.app/guides/whatsable/n8n)

  ---

  ## How to Use WhatsAble Action Node

  ### Prerequisites
  - An active WhatsAble subscription
  - Access to n8n workflow automation platform
  - A verified WhatsApp number in your WhatsAble dashboard

  ### Setup Process

  1. **Subscribe to WhatsAble**
     - Log in to your WhatsAble dashboard
     - Click the Subscribe button
     - Start your 7-day free trial
     - Note: After trial, pricing is $8.99 per month per phone number
  2. **Add and Verify Phone Number**
     - Navigate to Verified Numbers in your dashboard
     - Click Add New Number
     - Enter your phone number (with country code)
     - Complete the WhatsApp verification process
     - Note: Only first number needs verification
  3. **Get Your API Key**
     - Go to API Keys in your WhatsAble dashboard
     - Copy your unique API key
     - Store it securely for the integration

  ### Integration Steps

  1. Create a new workflow in n8n
  2. Add your preferred trigger node and configure its settings
  3. Add the WhatsAble node
  4. In the WhatsAble node settings:
     - Select "Create new credential"
     - Enter your WhatsAble API key
     - Name your credential (e.g., "WhatsAble Production")
     - Click Save
  5. Configure message settings:
     - Select "Send Message (WhatsAble)" operation
     - Fill in required and optional fields
  6. Click "Test Step" to verify
  7. Save your workflow and activate it

  For detailed documentation, visit [WhatsAble n8n Integration Guide](https://docs.whatsable.app/guides/whatsable/n8n)

  ---

  ## How to Use WhatsAble Trigger Node

  ### Prerequisites
  - An active WhatsAble subscription
  - Access to n8n workflow automation platform
  - A verified WhatsApp number in your WhatsAble dashboard

  ### Setup Process

  1. **Get Your Webhook URL**
     - Open the WhatsAble Trigger Node in n8n
     - At the top of the node, locate "Webhook URLs"
     - Click the "Production URL" to copy it to your clipboard
     - This URL will be used to receive incoming messages
  2. **Configure Credentials**
     - In the WhatsAble Trigger Node settings:
       - Paste the Production Webhook URL in the "Production URL" input box
       - Enter your WhatsAble API key in the "API Key" input box
       - Click Save
       - A green success message will appear if the configuration is successful
  3. **Activate the Trigger**
     - Click "Test Step" to verify the connection
     - Save your workflow
     - Toggle "Active" to start receiving messages
     - Connect the trigger to any action node to process incoming messages

  For detailed documentation, visit [WhatsAble n8n Integration Guide](https://docs.whatsable.app/guides/whatsable/n8n)

  ---

  ## How to Use Notifier Action Node

  ### Prerequisites
  - An active Notifier account (Monthly or Pay-as-you-go plan)
  - Access to n8n workflow automation platform
  - Business information ready for configuration

  ### Setup Process

  1. **Configure Business Information**
     - Log in to your Notifier dashboard
     - Navigate to Business Information
     - Complete required fields
     - Verify your WhatsApp number with the code sent
  2. **Get Your API Key**
     - Go to API Keys in your Notifier dashboard
     - Copy your unique API key
     - Store it securely for the integration

  ### Integration Steps

  1. Create a new workflow in n8n
  2. Add your preferred trigger node and configure its settings
  3. Add the WhatsAble node
  4. In the WhatsAble node settings:
     - Select "Create new credential"
     - Enter your Notifier API key
     - Name your credential (e.g., "Notifier Production")
     - Click Save
  5. Configure message settings:
     - Select "Send Message (Notifier)" operation
     - Fill in required and optional fields
  6. Click "Test Step" to verify
  7. Save your workflow and activate it

  ### Example Workflows with Notifier
  - Lead Nurturing: Trigger on form submission, send personalized welcome, schedule follow-ups
  - Order Confirmations: Trigger on order status change, send update with details
  - Event Reminders: Trigger on calendar event, send reminder with RSVP link
  - Customer Feedback: Trigger on purchase, send feedback request
  - Support Ticket Updates: Trigger on ticket status change, send update

  For detailed documentation, visit [Notifier n8n Integration Guide](https://docs.whatsable.app/guides/notifier/n8n)

  ---

  ## How to Use Notifier Trigger Node

  ### Prerequisites
  - An active Notifier account
  - Access to n8n workflow automation platform
  - Business information configured in Notifier

  ### Setup Process

  1. **Get Your Webhook URL**
     - Open the Notifier Trigger Node in n8n
     - At the top of the node, locate "Webhook URLs"
     - Click the "Production URL" to copy it to your clipboard
     - This URL will be used to receive incoming messages
  2. **Configure Credentials**
     - In the Notifier Trigger Node settings:
       - Paste the Production Webhook URL in the "Production URL" input box
       - Enter your Notifier API key in the "API Key" input box
       - Click Save
       - A green success message will appear if the configuration is successful
  3. **Activate the Trigger**
     - Click "Test Step" to verify the connection
     - Save your workflow
     - Toggle "Active" to start receiving messages
     - Connect the trigger to any action node to process incoming messages

  For detailed documentation, visit [Notifier n8n Integration Guide](https://docs.whatsable.app/guides/notifier/n8n)

  ---

  ## How to Use Notifyer System Action Node

  ### Prerequisites
  - An active Notifyer System account
  - Access to n8n workflow automation platform
  - Completed WhatsApp Business Platform embedding process

  ### Setup Process

  1. **Complete Platform Embedding**
     - Connect your WhatsApp Business account
     - Complete Meta's business verification
     - Ensure compliance with WhatsApp Business Platform policies
  2. **Set Up Message Templates**
     - Navigate to Templates in your dashboard
     - Create new templates and submit for review
  3. **Get Your API Key**
     - Go to API Keys in your Notifyer dashboard
     - Copy your unique API key
     - Store it securely for the integration

  ### Integration Steps

  1. Create a new workflow in n8n
  2. Add your preferred trigger node and configure its settings
  3. Add the WhatsAble node
  4. In the WhatsAble node settings:
     - Select "Create new credential"
     - Enter your Notifyer System API key
     - Name your credential (e.g., "Notifyer System Production")
     - Click Save
  5. Configure message settings:
     - Choose between template and non-template message operations
     - Fill in required and optional fields
  6. Click "Test Step" to verify
  7. Save your workflow and activate it

  ### Example Workflows with Notifyer System
  - Order Confirmations: Trigger on new order, send template message with details
  - Appointment Reminders: Trigger on calendar event, send template message
  - Lead Notifications: Trigger on new CRM lead, send non-template message
  - Customer Support: Trigger on new support ticket, send template message
  - Delivery Updates: Trigger on shipping status change, send template message

  For detailed documentation, visit [Notifyer System n8n Integration Guide](https://docs.whatsable.app/guides/notifier-system/n8n-overview)

  ---

  ## How to Use Notifyer System Trigger Node

  ### Prerequisites
  - An active Notifyer System account
  - Access to n8n workflow automation platform
  - Completed WhatsApp Business Platform embedding process

  ### Setup Process

  1. **Get Your Webhook URL**
     - Open the Notifyer System Trigger Node in n8n
     - At the top of the node, locate "Webhook URLs"
     - Click the "Production URL" to copy it to your clipboard
     - This URL will be used to receive incoming messages
  2. **Configure Credentials**
     - In the Notifyer System Trigger Node settings:
       - Paste the Production Webhook URL in the "Production URL" input box
       - Enter your Notifyer System API key in the "API Key" input box
       - Click Save
       - A green success message will appear if the configuration is successful
  3. **Activate the Trigger**
     - Click "Test Step" to verify the connection
     - Save your workflow
     - Toggle "Active" to start receiving messages
     - Connect the trigger to any action node to process incoming messages

  For detailed documentation, visit [Notifyer System n8n Integration Guide](https://docs.whatsable.app/guides/notifier-system/n8n-overview)

  ---

  ## Common Use Cases

  - Lead Qualification: Automated follow-up, lead scoring, response tracking
  - Order Notifications: Confirmations, shipping updates, delivery notifications
  - Appointment Reminders: Automated reminders, confirmations, calendar integration
  - Customer Support: Ticket routing, automated responses, support updates
  - Payment Reminders: Invoice notifications, payment confirmations, subscription reminders

  ---

  ## Support

  For technical support and assistance:

  - **Email Support**: Contact our dedicated support team
  - **Video Tutorials**: Watch step-by-step integration guides
  - **Implementation Help**: Get expert assistance with workflows

  For enterprise-level support or custom solutions, contact our solution engineers at team@whatsable.app

  ---

  ## License

  [MIT](LICENSE.md)

  ---

  ## Resources

  - [WhatsAble Website](https://whatsable.app)
  - [n8n Documentation](https://docs.n8n.io)
  - [WhatsAble Suite n8n Overview](https://docs.whatsable.app/n8n-overview)

  ---

  ## Running Locally

  To run and test this node on your local machine:

  1. **Clone the repository**
     ```bash
     git clone https://github.com/Whatsable/n8n-nodes-whatsable.git
     cd n8n-nodes-whatsable
     ```
  2. **Install dependencies**
     ```bash
     pnpm install
     ```
  3. **Build the project**
     ```bash
     pnpm build
     ```
  4. **Run tests**
     ```bash
     pnpm test
     ```
     > **Note:** Unit tests are included to ensure code quality. Please run tests before submitting a pull request.
  5. **Link the node to your local n8n instance**
     - If you are developing a custom node, you can use [n8n's community node development guide](https://docs.n8n.io/integrations/community-nodes/create/) to link your node for local testing.
     - Typically, you can run:
       ```bash
       pnpm link --global
       cd ~/.n8n/custom
       pnpm link --global n8n-nodes-whatsable
       ```
     - Restart your n8n instance to load the custom node.
  6. **Test your node**
     - Open n8n in your browser (usually at `http://localhost:5678`)
     - Create a workflow and add your custom node to test its functionality

  > **Note:** Make sure you have [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) installed on your machine.

  ---

  ## Contributing

  We welcome contributions from the community! To contribute:

  1. **Fork the repository**: [https://github.com/Whatsable/n8n-nodes-whatsable](https://github.com/Whatsable/n8n-nodes-whatsable)
  2. **Create a new branch** for your feature or bugfix:
     ```bash
     git checkout -b feature/your-feature-name
     ```
  3. **Make your changes** and ensure code quality:
     - Follow the existing code style
     - Add or update documentation as needed
     - Run linter and tests before submitting
  4. **Commit your changes**
     ```bash
     git commit -m "Add your message here"
     ```
  5. **Push to your fork**
     ```bash
     git push origin feature/your-feature-name
     ```
  6. **Open a Pull Request**
     - Go to the GitHub page for your fork
     - Click "Compare & pull request"
     - Describe your changes and submit the PR

  ### Reporting Issues
  - If you find a bug or have a feature request, please [open an issue](https://github.com/Whatsable/n8n-nodes-whatsable/issues) with details and steps to reproduce.

  ### Code of Conduct
  - Please be respectful and follow our [Code of Conduct](CODE_OF_CONDUCT.md) when participating in this project.

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of WhatsApp messaging by integrating with the WhatsAble Suite, supporting sending, scheduling, and receiving messages across three tiers: WhatsAble, Notifier, and Notifyer System.","capabilities":["Send text messages","Send scheduled messages","Send media messages","Send template messages (Notifyer System only)","Receive incoming messages via webhooks","Process notifications","Create credentials for API authentication"],"authentication":"API key required","commonUseCases":["Automated customer support responses","Scheduled promotional campaigns","Order confirmations and notifications","Lead follow-up sequences","Two-factor authentication verification"],"limitations":["WhatsAble tier has basic media support only","Notifier requires business information configuration","Notifyer System requires enterprise pricing for full features","WhatsAble free trial is limited to 7 days","Webhook URLs must be configured manually for trigger nodes"],"relatedNodes":["HTTP Request","Webhook","Schedule Trigger","If","Wait"]}


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

updated_at: 2026-04-16 09:43:35
author_name: jacketbg
author_github_url: https://github.com/Jacketbg/n8n-node-inoreader.git
npm_package_name: n8n-nodes-inoreader
npm_version: 1.0.5
community_fetched_at: 2026-04-16T09:43:35.864Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "article",
      "options": [
        {
          "name": "Article",
          "value": "article"
        },
        {
          "name": "Feed",
          "value": "feed"
        },
        {
          "name": "Tag",
          "value": "tag"
        },
        {
          "name": "Folder",
          "value": "folder"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFromFeed",
      "options": [
        {
          "name": "Add Tag",
          "value": "addToTag",
          "action": "Add tag to article",
          "description": "Add a tag to an article"
        },
        {
          "name": "Add to Read Later",
          "value": "addToReadLater",
          "action": "Add article to read later",
          "description": "Add an article to the Read later section"
        },
        {
          "name": "Create in Read Later",
          "value": "saveToReadLater",
          "action": "Create new article in read later",
          "description": "Create external article and save to the Read later section"
        },
        {
          "name": "Create in Tag",
          "value": "saveToTag",
          "action": "Create new article in a specific tag",
          "description": "Create external article and save to a specific tag"
        },
        {
          "name": "Get Many From Feed",
          "value": "getFromFeed",
          "action": "Get many articles from feed",
          "description": "Get articles from a specific feed"
        },
        {
          "name": "Get Many From Folder",
          "value": "getFromFolder",
          "action": "Get many articles from folder",
          "description": "Get articles from a specific folder"
        },
        {
          "name": "Get Many From Read Later",
          "value": "getFromReadLater",
          "action": "Get many articles from read later",
          "description": "Get articles from the Read later section"
        },
        {
          "name": "Get Many From Tag",
          "value": "getFromTag",
          "action": "Get many articles from tag",
          "description": "Get articles from a specific tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "article"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllFeeds",
      "options": [
        {
          "name": "Get All Feeds",
          "value": "getAllFeeds",
          "action": "Get all feeds in user account",
          "description": "Get all feeds from the user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "feed"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllTags",
      "options": [
        {
          "name": "Get All Tags",
          "value": "getAllTags",
          "action": "Get all tags in user account",
          "description": "Get all tags from the user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllFolders",
      "options": [
        {
          "name": "Get All Folders",
          "value": "getAllFolders",
          "action": "Get all folders in user account",
          "description": "Get all folders from the user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Tag",
      "value": "addToTag",
      "action": "Add tag to article",
      "description": "Add a tag to an article",
      "resource": "article"
    },
    {
      "name": "Add to Read Later",
      "value": "addToReadLater",
      "action": "Add article to read later",
      "description": "Add an article to the Read later section",
      "resource": "article"
    },
    {
      "name": "Create in Read Later",
      "value": "saveToReadLater",
      "action": "Create new article in read later",
      "description": "Create external article and save to the Read later section",
      "resource": "article"
    },
    {
      "name": "Create in Tag",
      "value": "saveToTag",
      "action": "Create new article in a specific tag",
      "description": "Create external article and save to a specific tag",
      "resource": "article"
    },
    {
      "name": "Get Many From Feed",
      "value": "getFromFeed",
      "action": "Get many articles from feed",
      "description": "Get articles from a specific feed",
      "resource": "article"
    },
    {
      "name": "Get Many From Folder",
      "value": "getFromFolder",
      "action": "Get many articles from folder",
      "description": "Get articles from a specific folder",
      "resource": "article"
    },
    {
      "name": "Get Many From Read Later",
      "value": "getFromReadLater",
      "action": "Get many articles from read later",
      "description": "Get articles from the Read later section",
      "resource": "article"
    },
    {
      "name": "Get Many From Tag",
      "value": "getFromTag",
      "action": "Get many articles from tag",
      "description": "Get articles from a specific tag",
      "resource": "article"
    },
    {
      "name": "Get All Feeds",
      "value": "getAllFeeds",
      "action": "Get all feeds in user account",
      "description": "Get all feeds from the user",
      "resource": "feed"
    },
    {
      "name": "Get All Tags",
      "value": "getAllTags",
      "action": "Get all tags in user account",
      "description": "Get all tags from the user",
      "resource": "tag"
    },
    {
      "name": "Get All Folders",
      "value": "getAllFolders",
      "action": "Get all folders in user account",
      "description": "Get all folders from the user",
      "resource": "folder"
    }
  ]

npm_readme:
  # n8n-nodes-inoreader

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

  Inoreader is a powerful content aggregator and RSS reader platform that lets you monitor, organize, and automate the flow of articles, feeds, and web content. Stay ahead with real-time updates from your favorite websites, blogs, newsletters, and social media – all in one customizable, distraction-free space.

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

  ### Trigger (Inoreader Trigger node)
  - New article in feed
  - New article in folder
  - New article in "Read later" section

  ### Actions (Inoreader node)
  - Create new article in "Read later" section
  - Create new article in a tag
  - Get many articles from feed
  - Get many articles from folder
  - Get many articles from tag
  - Get many articles from "Read later"
  - Assign tag to article
  - Assign "Read later" flag to article
  - Get all feeds
  - Get all tags
  - Get all folders

  ---

  ## Credentials

  To use this node, you need an **Inoreader app** and OAuth2 credentials:

  1. Sign up at [Inoreader](https://www.inoreader.com/) if you haven’t already. 
  2. Go to the [Inoreader Developer Console](https://www.inoreader.com/preferences/other) and create an app. This requires an Inoreader Pro plan.
  3. Copy your **App ID** and **App Key**.
  4. In n8n, add new credentials of type **Inoreader OAuth2 API**, and enter your App ID and App Key.
  5. Click **Connect** and authorize n8n to access your Inoreader account.

  Tokens are managed automatically, and refresh tokens are supported.

  ---

  ## Compatibility

  - **Minimum n8n version:** 1.0.0
  - **Tested with:** n8n 1.43.0 and above
  - May not work on legacy n8n versions prior to v1 due to changes in trigger handling and credentials.

  ---

  ## Usage

  - Add the **Inoreader Trigger** node to start a workflow when a new article appears in a feed, folder, or "Read later".
  - Use the **Inoreader** node to execute actions like tagging articles or saving external HTML content as new articles in Inoreader

  For general help with n8n, see [Try it out](https://docs.n8n.io/try-it-out/).

  ---

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Inoreader Developer Documentation](https://www.inoreader.com/developers/)
  * [Inoreader](https://www.inoreader.com/)

  ---

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Inoreader API to monitor, organize, and automate RSS feeds, articles, and web content.","capabilities":["Trigger workflow on new article in feed","Trigger workflow on new article in folder","Trigger workflow on new article in Read later section","Create new article in Read later section","Create new article in a tag","Get many articles from feed","Get many articles from folder","Get many articles from tag","Get many articles from Read later","Assign tag to article"],"authentication":"OAuth2 (requires Inoreader App ID and App Key)","commonUseCases":["Automated content aggregation from multiple RSS feeds","Real-time monitoring of specific blogs or websites","Organizing articles into tags or folders automatically","Saving external HTML content as new Inoreader articles"],"limitations":["Requires an Inoreader Pro plan to create an app","May not work on legacy n8n versions prior to v1","Minimum supported n8n version is 1.0.0"],"relatedNodes":["Inoreader Trigger","Inoreader"]}


node_type: n8n-nodes-bcdrllc.bcdrllc
package_name: n8n-nodes-bcdrllc
display_name: BCDR Cloud API
description: BCDR Company Cloud API integration for business communications
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: wganme
author_github_url: https://github.com/BCDRLLC/
npm_package_name: n8n-nodes-bcdrllc
npm_version: 2.0.4
community_fetched_at: 2026-04-16T09:43:35.865Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Business Profile",
          "value": "businessProfile",
          "description": "Manage business profile settings"
        },
        {
          "name": "Call",
          "value": "call",
          "description": "Manage call operations"
        },
        {
          "name": "Flow",
          "value": "flow",
          "description": "Manage interactive flows"
        },
        {
          "name": "Media",
          "value": "media",
          "description": "Send and manage media files"
        },
        {
          "name": "Message",
          "value": "message",
          "description": "Send text, interactive, location, and contact messages"
        },
        {
          "name": "Phone Number",
          "value": "phoneNumber",
          "description": "Manage phone number settings"
        },
        {
          "name": "QR Code",
          "value": "qrCode",
          "description": "Create and manage QR codes"
        },
        {
          "name": "System",
          "value": "system",
          "description": "System-level operations"
        },
        {
          "name": "Template",
          "value": "template",
          "description": "Send and manage message templates"
        },
        {
          "name": "User",
          "value": "user",
          "description": "Block/unblock users"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendText",
      "options": [
        {
          "name": "Mark As Read",
          "value": "markAsRead",
          "action": "Mark message as read",
          "description": "Mark a message as read"
        },
        {
          "name": "Remove Reaction",
          "value": "removeReaction",
          "action": "Remove a reaction",
          "description": "Remove reaction from a message"
        },
        {
          "name": "Request Location",
          "value": "requestLocation",
          "action": "Request location from user",
          "description": "Request location from user"
        },
        {
          "name": "Send Catalog",
          "value": "sendCatalog",
          "action": "Send product catalog",
          "description": "Send product catalog"
        },
        {
          "name": "Send Contact",
          "value": "sendContact",
          "action": "Send a contact",
          "description": "Send contact information"
        },
        {
          "name": "Send Flow",
          "value": "sendFlow",
          "action": "Send a Flow message",
          "description": "Send an interactive Flow message"
        },
        {
          "name": "Send Interactive Buttons",
          "value": "sendInteractiveButtons",
          "action": "Send an interactive buttons message",
          "description": "Send an interactive message with buttons"
        },
        {
          "name": "Send Interactive List",
          "value": "sendInteractiveList",
          "action": "Send an interactive list message",
          "description": "Send an interactive message with a list"
        },
        {
          "name": "Send Location",
          "value": "sendLocation",
          "action": "Send a location",
          "description": "Send a location"
        },
        {
          "name": "Send Marketing Message",
          "value": "sendMarketingMessage",
          "action": "Send marketing message",
          "description": "Send marketing template with tracking"
        },
        {
          "name": "Send Product",
          "value": "sendProduct",
          "action": "Send a product",
          "description": "Send a single product"
        },
        {
          "name": "Send Products",
          "value": "sendProducts",
          "action": "Send multiple products",
          "description": "Send multiple products"
        },
        {
          "name": "Send Raw Request",
          "value": "sendRawRequest",
          "action": "Send raw request",
          "description": "Send custom API request"
        },
        {
          "name": "Send Reaction",
          "value": "sendReaction",
          "action": "Send a reaction",
          "description": "React to a message with an emoji"
        },
        {
          "name": "Send Text",
          "value": "sendText",
          "action": "Send a text message",
          "description": "Send a text message"
        },
        {
          "name": "Set Typing Indicator",
          "value": "setTypingIndicator",
          "action": "Set typing indicator",
          "description": "Show typing indicator to user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendImage",
      "options": [
        {
          "name": "Create Upload Session",
          "value": "createUploadSession",
          "action": "Create upload session",
          "description": "Create session for large file upload (>25MB)"
        },
        {
          "name": "Delete Media",
          "value": "deleteMedia",
          "action": "Delete media",
          "description": "Delete uploaded media"
        },
        {
          "name": "Download Media",
          "value": "downloadMedia",
          "action": "Download media",
          "description": "Download media file"
        },
        {
          "name": "Get Media URL",
          "value": "getMediaUrl",
          "action": "Get media URL",
          "description": "Get URL of uploaded media"
        },
        {
          "name": "Get Upload Session",
          "value": "getUploadSession",
          "action": "Get upload session status",
          "description": "Get status of upload session"
        },
        {
          "name": "Send Audio",
          "value": "sendAudio",
          "action": "Send an audio file",
          "description": "Send an audio file"
        },
        {
          "name": "Send Document",
          "value": "sendDocument",
          "action": "Send a document",
          "description": "Send a document"
        },
        {
          "name": "Send Image",
          "value": "sendImage",
          "action": "Send an image",
          "description": "Send an image"
        },
        {
          "name": "Send Sticker",
          "value": "sendSticker",
          "action": "Send a sticker",
          "description": "Send a sticker"
        },
        {
          "name": "Send Video",
          "value": "sendVideo",
          "action": "Send a video",
          "description": "Send a video"
        },
        {
          "name": "Send Voice",
          "value": "sendVoice",
          "action": "Send a voice message",
          "description": "Send a voice message"
        },
        {
          "name": "Upload File to Session",
          "value": "uploadFileToSession",
          "action": "Upload file to session",
          "description": "Upload file chunks to upload session"
        },
        {
          "name": "Upload Media",
          "value": "uploadMedia",
          "action": "Upload media",
          "description": "Upload media to get a media ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "media"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendTemplate",
      "options": [
        {
          "name": "Compare Templates",
          "value": "compareTemplates",
          "action": "Compare templates",
          "description": "Compare performance of two templates"
        },
        {
          "name": "Create Template",
          "value": "createTemplate",
          "action": "Create template",
          "description": "Create a new message template"
        },
        {
          "name": "Delete Template",
          "value": "deleteTemplate",
          "action": "Delete template",
          "description": "Delete a message template"
        },
        {
          "name": "Get Template",
          "value": "getTemplate",
          "action": "Get template",
          "description": "Get a specific template by ID"
        },
        {
          "name": "Get Templates",
          "value": "getTemplates",
          "action": "Get templates",
          "description": "Get all message templates"
        },
        {
          "name": "Migrate Templates",
          "value": "migrateTemplates",
          "action": "Migrate templates",
          "description": "Migrate templates between WABAs"
        },
        {
          "name": "Send Template",
          "value": "sendTemplate",
          "action": "Send a template message",
          "description": "Send a template message"
        },
        {
          "name": "Unpause Template",
          "value": "unpauseTemplate",
          "action": "Unpause template",
          "description": "Unpause a previously paused template"
        },
        {
          "name": "Update Template",
          "value": "updateTemplate",
          "action": "Update template",
          "description": "Update an existing template"
        },
        {
          "name": "Upsert Message Templates",
          "value": "upsertMessageTemplates",
          "action": "Upsert message templates",
          "description": "Bulk create/update authentication templates"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getProfile",
      "options": [
        {
          "name": "Delete Webhook URL",
          "value": "deleteWebhookUrl",
          "action": "Delete webhook URL",
          "description": "Delete alternate callback URL"
        },
        {
          "name": "Get Business Account",
          "value": "getBusinessAccount",
          "action": "Get business account",
          "description": "Get business account details"
        },
        {
          "name": "Get Business Public Key",
          "value": "getBusinessPublicKey",
          "action": "Get business public key",
          "description": "Get business public key for encryption"
        },
        {
          "name": "Get Commerce Settings",
          "value": "getCommerceSettings",
          "action": "Get commerce settings",
          "description": "Get commerce settings"
        },
        {
          "name": "Get Profile",
          "value": "getProfile",
          "action": "Get business profile",
          "description": "Get business profile information"
        },
        {
          "name": "Get Subscribed Apps",
          "value": "getSubscribedApps",
          "action": "Get subscribed apps",
          "description": "Get apps subscribed to webhooks"
        },
        {
          "name": "Set Business Public Key",
          "value": "setBusinessPublicKey",
          "action": "Set business public key",
          "description": "Set business public key for encryption"
        },
        {
          "name": "Set Webhook URL",
          "value": "setWebhookUrl",
          "action": "Set webhook URL",
          "description": "Set alternate callback URL for WABA"
        },
        {
          "name": "Update Commerce Settings",
          "value": "updateCommerceSettings",
          "action": "Update commerce settings",
          "description": "Update commerce settings"
        },
        {
          "name": "Update Conversational Automation",
          "value": "updateConversationalAutomation",
          "action": "Update conversational automation",
          "description": "Update commands and ice breakers"
        },
        {
          "name": "Update Profile",
          "value": "updateProfile",
          "action": "Update business profile",
          "description": "Update business profile information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "businessProfile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getPhoneNumbers",
      "options": [
        {
          "name": "Delete Phone Webhook URL",
          "value": "deletePhoneWebhookUrl",
          "action": "Delete phone webhook URL",
          "description": "Delete phone alternate callback URL"
        },
        {
          "name": "Deregister Phone",
          "value": "deregisterPhone",
          "action": "Deregister phone number",
          "description": "Deregister a phone number"
        },
        {
          "name": "Get Phone Number",
          "value": "getPhoneNumber",
          "action": "Get phone number",
          "description": "Get details of a specific phone number"
        },
        {
          "name": "Get Phone Numbers",
          "value": "getPhoneNumbers",
          "action": "Get phone numbers",
          "description": "Get all business phone numbers"
        },
        {
          "name": "Get Phone Settings",
          "value": "getPhoneSettings",
          "action": "Get phone settings",
          "description": "Get phone number settings"
        },
        {
          "name": "Register Phone",
          "value": "registerPhone",
          "action": "Register phone number",
          "description": "Register a phone number"
        },
        {
          "name": "Set Phone Webhook URL",
          "value": "setPhoneWebhookUrl",
          "action": "Set phone webhook URL",
          "description": "Set alternate callback URL for phone"
        },
        {
          "name": "Update Conversational Automation",
          "value": "updateConversationalAutomation",
          "action": "Update conversational automation",
          "description": "Update ice breakers and commands"
        },
        {
          "name": "Update Display Name",
          "value": "updateDisplayName",
          "action": "Update display name",
          "description": "Update business display name"
        },
        {
          "name": "Update Phone Settings",
          "value": "updatePhoneSettings",
          "action": "Update phone settings",
          "description": "Update phone number settings"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "phoneNumber"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFlows",
      "options": [
        {
          "name": "Create Flow",
          "value": "createFlow",
          "action": "Create flow",
          "description": "Create a new flow"
        },
        {
          "name": "Delete Flow",
          "value": "deleteFlow",
          "action": "Delete flow",
          "description": "Delete a flow"
        },
        {
          "name": "Deprecate Flow",
          "value": "deprecateFlow",
          "action": "Deprecate flow",
          "description": "Deprecate a flow"
        },
        {
          "name": "Exchange Data",
          "value": "exchangeData",
          "action": "Exchange data with flow",
          "description": "Send data to Flow using Data Exchange API"
        },
        {
          "name": "Generate Flow JSON Template",
          "value": "generateFlowTemplate",
          "action": "Generate flow template",
          "description": "Generate Flow JSON template with screens and components"
        },
        {
          "name": "Get Flow",
          "value": "getFlow",
          "action": "Get flow",
          "description": "Get a specific flow"
        },
        {
          "name": "Get Flow Assets",
          "value": "getFlowAssets",
          "action": "Get flow assets",
          "description": "Get flow assets"
        },
        {
          "name": "Get Flow Metrics",
          "value": "getFlowMetrics",
          "action": "Get flow metrics",
          "description": "Get flow performance metrics"
        },
        {
          "name": "Get Flows",
          "value": "getFlows",
          "action": "Get flows",
          "description": "Get all flows"
        },
        {
          "name": "Migrate Flows",
          "value": "migrateFlows",
          "action": "Migrate flows",
          "description": "Migrate flows between WABAs"
        },
        {
          "name": "Publish Flow",
          "value": "publishFlow",
          "action": "Publish flow",
          "description": "Publish a flow"
        },
        {
          "name": "Update Flow JSON",
          "value": "updateFlowJson",
          "action": "Update flow JSON",
          "description": "Update flow JSON definition"
        },
        {
          "name": "Update Flow Metadata",
          "value": "updateFlow",
          "action": "Update flow metadata",
          "description": "Update flow metadata"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "flow"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "initiateCall",
      "options": [
        {
          "name": "Accept Call",
          "value": "acceptCall",
          "action": "Accept call",
          "description": "Accept an incoming call"
        },
        {
          "name": "End Call",
          "value": "endCall",
          "action": "End call",
          "description": "End an active call"
        },
        {
          "name": "Get Call Permissions",
          "value": "getCallPermissions",
          "action": "Get call permissions",
          "description": "Get call permissions for phone number"
        },
        {
          "name": "Initiate Call",
          "value": "initiateCall",
          "action": "Initiate call",
          "description": "Initiate a voice/video call"
        },
        {
          "name": "Pre-Accept Call",
          "value": "preAcceptCall",
          "action": "Pre-accept call",
          "description": "Pre-accept an incoming call before fully accepting"
        },
        {
          "name": "Reject Call",
          "value": "rejectCall",
          "action": "Reject call",
          "description": "Reject an incoming call"
        },
        {
          "name": "Terminate Call",
          "value": "terminateCall",
          "action": "Terminate call",
          "description": "Terminate an ongoing call"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createQrCode",
      "options": [
        {
          "name": "Create QR Code",
          "value": "createQrCode",
          "action": "Create QR code",
          "description": "Create a new QR code"
        },
        {
          "name": "Delete QR Code",
          "value": "deleteQrCode",
          "action": "Delete QR code",
          "description": "Delete a QR code"
        },
        {
          "name": "Get QR Code",
          "value": "getQrCode",
          "action": "Get QR code",
          "description": "Get a specific QR code"
        },
        {
          "name": "Get QR Codes",
          "value": "getQrCodes",
          "action": "Get QR codes",
          "description": "Get all QR codes"
        },
        {
          "name": "Update QR Code",
          "value": "updateQrCode",
          "action": "Update QR code",
          "description": "Update a QR code"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "qrCode"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "blockUser",
      "options": [
        {
          "name": "Block User",
          "value": "blockUser",
          "action": "Block user",
          "description": "Block a user from sending messages"
        },
        {
          "name": "Get Blocked Users",
          "value": "getBlockedUsers",
          "action": "Get blocked users",
          "description": "Get list of blocked users"
        },
        {
          "name": "Unblock User",
          "value": "unblockUser",
          "action": "Unblock user",
          "description": "Unblock a previously blocked user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAppAccessToken",
      "options": [
        {
          "name": "Get App Access Token",
          "value": "getAppAccessToken",
          "action": "Get app access token",
          "description": "Get app-level access token"
        },
        {
          "name": "Set App Callback URL",
          "value": "setAppCallbackUrl",
          "action": "Set app callback URL",
          "description": "Set app-level webhook callback URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "system"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Mark As Read",
      "value": "markAsRead",
      "action": "Mark message as read",
      "description": "Mark a message as read",
      "resource": "message"
    },
    {
      "name": "Remove Reaction",
      "value": "removeReaction",
      "action": "Remove a reaction",
      "description": "Remove reaction from a message",
      "resource": "message"
    },
    {
      "name": "Request Location",
      "value": "requestLocation",
      "action": "Request location from user",
      "description": "Request location from user",
      "resource": "message"
    },
    {
      "name": "Send Catalog",
      "value": "sendCatalog",
      "action": "Send product catalog",
      "description": "Send product catalog",
      "resource": "message"
    },
    {
      "name": "Send Contact",
      "value": "sendContact",
      "action": "Send a contact",
      "description": "Send contact information",
      "resource": "message"
    },
    {
      "name": "Send Flow",
      "value": "sendFlow",
      "action": "Send a Flow message",
      "description": "Send an interactive Flow message",
      "resource": "message"
    },
    {
      "name": "Send Interactive Buttons",
      "value": "sendInteractiveButtons",
      "action": "Send an interactive buttons message",
      "description": "Send an interactive message with buttons",
      "resource": "message"
    },
    {
      "name": "Send Interactive List",
      "value": "sendInteractiveList",
      "action": "Send an interactive list message",
      "description": "Send an interactive message with a list",
      "resource": "message"
    },
    {
      "name": "Send Location",
      "value": "sendLocation",
      "action": "Send a location",
      "description": "Send a location",
      "resource": "message"
    },
    {
      "name": "Send Marketing Message",
      "value": "sendMarketingMessage",
      "action": "Send marketing message",
      "description": "Send marketing template with tracking",
      "resource": "message"
    },
    {
      "name": "Send Product",
      "value": "sendProduct",
      "action": "Send a product",
      "description": "Send a single product",
      "resource": "message"
    },
    {
      "name": "Send Products",
      "value": "sendProducts",
      "action": "Send multiple products",
      "description": "Send multiple products",
      "resource": "message"
    },
    {
      "name": "Send Raw Request",
      "value": "sendRawRequest",
      "action": "Send raw request",
      "description": "Send custom API request",
      "resource": "message"
    },
    {
      "name": "Send Reaction",
      "value": "sendReaction",
      "action": "Send a reaction",
      "description": "React to a message with an emoji",
      "resource": "message"
    },
    {
      "name": "Send Text",
      "value": "sendText",
      "action": "Send a text message",
      "description": "Send a text message",
      "resource": "message"
    },
    {
      "name": "Set Typing Indicator",
      "value": "setTypingIndicator",
      "action": "Set typing indicator",
      "description": "Show typing indicator to user",
      "resource": "message"
    },
    {
      "name": "Create Upload Session",
      "value": "createUploadSession",
      "action": "Create upload session",
      "description": "Create session for large file upload (>25MB)",
      "resource": "media"
    },
    {
      "name": "Delete Media",
      "value": "deleteMedia",
      "action": "Delete media",
      "description": "Delete uploaded media",
      "resource": "media"
    },
    {
      "name": "Download Media",
      "value": "downloadMedia",
      "action": "Download media",
      "description": "Download media file",
      "resource": "media"
    },
    {
      "name": "Get Media URL",
      "value": "getMediaUrl",
      "action": "Get media URL",
      "description": "Get URL of uploaded media",
      "resource": "media"
    },
    {
      "name": "Get Upload Session",
      "value": "getUploadSession",
      "action": "Get upload session status",
      "description": "Get status of upload session",
      "resource": "media"
    },
    {
      "name": "Send Audio",
      "value": "sendAudio",
      "action": "Send an audio file",
      "description": "Send an audio file",
      "resource": "media"
    },
    {
      "name": "Send Document",
      "value": "sendDocument",
      "action": "Send a document",
      "description": "Send a document",
      "resource": "media"
    },
    {
      "name": "Send Image",
      "value": "sendImage",
      "action": "Send an image",
      "description": "Send an image",
      "resource": "media"
    },
    {
      "name": "Send Sticker",
      "value": "sendSticker",
      "action": "Send a sticker",
      "description": "Send a sticker",
      "resource": "media"
    },
    {
      "name": "Send Video",
      "value": "sendVideo",
      "action": "Send a video",
      "description": "Send a video",
      "resource": "media"
    },
    {
      "name": "Send Voice",
      "value": "sendVoice",
      "action": "Send a voice message",
      "description": "Send a voice message",
      "resource": "media"
    },
    {
      "name": "Upload File to Session",
      "value": "uploadFileToSession",
      "action": "Upload file to session",
      "description": "Upload file chunks to upload session",
      "resource": "media"
    },
    {
      "name": "Upload Media",
      "value": "uploadMedia",
      "action": "Upload media",
      "description": "Upload media to get a media ID",
      "resource": "media"
    },
    {
      "name": "Compare Templates",
      "value": "compareTemplates",
      "action": "Compare templates",
      "description": "Compare performance of two templates",
      "resource": "template"
    },
    {
      "name": "Create Template",
      "value": "createTemplate",
      "action": "Create template",
      "description": "Create a new message template",
      "resource": "template"
    },
    {
      "name": "Delete Template",
      "value": "deleteTemplate",
      "action": "Delete template",
      "description": "Delete a message template",
      "resource": "template"
    },
    {
      "name": "Get Template",
      "value": "getTemplate",
      "action": "Get template",
      "description": "Get a specific template by ID",
      "resource": "template"
    },
    {
      "name": "Get Templates",
      "value": "getTemplates",
      "action": "Get templates",
      "description": "Get all message templates",
      "resource": "template"
    },
    {
      "name": "Migrate Templates",
      "value": "migrateTemplates",
      "action": "Migrate templates",
      "description": "Migrate templates between WABAs",
      "resource": "template"
    },
    {
      "name": "Send Template",
      "value": "sendTemplate",
      "action": "Send a template message",
      "description": "Send a template message",
      "resource": "template"
    },
    {
      "name": "Unpause Template",
      "value": "unpauseTemplate",
      "action": "Unpause template",
      "description": "Unpause a previously paused template",
      "resource": "template"
    },
    {
      "name": "Update Template",
      "value": "updateTemplate",
      "action": "Update template",
      "description": "Update an existing template",
      "resource": "template"
    },
    {
      "name": "Upsert Message Templates",
      "value": "upsertMessageTemplates",
      "action": "Upsert message templates",
      "description": "Bulk create/update authentication templates",
      "resource": "template"
    },
    {
      "name": "Delete Webhook URL",
      "value": "deleteWebhookUrl",
      "action": "Delete webhook URL",
      "description": "Delete alternate callback URL",
      "resource": "businessProfile"
    },
    {
      "name": "Get Business Account",
      "value": "getBusinessAccount",
      "action": "Get business account",
      "description": "Get business account details",
      "resource": "businessProfile"
    },
    {
      "name": "Get Business Public Key",
      "value": "getBusinessPublicKey",
      "action": "Get business public key",
      "description": "Get business public key for encryption",
      "resource": "businessProfile"
    },
    {
      "name": "Get Commerce Settings",
      "value": "getCommerceSettings",
      "action": "Get commerce settings",
      "description": "Get commerce settings",
      "resource": "businessProfile"
    },
    {
      "name": "Get Profile",
      "value": "getProfile",
      "action": "Get business profile",
      "description": "Get business profile information",
      "resource": "businessProfile"
    },
    {
      "name": "Get Subscribed Apps",
      "value": "getSubscribedApps",
      "action": "Get subscribed apps",
      "description": "Get apps subscribed to webhooks",
      "resource": "businessProfile"
    },
    {
      "name": "Set Business Public Key",
      "value": "setBusinessPublicKey",
      "action": "Set business public key",
      "description": "Set business public key for encryption",
      "resource": "businessProfile"
    },
    {
      "name": "Set Webhook URL",
      "value": "setWebhookUrl",
      "action": "Set webhook URL",
      "description": "Set alternate callback URL for WABA",
      "resource": "businessProfile"
    },
    {
      "name": "Update Commerce Settings",
      "value": "updateCommerceSettings",
      "action": "Update commerce settings",
      "description": "Update commerce settings",
      "resource": "businessProfile"
    },
    {
      "name": "Update Conversational Automation",
      "value": "updateConversationalAutomation",
      "action": "Update conversational automation",
      "description": "Update commands and ice breakers",
      "resource": "businessProfile"
    },
    {
      "name": "Update Profile",
      "value": "updateProfile",
      "action": "Update business profile",
      "description": "Update business profile information",
      "resource": "businessProfile"
    },
    {
      "name": "Delete Phone Webhook URL",
      "value": "deletePhoneWebhookUrl",
      "action": "Delete phone webhook URL",
      "description": "Delete phone alternate callback URL",
      "resource": "phoneNumber"
    },
    {
      "name": "Deregister Phone",
      "value": "deregisterPhone",
      "action": "Deregister phone number",
      "description": "Deregister a phone number",
      "resource": "phoneNumber"
    },
    {
      "name": "Get Phone Number",
      "value": "getPhoneNumber",
      "action": "Get phone number",
      "description": "Get details of a specific phone number",
      "resource": "phoneNumber"
    },
    {
      "name": "Get Phone Numbers",
      "value": "getPhoneNumbers",
      "action": "Get phone numbers",
      "description": "Get all business phone numbers",
      "resource": "phoneNumber"
    },
    {
      "name": "Get Phone Settings",
      "value": "getPhoneSettings",
      "action": "Get phone settings",
      "description": "Get phone number settings",
      "resource": "phoneNumber"
    },
    {
      "name": "Register Phone",
      "value": "registerPhone",
      "action": "Register phone number",
      "description": "Register a phone number",
      "resource": "phoneNumber"
    },
    {
      "name": "Set Phone Webhook URL",
      "value": "setPhoneWebhookUrl",
      "action": "Set phone webhook URL",
      "description": "Set alternate callback URL for phone",
      "resource": "phoneNumber"
    },
    {
      "name": "Update Conversational Automation",
      "value": "updateConversationalAutomation",
      "action": "Update conversational automation",
      "description": "Update ice breakers and commands",
      "resource": "phoneNumber"
    },
    {
      "name": "Update Display Name",
      "value": "updateDisplayName",
      "action": "Update display name",
      "description": "Update business display name",
      "resource": "phoneNumber"
    },
    {
      "name": "Update Phone Settings",
      "value": "updatePhoneSettings",
      "action": "Update phone settings",
      "description": "Update phone number settings",
      "resource": "phoneNumber"
    },
    {
      "name": "Create Flow",
      "value": "createFlow",
      "action": "Create flow",
      "description": "Create a new flow",
      "resource": "flow"
    },
    {
      "name": "Delete Flow",
      "value": "deleteFlow",
      "action": "Delete flow",
      "description": "Delete a flow",
      "resource": "flow"
    },
    {
      "name": "Deprecate Flow",
      "value": "deprecateFlow",
      "action": "Deprecate flow",
      "description": "Deprecate a flow",
      "resource": "flow"
    },
    {
      "name": "Exchange Data",
      "value": "exchangeData",
      "action": "Exchange data with flow",
      "description": "Send data to Flow using Data Exchange API",
      "resource": "flow"
    },
    {
      "name": "Generate Flow JSON Template",
      "value": "generateFlowTemplate",
      "action": "Generate flow template",
      "description": "Generate Flow JSON template with screens and components",
      "resource": "flow"
    },
    {
      "name": "Get Flow",
      "value": "getFlow",
      "action": "Get flow",
      "description": "Get a specific flow",
      "resource": "flow"
    },
    {
      "name": "Get Flow Assets",
      "value": "getFlowAssets",
      "action": "Get flow assets",
      "description": "Get flow assets",
      "resource": "flow"
    },
    {
      "name": "Get Flow Metrics",
      "value": "getFlowMetrics",
      "action": "Get flow metrics",
      "description": "Get flow performance metrics",
      "resource": "flow"
    },
    {
      "name": "Get Flows",
      "value": "getFlows",
      "action": "Get flows",
      "description": "Get all flows",
      "resource": "flow"
    },
    {
      "name": "Migrate Flows",
      "value": "migrateFlows",
      "action": "Migrate flows",
      "description": "Migrate flows between WABAs",
      "resource": "flow"
    },
    {
      "name": "Publish Flow",
      "value": "publishFlow",
      "action": "Publish flow",
      "description": "Publish a flow",
      "resource": "flow"
    },
    {
      "name": "Update Flow JSON",
      "value": "updateFlowJson",
      "action": "Update flow JSON",
      "description": "Update flow JSON definition",
      "resource": "flow"
    },
    {
      "name": "Update Flow Metadata",
      "value": "updateFlow",
      "action": "Update flow metadata",
      "description": "Update flow metadata",
      "resource": "flow"
    },
    {
      "name": "Accept Call",
      "value": "acceptCall",
      "action": "Accept call",
      "description": "Accept an incoming call",
      "resource": "call"
    },
    {
      "name": "End Call",
      "value": "endCall",
      "action": "End call",
      "description": "End an active call",
      "resource": "call"
    },
    {
      "name": "Get Call Permissions",
      "value": "getCallPermissions",
      "action": "Get call permissions",
      "description": "Get call permissions for phone number",
      "resource": "call"
    },
    {
      "name": "Initiate Call",
      "value": "initiateCall",
      "action": "Initiate call",
      "description": "Initiate a voice/video call",
      "resource": "call"
    },
    {
      "name": "Pre-Accept Call",
      "value": "preAcceptCall",
      "action": "Pre-accept call",
      "description": "Pre-accept an incoming call before fully accepting",
      "resource": "call"
    },
    {
      "name": "Reject Call",
      "value": "rejectCall",
      "action": "Reject call",
      "description": "Reject an incoming call",
      "resource": "call"
    },
    {
      "name": "Terminate Call",
      "value": "terminateCall",
      "action": "Terminate call",
      "description": "Terminate an ongoing call",
      "resource": "call"
    },
    {
      "name": "Create QR Code",
      "value": "createQrCode",
      "action": "Create QR code",
      "description": "Create a new QR code",
      "resource": "qrCode"
    },
    {
      "name": "Delete QR Code",
      "value": "deleteQrCode",
      "action": "Delete QR code",
      "description": "Delete a QR code",
      "resource": "qrCode"
    },
    {
      "name": "Get QR Code",
      "value": "getQrCode",
      "action": "Get QR code",
      "description": "Get a specific QR code",
      "resource": "qrCode"
    },
    {
      "name": "Get QR Codes",
      "value": "getQrCodes",
      "action": "Get QR codes",
      "description": "Get all QR codes",
      "resource": "qrCode"
    },
    {
      "name": "Update QR Code",
      "value": "updateQrCode",
      "action": "Update QR code",
      "description": "Update a QR code",
      "resource": "qrCode"
    },
    {
      "name": "Block User",
      "value": "blockUser",
      "action": "Block user",
      "description": "Block a user from sending messages",
      "resource": "user"
    },
    {
      "name": "Get Blocked Users",
      "value": "getBlockedUsers",
      "action": "Get blocked users",
      "description": "Get list of blocked users",
      "resource": "user"
    },
    {
      "name": "Unblock User",
      "value": "unblockUser",
      "action": "Unblock user",
      "description": "Unblock a previously blocked user",
      "resource": "user"
    },
    {
      "name": "Get App Access Token",
      "value": "getAppAccessToken",
      "action": "Get app access token",
      "description": "Get app-level access token",
      "resource": "system"
    },
    {
      "name": "Set App Callback URL",
      "value": "setAppCallbackUrl",
      "action": "Set app callback URL",
      "description": "Set app-level webhook callback URL",
      "resource": "system"
    }
  ]

npm_readme:
  # n8n-nodes-bcdrllc

  ![BCDR Company](https://r2.bcdr.sa/images/bimilogo.svg)

  **BCDR Company** - Cloud API integration for n8n

  Send messages, media, templates, and manage business communications directly from your n8n workflows.

  ## Installation

  ### Community Nodes (Recommended)

  1. Open n8n
  2. Go to **Settings** > **Community Nodes**
  3. Click **Install** and search for `n8n-nodes-bcdrllc`
  4. Click **Install**

  ### Manual Installation

  ```bash
  npm install n8n-nodes-bcdrllc
  ```

  ## Configuration

  ### Credentials Setup

  1. Get your API credentials from Meta for Developers
  2. In n8n, create new **Bcdrllc API** credentials
  3. Enter the following:
     - **Access Token**: Your access token
     - **Phone Number ID**: Your phone number ID  
     - **Business Account ID**: (Optional) Your business account ID
     - **API Version**: v21.0 (or your preferred version)

  ## Features

  ### Message Operations
  - **Send Text**: Send text messages with URL preview support
  - **Send Interactive**: Send interactive messages with buttons
  - **Send Location**: Share location coordinates
  - **Send Contact**: Send contact information
  - **React to Message**: React to messages with emojis

  ### Media Operations
  - **Send Image**: Send images with optional captions
  - **Send Video**: Send videos with optional captions
  - **Send Audio**: Send audio files
  - **Send Document**: Send documents with custom filenames
  - **Send Sticker**: Send stickers

  ### Template Operations
  - **Send Template**: Send pre-approved template messages

  ## Usage Examples

  ### Send Text Message

  ```json
  {
    "resource": "message",
    "operation": "sendText",
    "to": "966565430200",
    "message": "Hello from BCDR Company!",
    "previewUrl": true
  }
  ```

  ### Send Interactive Message with Buttons

  ```json
  {
    "resource": "message",
    "operation": "sendInteractive",
    "to": "966565430200",
    "bodyText": "Choose an option:",
    "buttons": [
      {"type": "reply", "reply": {"id": "opt1", "title": "Option 1"}},
      {"type": "reply", "reply": {"id": "opt2", "title": "Option 2"}}
    ]
  }
  ```

  ### Send Image

  ```json
  {
    "resource": "media",
    "operation": "sendImage",
    "to": "966565430200",
    "mediaUrl": "https://example.com/image.jpg",
    "caption": "Check this out!"
  }
  ```

  ### Send Template

  ```json
  {
    "resource": "template",
    "operation": "sendTemplate",
    "to": "966565430200",
    "templateName": "hello_world",
    "languageCode": "en",
    "components": []
  }
  ```

  ## About BCDR Company

  **BCDR Company** (شركة بي سي دي آر)

  - **Website**: https://bcdr.sa
  - **Email**: sales@bcdr.sa
  - **Phone**: +966565430200
  - **Location**: Jeddah, Saudi Arabia
  - **CR Number**: 4030587068
  - **VAT Number**: 311728280700003

  ## Support

  For issues and questions:
  - **Email**: sales@bcdr.sa
  - **GitHub**: https://github.com/BCDRLLC/n8n-nodes-bcdrllc/issues
  - **Documentation**: https://bcdr.sa/docs

  ## License

  MIT License - Copyright (c) 2025 BCDR Company

  ## Version

  1.0.0 - Initial release

  ---

  **Built with ❤️ by BCDR Company ®**


node_type: @fundraisingbox/n8n-nodes-fundraisingbox.fundraisingboxTrigger
package_name: @fundraisingbox/n8n-nodes-fundraisingbox
display_name: FundraisingBox Trigger
description: Triggers the workflow when a new event occurs in FundraisingBox
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: p.montag
author_github_url: https://github.com/FundraisingBox/n8n-nodes-fundraisingbox.git
npm_package_name: @fundraisingbox/n8n-nodes-fundraisingbox
npm_version: 1.0.1
community_fetched_at: 2026-04-16T09:43:35.869Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # @fundraisingbox/n8n-nodes-fundraisingbox

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

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

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

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

  ## Installation

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

  ## Operations

  ### FundraisingBox (action node)

  #### Communication

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

  #### Donation

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

  #### Donation Type

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

  #### Person

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

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

  #### Person Address

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

  #### Person Email Address

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

  #### Project

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

  #### Source

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

  ### FundraisingBox Donation Trigger (polling trigger node)

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

  ## Credentials

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

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

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

  ## Compatibility

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

  No known incompatibilities with current n8n versions.

  ## Resources

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

ai_documentation_summary:
  {"purpose":"A polling trigger node that initiates n8n workflows when a new confirmed donation is received in FundraisingBox.","capabilities":["Trigger workflow on new confirmed donations","Maintain checkpoint to track donations processed since last run","Support for FundraisingBox API integration","Access to Person, Communication, Donation, Project, and Source data via related action nodes"],"authentication":"API Key (used as HTTP Basic Auth username)","commonUseCases":["Automate follow-up emails when a donation is received","Create tasks or notifications for fundraising campaigns","Sync donation data to external CRM or reporting systems"],"limitations":["Requires n8n 1.31 or later","Only triggers on new confirmed donations, not all donation events","Initializes checkpoint on first activation and only processes donations after that point"],"relatedNodes":["FundraisingBox Action Node","FundraisingBox Person Node","FundraisingBox Donation Node","FundraisingBox Communication Node"]}


node_type: n8n-nodes-unifi-access.unifiAccessTrigger
package_name: n8n-nodes-unifi-access
display_name: UniFi Access Trigger
description: Starts the workflow when UniFi Access events occur
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: skrapion
author_github_url: https://github.com/Skrapion/
npm_package_name: n8n-nodes-unifi-access
npm_version: 1.0.7
community_fetched_at: 2026-04-16T09:43:35.870Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-unifi-access

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

  UniFi Access is a door control system in the Ubiquiti ecosystem. This node allows you to manage
  users, access policies, NFC cards, etc.

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

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

  * Access Policy Actions
    * Get an access policy
    * Get access policies
  * Credential Actions
    * Delete an NFC card
    * Enroll an NFC card
    * Generate a random PIN
    * Get NFC cards
    * Get an NFC card
  * Device Actions
    * Get devices
  * Notification Actions
    * Add a webhook
    * Delete a webhook
    * Get webhooks
    * Update a webhook
  * User Actions
    * Assign access policies to a user
    * Assign NFC card to a user
    * Clear a user's PIN
    * Create a new user
    * Delete a user
    * Get a user
    * Get users
    * Send UniFi Identity invitation
    * Set a user's PIN
    * Unassign an NFC card from a user
    * Update a user

  ## Triggers
  * Door Position Change
  * Door Unlock
  * Doorbell Call Incoming
  * Doorbell Event Completed
  * Doorbell Request-to-Enter
  * Emergency Status Change
  * Temporary Unlock End
  * Temporary Unlock Start
  * Unlock Schedule Active
  * Unlock Schedule Inactive
  * Visitor Status Change

  ## Credentials

  Create a new API token in the Settings->General section of the Access dashboard. You'll also need to specify the hostname of your Access server, including the port (usually port 12445). You'll probably also have to adjust your firewall to allow your n8n server to access the API port. 

  ## Compatibility

  Tested again n8n 2.4.8 and UniFi Access 4.1.15.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [UniFi Access API Documentation](https://assets.identity.ui.com/unifi-access/api_reference.pdf)

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows based on UniFi Access events and allows management of users, access policies, NFC cards, and devices.","capabilities":["Get access policy","Get access policies","Delete an NFC card","Enroll an NFC card","Generate a random PIN","Get NFC cards","Get an NFC card","Get devices","Add a webhook","Delete a webhook"],"authentication":"API token required (Settings->General in Access dashboard) + Server hostname and port (default 12445)","commonUseCases":["Automatically start workflows when a door is unlocked","Automatically start workflows when a doorbell rings","Automatically start workflows when a visitor status changes","Manage UniFi Access user and device data via n8n workflows","Automate NFC card enrollment and deletion"],"limitations":["Community node (not official n8n node)","Requires specific UniFi Access server configuration (hostname, port, firewall rules)"],"relatedNodes":["n8n-nodes-unifi-unifiAccess","n8n-nodes-unifi-unifiAccessTrigger"]}


node_type: n8n-nodes-renderio.renderio
package_name: n8n-nodes-renderio
display_name: RenderIO
description: Run FFmpeg commands in the cloud with RenderIO
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: hodho
author_github_url: https://github.com/RenderIO/
npm_package_name: n8n-nodes-renderio
npm_version: 0.1.7
community_fetched_at: 2026-04-16T09:43:35.871Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "command",
      "options": [
        {
          "name": "Command",
          "value": "command"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Preset",
          "value": "preset"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "run",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a command",
          "description": "Retrieve a command by ID to check its status and results"
        },
        {
          "name": "Run",
          "value": "run",
          "action": "Run command",
          "description": "Execute a single FFmpeg command with input and output files"
        },
        {
          "name": "Run Chained",
          "value": "runChained",
          "action": "Run chained commands",
          "description": "Execute multiple chained FFmpeg commands sequentially"
        },
        {
          "name": "Run Multiple",
          "value": "runMultiple",
          "action": "Run multiple commands",
          "description": "Execute multiple independent FFmpeg commands in one request"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "command"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a file",
          "description": "Delete a file permanently"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Retrieve a file",
          "description": "Retrieve a single file by ID"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Retrieve a list of files",
          "description": "Retrieve a list of files"
        },
        {
          "name": "Store",
          "value": "store",
          "action": "Store a file from URL",
          "description": "Store a file from a URL into RenderIO storage"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload a file",
          "description": "Upload a binary file directly to RenderIO storage"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "execute",
      "options": [
        {
          "name": "Execute",
          "value": "execute",
          "action": "Execute a preset",
          "description": "Run a preset with provided input files"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a preset",
          "description": "Retrieve a single preset by ID"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many presets",
          "description": "Retrieve a list of presets"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "preset"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a command",
      "description": "Retrieve a command by ID to check its status and results",
      "resource": "command"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run command",
      "description": "Execute a single FFmpeg command with input and output files",
      "resource": "command"
    },
    {
      "name": "Run Chained",
      "value": "runChained",
      "action": "Run chained commands",
      "description": "Execute multiple chained FFmpeg commands sequentially",
      "resource": "command"
    },
    {
      "name": "Run Multiple",
      "value": "runMultiple",
      "action": "Run multiple commands",
      "description": "Execute multiple independent FFmpeg commands in one request",
      "resource": "command"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a file",
      "description": "Delete a file permanently",
      "resource": "file"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Retrieve a file",
      "description": "Retrieve a single file by ID",
      "resource": "file"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Retrieve a list of files",
      "description": "Retrieve a list of files",
      "resource": "file"
    },
    {
      "name": "Store",
      "value": "store",
      "action": "Store a file from URL",
      "description": "Store a file from a URL into RenderIO storage",
      "resource": "file"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload a file",
      "description": "Upload a binary file directly to RenderIO storage",
      "resource": "file"
    },
    {
      "name": "Execute",
      "value": "execute",
      "action": "Execute a preset",
      "description": "Run a preset with provided input files",
      "resource": "preset"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a preset",
      "description": "Retrieve a single preset by ID",
      "resource": "preset"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many presets",
      "description": "Retrieve a list of presets",
      "resource": "preset"
    }
  ]

npm_readme:
  # n8n Nodes - RenderIO integration

  This is an n8n community node that integrates [RenderIO](https://renderio.dev) with your n8n workflows, so you can run FFmpeg commands in the cloud, manage media files, and automate video/audio processing tasks.

  [RenderIO](https://renderio.dev) is an FFmpeg-as-a-Service cloud API that lets you submit FFmpeg commands via API, get results stored in the cloud, and integrate media processing into your automation workflows, while [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) tool for AI workflow automation that allows you to connect various services.

  ## Table of contents

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

  ## Installation (self-hosted)

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

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

  ## Installation (n8n Cloud)

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

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

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

  ## Installation (development and contributing)

  ### Prerequisites

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

  Verify your versions:

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

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

  ```bash
  nvm use
  ```

  ### 1. Clone and Install Dependencies

  Clone the repository and install dependencies:

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

  ### 2. Build the Node Package

  ```bash
  npm run build
  ```

  ### 3. Start Development Server

  Start the n8n development server with your node linked:

  ```bash
  npm run dev
  ```

  ---

  ### Making changes

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

  ```bash
  npm run build
  ```

  ---

  ## Operations

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

  ### Command

  - **Run**: Execute a single FFmpeg command
    - Provide FFmpeg arguments and input files
    - Configurable output format and options
    - Background processing with status polling
  - **Run Chained**: Execute multiple sequential FFmpeg commands
    - Chain commands where output of one feeds into the next
    - Useful for multi-step media processing pipelines
  - **Run Multiple**: Execute multiple independent FFmpeg commands in parallel
    - Process multiple files simultaneously
    - Each command runs independently
  - **Get**: Retrieve a command by ID
    - Check processing status (queued, processing, completed, failed)
    - Access output file references and metadata

  ### File

  - **Store**: Store a file from a URL into RenderIO
    - Import media from any publicly accessible URL
    - File is stored in RenderIO's cloud storage for processing
  - **Upload**: Upload a binary file
    - Upload files directly from your n8n workflow
    - Supports any media format compatible with FFmpeg
  - **Get**: Retrieve a file by ID
    - Access file metadata and download URLs
  - **Get Many**: List files
    - Browse your stored files
    - Pagination support
  - **Delete**: Delete a file
    - Remove files from cloud storage

  ### Preset

  - **Execute**: Run a preset with input files
    - Use predefined FFmpeg command templates
    - Pass different input files to reusable presets
    - Searchable preset list via dynamic dropdown
  - **Get**: Retrieve a preset by ID
    - View preset configuration and FFmpeg command template
  - **Get Many**: List presets
    - Browse available presets

  ### AI Tools

  All RenderIO node operations can be combined with n8n's AI tools to create powerful workflows.
  For example, you can process media files using FFmpeg commands and then use an AI model to analyze, transcribe, or classify the output.

  ## Credentials

  To authenticate with RenderIO:

  1. Sign up or log in at [RenderIO](https://renderio.dev)
  2. Navigate to the **Dashboard** and open the **API Keys** section
  3. Generate a new API key. Keys start with `ffsk_`
  4. In n8n, create a new **RenderIO API** credential
  5. Paste the key into the **API Key** field

  For more details, see the [authentication documentation](https://renderio.dev/docs/getting-started/authentication).

  ## Compatibility

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

  ## Usage

  1. **Store or upload media**: Use **File > Store** to import a media file from a URL, or **File > Upload** to upload a binary file directly.
  2. **Run an FFmpeg command**: Use **Command > Run** to execute an FFmpeg command on the stored file (e.g., transcode, resize, extract audio).
  3. **Check status**: Use **Command > Get** to poll for processing completion.
  4. **Retrieve results**: Use **File > Get** to access the output file.

  For repeated operations, create a **Preset** with your FFmpeg command template, then use **Preset > Execute** to run it with different input files.

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [RenderIO API Documentation](https://renderio.dev/docs)
  - [RenderIO Authentication Documentation](https://renderio.dev/docs/getting-started/authentication)

  ## Version history

  Track changes and updates to the node here.

  ## Troubleshooting

  ### Common issues

  1. **Authentication errors**
     - Verify your API key is correct and starts with `ffsk_`
     - Check that your RenderIO account is active

  2. **Command failures**
     - Verify the FFmpeg arguments are valid
     - Check that input files exist and are accessible
     - Review the command status via **Command > Get** for detailed error messages

  3. **File upload issues**
     - Ensure the file URL is publicly accessible (for Store operations)
     - Verify the file format is supported by FFmpeg
     - Check file size limits on your RenderIO plan

  4. **Operation timeouts**
     - FFmpeg processing runs in the background; use **Command > Get** to poll for completion
     - Large files or complex operations may take longer to process

  ### Getting help

  If you encounter issues:

  1. Check the [RenderIO API Documentation](https://renderio.dev/docs)
  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/RenderIO/n8n-nodes-renderio)


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

updated_at: 2026-04-16 09:43:35
author_name: arquitetura-gptmaker
author_github_url: https://github.com/irrahgroup/delaware-wilmington.git
npm_package_name: @gptmaker/n8n-nodes-gptmaker
npm_version: 1.0.5
community_fetched_at: 2026-04-16T09:43:35.872Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "agent",
      "options": [
        {
          "name": "Agent",
          "value": "agent"
        },
        {
          "name": "Channel",
          "value": "channel"
        },
        {
          "name": "Chat",
          "value": "chat"
        },
        {
          "name": "Intention",
          "value": "intention"
        },
        {
          "name": "Interaction",
          "value": "interaction"
        },
        {
          "name": "Training",
          "value": "training"
        },
        {
          "name": "Workspace",
          "value": "workspace"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Activate",
          "value": "activate",
          "action": "Activate an agent",
          "description": "Set an agent status to active via PUT /v2/agent/{agentId}/active"
        },
        {
          "name": "Add Context",
          "value": "addMessage",
          "action": "Add context to an agent",
          "description": "Add conversation context via POST /v2/agent/{agentId}/add-message"
        },
        {
          "name": "Conversation",
          "value": "conversation",
          "action": "Talk to an agent",
          "description": "Chat with an agent via POST /v2/agent/{agentId}/conversation"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create an agent",
          "description": "Create a new agent via POST /v2/workspace/{workspaceId}/agents"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an agent",
          "description": "Permanently remove an agent via DELETE /v2/agent/{agentId}"
        },
        {
          "name": "Get By ID",
          "value": "getById",
          "action": "Get an agent",
          "description": "Fetch a single agent via GET /v2/agent/{agentId}"
        },
        {
          "name": "Get Credits Spent",
          "value": "getCreditsSpent",
          "action": "Get agent credits spent",
          "description": "Retrieve credits spent via GET /v2/agent/{agentId}/credits-spent"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "List agents in a workspace",
          "description": "Retrieve agents for a workspace via GET /v2/workspace/{workspaceId}/agents"
        },
        {
          "name": "Get Settings",
          "value": "getSettings",
          "action": "Get agent settings",
          "description": "Retrieve agent settings via GET /v2/agent/{agentId}/settings"
        },
        {
          "name": "Get Webhooks",
          "value": "getWebhooks",
          "action": "Get agent webhooks",
          "description": "List all webhooks configured for an agent via GET /v2/agent/{agentId}/webhooks"
        },
        {
          "name": "Inactivate",
          "value": "inactivate",
          "action": "Inactivate an agent",
          "description": "Set an agent status to inactive via PUT /v2/agent/{agentId}/inactive"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an agent",
          "description": "Edit an agent via PUT /v2/agent/{agentId}"
        },
        {
          "name": "Update Settings",
          "value": "updateSettings",
          "action": "Update agent settings",
          "description": "Update agent settings via PUT /v2/agent/{agentId}/settings"
        },
        {
          "name": "Update Webhooks",
          "value": "updateWebhooks",
          "action": "Update agent webhooks",
          "description": "Update webhooks via PUT /v2/agent/{agentId}/webhooks"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a channel",
          "description": "Create a new channel for an agent via POST /v2/agent/{agentId}/create-channel"
        },
        {
          "name": "Create In Workspace",
          "value": "createInWorkspace",
          "action": "Create a channel in a workspace",
          "description": "Create a new channel in a workspace via POST /v2/workspace/{workspaceId}/create-channel"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a channel",
          "description": "Remove a channel via DEL /v2/channel/{channelId}"
        },
        {
          "name": "Get Config",
          "value": "getConfig",
          "action": "Get channel config",
          "description": "Get channel config via GET /v2/channel/{channelId}/config"
        },
        {
          "name": "List By Workspace",
          "value": "getAllByWorkspace",
          "action": "List channels in a workspace",
          "description": "List channels via GET /v2/workspace/{workspaceId}/channels"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a channel",
          "description": "Edit a channel via PUT /v2/channel/{channelId}"
        },
        {
          "name": "Update Config",
          "value": "updateConfig",
          "action": "Update channel config",
          "description": "Update channel config via PUT /v2/channel/{channelId}/config"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "channel"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Delete Chat",
          "value": "deleteChat",
          "action": "Delete chat",
          "description": "Delete a chat (DELETE /v2/chat/{chatId})"
        },
        {
          "name": "Delete Message",
          "value": "deleteMessage",
          "action": "Delete message",
          "description": "Delete a message (DELETE /v2/chat/{chatId}/message/{messageId})"
        },
        {
          "name": "Delete Messages",
          "value": "deleteMessages",
          "action": "Delete messages",
          "description": "Clear messages from a chat (DELETE /v2/chat/{chatId}/messages)"
        },
        {
          "name": "Edit Message",
          "value": "editMessage",
          "action": "Edit message",
          "description": "Edit a message (PUT /v2/chat/{chatId}/message/{messageId})"
        },
        {
          "name": "End Human Support",
          "value": "endHumanSupport",
          "action": "End human support",
          "description": "End human support (PUT /v2/chat/{chatId}/stop-human)"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "List chats",
          "description": "List workspace chats (GET /v2/workspace/{workspaceId}/chats)"
        },
        {
          "name": "List Messages",
          "value": "getMessages",
          "action": "List messages",
          "description": "List chat messages (GET /v2/chat/{chatId}/messages)"
        },
        {
          "name": "Send Message",
          "value": "sendMessage",
          "action": "Send message",
          "description": "Send a new message to the chat (POST /v2/chat/{chatId}/send-message)"
        },
        {
          "name": "Take Over Support",
          "value": "takeOverSupport",
          "action": "Take over support",
          "description": "Mark that a human will take over the support (PUT /v2/chat/{chatId}/start-human)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllByWorkspace",
      "options": [
        {
          "name": "List Interactions",
          "value": "getAllByWorkspace",
          "action": "List interactions in a workspace",
          "description": "GET /v2/workspace/{workspaceId}/interactions"
        },
        {
          "name": "Delete Interaction",
          "value": "delete",
          "action": "Delete an interaction",
          "description": "DELETE /v2/interaction/{ID}"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "interaction"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List intentions",
          "description": "List agent intentions via GET /v2/agent/{agentId}/intentions"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create an intention",
          "description": "Create an intention via POST /v2/agent/{agentId}/intentions"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an intention",
          "description": "Update an intention via PUT /v2/intention/{intentionId}"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an intention",
          "description": "Delete an intention via DELETE /v2/intention/{intentionId}"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "intention"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a training",
          "description": "Add a new training via POST /v2/agent/{agentId}/trainings"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "List trainings",
          "description": "List trainings via GET /v2/agent/{agentId}/trainings"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a training",
          "description": "Update a training via PUT /v2/training/{trainingId} (TEXT only)"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a training",
          "description": "Delete a training via DELETE /v2/training/{trainingId}"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "training"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "List all workspaces",
          "description": "Retrieve many workspaces via GET /v2/workspaces"
        },
        {
          "name": "Get Credits Balance",
          "value": "getCredits",
          "action": "Get workspace credits balance",
          "description": "Retrieve workspace credits via GET /v2/workspace/{workspaceId}/credits"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workspace"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Activate",
      "value": "activate",
      "action": "Activate an agent",
      "description": "Set an agent status to active via PUT /v2/agent/{agentId}/active",
      "resource": "agent"
    },
    {
      "name": "Add Context",
      "value": "addMessage",
      "action": "Add context to an agent",
      "description": "Add conversation context via POST /v2/agent/{agentId}/add-message",
      "resource": "agent"
    },
    {
      "name": "Conversation",
      "value": "conversation",
      "action": "Talk to an agent",
      "description": "Chat with an agent via POST /v2/agent/{agentId}/conversation",
      "resource": "agent"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an agent",
      "description": "Create a new agent via POST /v2/workspace/{workspaceId}/agents",
      "resource": "agent"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an agent",
      "description": "Permanently remove an agent via DELETE /v2/agent/{agentId}",
      "resource": "agent"
    },
    {
      "name": "Get By ID",
      "value": "getById",
      "action": "Get an agent",
      "description": "Fetch a single agent via GET /v2/agent/{agentId}",
      "resource": "agent"
    },
    {
      "name": "Get Credits Spent",
      "value": "getCreditsSpent",
      "action": "Get agent credits spent",
      "description": "Retrieve credits spent via GET /v2/agent/{agentId}/credits-spent",
      "resource": "agent"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "List agents in a workspace",
      "description": "Retrieve agents for a workspace via GET /v2/workspace/{workspaceId}/agents",
      "resource": "agent"
    },
    {
      "name": "Get Settings",
      "value": "getSettings",
      "action": "Get agent settings",
      "description": "Retrieve agent settings via GET /v2/agent/{agentId}/settings",
      "resource": "agent"
    },
    {
      "name": "Get Webhooks",
      "value": "getWebhooks",
      "action": "Get agent webhooks",
      "description": "List all webhooks configured for an agent via GET /v2/agent/{agentId}/webhooks",
      "resource": "agent"
    },
    {
      "name": "Inactivate",
      "value": "inactivate",
      "action": "Inactivate an agent",
      "description": "Set an agent status to inactive via PUT /v2/agent/{agentId}/inactive",
      "resource": "agent"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an agent",
      "description": "Edit an agent via PUT /v2/agent/{agentId}",
      "resource": "agent"
    },
    {
      "name": "Update Settings",
      "value": "updateSettings",
      "action": "Update agent settings",
      "description": "Update agent settings via PUT /v2/agent/{agentId}/settings",
      "resource": "agent"
    },
    {
      "name": "Update Webhooks",
      "value": "updateWebhooks",
      "action": "Update agent webhooks",
      "description": "Update webhooks via PUT /v2/agent/{agentId}/webhooks",
      "resource": "agent"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a channel",
      "description": "Create a new channel for an agent via POST /v2/agent/{agentId}/create-channel",
      "resource": "channel"
    },
    {
      "name": "Create In Workspace",
      "value": "createInWorkspace",
      "action": "Create a channel in a workspace",
      "description": "Create a new channel in a workspace via POST /v2/workspace/{workspaceId}/create-channel",
      "resource": "channel"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a channel",
      "description": "Remove a channel via DEL /v2/channel/{channelId}",
      "resource": "channel"
    },
    {
      "name": "Get Config",
      "value": "getConfig",
      "action": "Get channel config",
      "description": "Get channel config via GET /v2/channel/{channelId}/config",
      "resource": "channel"
    },
    {
      "name": "List By Workspace",
      "value": "getAllByWorkspace",
      "action": "List channels in a workspace",
      "description": "List channels via GET /v2/workspace/{workspaceId}/channels",
      "resource": "channel"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a channel",
      "description": "Edit a channel via PUT /v2/channel/{channelId}",
      "resource": "channel"
    },
    {
      "name": "Update Config",
      "value": "updateConfig",
      "action": "Update channel config",
      "description": "Update channel config via PUT /v2/channel/{channelId}/config",
      "resource": "channel"
    },
    {
      "name": "Delete Chat",
      "value": "deleteChat",
      "action": "Delete chat",
      "description": "Delete a chat (DELETE /v2/chat/{chatId})",
      "resource": "chat"
    },
    {
      "name": "Delete Message",
      "value": "deleteMessage",
      "action": "Delete message",
      "description": "Delete a message (DELETE /v2/chat/{chatId}/message/{messageId})",
      "resource": "chat"
    },
    {
      "name": "Delete Messages",
      "value": "deleteMessages",
      "action": "Delete messages",
      "description": "Clear messages from a chat (DELETE /v2/chat/{chatId}/messages)",
      "resource": "chat"
    },
    {
      "name": "Edit Message",
      "value": "editMessage",
      "action": "Edit message",
      "description": "Edit a message (PUT /v2/chat/{chatId}/message/{messageId})",
      "resource": "chat"
    },
    {
      "name": "End Human Support",
      "value": "endHumanSupport",
      "action": "End human support",
      "description": "End human support (PUT /v2/chat/{chatId}/stop-human)",
      "resource": "chat"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "List chats",
      "description": "List workspace chats (GET /v2/workspace/{workspaceId}/chats)",
      "resource": "chat"
    },
    {
      "name": "List Messages",
      "value": "getMessages",
      "action": "List messages",
      "description": "List chat messages (GET /v2/chat/{chatId}/messages)",
      "resource": "chat"
    },
    {
      "name": "Send Message",
      "value": "sendMessage",
      "action": "Send message",
      "description": "Send a new message to the chat (POST /v2/chat/{chatId}/send-message)",
      "resource": "chat"
    },
    {
      "name": "Take Over Support",
      "value": "takeOverSupport",
      "action": "Take over support",
      "description": "Mark that a human will take over the support (PUT /v2/chat/{chatId}/start-human)",
      "resource": "chat"
    },
    {
      "name": "List Interactions",
      "value": "getAllByWorkspace",
      "action": "List interactions in a workspace",
      "description": "GET /v2/workspace/{workspaceId}/interactions",
      "resource": "interaction"
    },
    {
      "name": "Delete Interaction",
      "value": "delete",
      "action": "Delete an interaction",
      "description": "DELETE /v2/interaction/{ID}",
      "resource": "interaction"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List intentions",
      "description": "List agent intentions via GET /v2/agent/{agentId}/intentions",
      "resource": "intention"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an intention",
      "description": "Create an intention via POST /v2/agent/{agentId}/intentions",
      "resource": "intention"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an intention",
      "description": "Update an intention via PUT /v2/intention/{intentionId}",
      "resource": "intention"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an intention",
      "description": "Delete an intention via DELETE /v2/intention/{intentionId}",
      "resource": "intention"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a training",
      "description": "Add a new training via POST /v2/agent/{agentId}/trainings",
      "resource": "training"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "List trainings",
      "description": "List trainings via GET /v2/agent/{agentId}/trainings",
      "resource": "training"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a training",
      "description": "Update a training via PUT /v2/training/{trainingId} (TEXT only)",
      "resource": "training"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a training",
      "description": "Delete a training via DELETE /v2/training/{trainingId}",
      "resource": "training"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "List all workspaces",
      "description": "Retrieve many workspaces via GET /v2/workspaces",
      "resource": "workspace"
    },
    {
      "name": "Get Credits Balance",
      "value": "getCredits",
      "action": "Get workspace credits balance",
      "description": "Retrieve workspace credits via GET /v2/workspace/{workspaceId}/credits",
      "resource": "workspace"
    }
  ]

npm_readme:
  # @gptmaker/n8n-nodes-gptmaker

  Community node for the GPTMaker API.

  Repository: https://github.com/irrahgroup/delaware-wilmington

  ## Features

  - Native n8n resource/operation structure
  - Bearer token authentication
  - Dynamic dropdowns for Workspace and Agent
  - Support for Workspace, Agent, Channel, Chat, Intention, Interaction, and Training resources
  - Compatible with manual execution and multi-item workflows

  ## Supported Resources

  ### Workspace
  - Get many workspaces
  - Get workspace credits balance

  ### Agent
  - Create, get, update, delete, activate, inactivate
  - Conversation and context message actions
  - Get credits spent
  - Get/update settings
  - Get/update webhooks

  ### Channel
  - Create in agent or workspace context
  - Get many by workspace
  - Update/delete channel
  - Get/update channel config

  ### Chat
  - Get many chats by workspace
  - List messages
  - Send/edit/delete message
  - Delete chat messages
  - Delete chat
  - Start/stop human support

  ### Intention
  - List
  - Create
  - Update
  - Delete

  ### Interaction
  - List by workspace
  - Delete

  ### Training
  - Create
  - Get many
  - Update (TEXT)
  - Delete

  ## Authentication

  This node uses one credential:

  - GPTMaker API
    - API Token

  Token setup guide (official docs):

  - https://developer.gptmaker.ai/api-reference/introduction#autentica%C3%A7%C3%A3o

  Credential setup flow in n8n:

  1. Create a new `GPTMaker API` credential.
  2. Paste your GPTMaker API token into `API Token`.
  3. Save and test the credential.

  ## Installation

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

  Restart n8n after installation.

  ## Example Workflow

  A sanitized workflow example is included at the project root:

  - `workflow-example-gptmaker.json`

  Use this file as a base for Creator Portal submission and internal QA.

  ## Publishing

  Current release strategy: manual publish.

  ```bash
  npm run lint
  npm run build
  npm publish --access public
  ```

  Provenance-ready workflow is included for GitHub Actions:

  - `.github/workflows/publish-provenance.yml`

  It uses `npm publish --provenance --access public` and requires `NPM_TOKEN` in repository secrets.

  ## Development

  ```bash
  npm run build
  npm run dev
  npm run lint
  ```

  Project structure:

  - `nodes/GptMaker/GptMaker.node.ts`: main node definition
  - `nodes/GptMaker/GptMakerApi.credentials.ts`: credential definition
  - `nodes/GptMaker/descriptions/`: node fields and operations
  - `nodes/GptMaker/resources/`: execution logic
  - `nodes/GptMaker/Helpers.ts`: shared API request helper

  ## License

  MIT


node_type: @seranking/n8n-nodes-seranking.seRanking
package_name: @seranking/n8n-nodes-seranking
display_name: SE Ranking
description: Interact with SE Ranking API for SEO data
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: mikhail.liubushkin
author_github_url: https://github.com/seranking/n8n-nodes-seranking.git
npm_package_name: @seranking/n8n-nodes-seranking
npm_version: 1.4.0
community_fetched_at: 2026-04-16T09:43:35.873Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "domainAnalysis",
      "options": [
        {
          "name": "AI Search",
          "value": "aiSearch",
          "description": "LLM visibility and AI search data"
        },
        {
          "name": "Backlinks",
          "value": "backlinks",
          "description": "Backlink analysis and authority metrics"
        },
        {
          "name": "Domain Analysis",
          "value": "domainAnalysis",
          "description": "Domain keyword rankings and competitor analysis"
        },
        {
          "name": "Keyword Research",
          "value": "keywordResearch",
          "description": "Keyword metrics, volume, CPC, and related keywords"
        },
        {
          "name": "SERP Classic",
          "value": "serpClassic",
          "description": "SERP tracking and results retrieval"
        },
        {
          "name": "Website Audit",
          "value": "websiteAudit",
          "description": "Site crawling, technical SEO, and on-page analysis"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getOverview",
      "options": [
        {
          "name": "Get Overview",
          "value": "getOverview",
          "action": "Get AI search overview",
          "description": "Get LLM visibility metrics for a domain"
        },
        {
          "name": "Discover Brand",
          "value": "discoverBrand",
          "action": "Discover brand name",
          "description": "Identify brand name for a domain"
        },
        {
          "name": "Get Prompts by Target",
          "value": "getPromptsByTarget",
          "action": "Get prompts by target",
          "description": "Get prompts mentioning target domain"
        },
        {
          "name": "Get Prompts by Brand",
          "value": "getPromptsByBrand",
          "action": "Get prompts by brand",
          "description": "Get prompts mentioning brand name"
        },
        {
          "name": "Get Leaderboard",
          "value": "getLeaderboard",
          "action": "Get AI search leaderboard",
          "description": "Compare domain performance against competitors across LLMs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getSummary",
      "options": [
        {
          "name": "Get Summary",
          "value": "getSummary",
          "action": "Get backlinks summary",
          "description": "Get extended backlink statistics (total links, domains, etc)"
        },
        {
          "name": "Get Metrics",
          "value": "getMetrics",
          "action": "Get backlink metrics",
          "description": "Get key backlink metrics for one or more targets"
        },
        {
          "name": "Get All Backlinks",
          "value": "getAll",
          "action": "Get all backlinks",
          "description": "Get detailed list of backlinks (supports sorting/pagination)"
        },
        {
          "name": "Get Raw Backlinks",
          "value": "getRaw",
          "action": "Get raw backlinks",
          "description": "Stream backlinks in batches (cursor-based for large datasets)"
        },
        {
          "name": "Get Count",
          "value": "getCount",
          "action": "Get backlinks count",
          "description": "Get total number of backlinks to a target"
        },
        {
          "name": "Export Backlinks",
          "value": "export",
          "action": "Export backlinks",
          "description": "Bulk export all backlinks (for large-scale retrieval)"
        },
        {
          "name": "Check Export Status",
          "value": "exportStatus",
          "action": "Check export status",
          "description": "Check status of bulk export job"
        },
        {
          "name": "Download Export Data",
          "value": "exportDownload",
          "action": "Download export data",
          "description": "Download completed export data"
        },
        {
          "name": "Get History",
          "value": "getHistory",
          "action": "Get backlinks history",
          "description": "Get backlinks found or lost in a date range"
        },
        {
          "name": "Get History Count",
          "value": "getHistoryCount",
          "action": "Get backlinks history count",
          "description": "Get daily counts of new/lost backlinks over a date range"
        },
        {
          "name": "Get Cumulative History",
          "value": "getCumulativeHistory",
          "action": "Get cumulative backlinks history",
          "description": "Get daily total of live backlinks over a date range"
        },
        {
          "name": "Get Anchors",
          "value": "getAnchors",
          "action": "Get anchor texts",
          "description": "Get anchor texts of backlinks pointing to the target"
        },
        {
          "name": "Get Referring Domains",
          "value": "getRefDomains",
          "action": "Get referring domains",
          "description": "Get list of domains linking to the target"
        },
        {
          "name": "Get Referring Domains Count",
          "value": "getRefDomainsCount",
          "action": "Get referring domains count",
          "description": "Get number of unique referring domains"
        },
        {
          "name": "Get Referring Domains History",
          "value": "getRefDomainsHistory",
          "action": "Get referring domains history",
          "description": "Get referring domains with new/lost links in a date range"
        },
        {
          "name": "Get Referring Domains History Count",
          "value": "getRefDomainsHistoryCount",
          "action": "Get referring domains history count",
          "description": "Get count of referring domains with link changes"
        },
        {
          "name": "Get Referring IPs",
          "value": "getReferringIps",
          "action": "Get referring IPs",
          "description": "Get IPv4 addresses of sites linking to the target"
        },
        {
          "name": "Get Referring IPs Count",
          "value": "getReferringIpsCount",
          "action": "Get referring IPs count",
          "description": "Get number of unique IP addresses linking to the target"
        },
        {
          "name": "Get Referring Subnets Count",
          "value": "getReferringSubnetsCount",
          "action": "Get referring subnets count",
          "description": "Get number of unique /24 IP subnets linking to the target"
        },
        {
          "name": "Get Indexed Pages",
          "value": "getIndexedPages",
          "action": "Get indexed pages",
          "description": "Get pages indexed or found by the backlink crawler"
        },
        {
          "name": "Get Authority",
          "value": "getAuthority",
          "action": "Get authority metrics",
          "description": "Get InLink Rank (page authority) and Domain InLink Rank"
        },
        {
          "name": "Get Domain Authority",
          "value": "getDomainAuthority",
          "action": "Get domain authority",
          "description": "Get Domain InLink Rank for the target domain"
        },
        {
          "name": "Get Domain Authority Distribution",
          "value": "getDomainAuthorityDistribution",
          "action": "Get domain authority distribution",
          "description": "Get distribution of domain authority scores among linking domains"
        },
        {
          "name": "Get Page Authority",
          "value": "getPageAuthority",
          "action": "Get page authority",
          "description": "Get InLink Rank (authority) for the target URL"
        },
        {
          "name": "Get Page Authority History",
          "value": "getPageAuthorityHistory",
          "action": "Get page authority history",
          "description": "Get historical InLink Rank values for the target URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "backlinks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getOverviewWorldwide",
      "options": [
        {
          "name": "Get Regional Database Overview",
          "value": "getOverviewDb",
          "action": "Get regional database overview",
          "description": "Get detailed statistics for a specific regional database (FAST)"
        },
        {
          "name": "Get Worldwide Aggregate",
          "value": "getOverviewWorldwide",
          "action": "Get worldwide aggregate statistics",
          "description": "Get worldwide aggregate statistics for a domain (RECOMMENDED)"
        },
        {
          "name": "Get Worldwide Aggregate for URL",
          "value": "getWorldwideAggregateUrl",
          "action": "Get worldwide aggregate for URL",
          "description": "Aggregate a specific URL's global search performance statistics for both organic and paid traffic"
        },
        {
          "name": "Get Domain Pages",
          "value": "getDomainPages",
          "action": "Get domain pages",
          "description": "Get a filterable list of pages for a domain with their keyword performance metrics"
        },
        {
          "name": "Get Domain Subdomains",
          "value": "getDomainSubdomains",
          "action": "Get domain subdomains",
          "description": "Get a list of subdomains for a domain with their traffic and keyword metrics"
        },
        {
          "name": "Get Overview History",
          "value": "getOverviewHistory",
          "action": "Get overview history",
          "description": "Get historical domain metrics over a date range"
        },
        {
          "name": "Get Keywords",
          "value": "getKeywords",
          "action": "Get domain keywords",
          "description": "Get keywords for which a domain ranks"
        },
        {
          "name": "Get Keywords Comparison",
          "value": "getKeywordsComparison",
          "action": "Get keywords comparison",
          "description": "Compare keyword rankings between two domains"
        },
        {
          "name": "Get Competitors",
          "value": "getCompetitors",
          "action": "Get domain competitors",
          "description": "Get competitor domains"
        },
        {
          "name": "Get Paid Ads for Keyword",
          "value": "getAdsForKeyword",
          "action": "Get paid ads for keyword",
          "description": "Get domains advertising on a specific keyword"
        },
        {
          "name": "Get Paid Ads for Domain",
          "value": "getAdsForDomain",
          "action": "Get paid ads for domain",
          "description": "Get keywords a domain is advertising on"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "domainAnalysis"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "exportMetrics",
      "options": [
        {
          "name": "Export Metrics",
          "value": "exportMetrics",
          "action": "Export keyword metrics",
          "description": "Get volume, CPC, competition, and difficulty for multiple keywords"
        },
        {
          "name": "Get Similar Keywords",
          "value": "getSimilar",
          "action": "Get similar keywords",
          "description": "Find semantically similar keywords"
        },
        {
          "name": "Get Related Keywords",
          "value": "getRelated",
          "action": "Get related keywords",
          "description": "Find topically related keywords with overlapping URLs"
        },
        {
          "name": "Get Question Keywords",
          "value": "getQuestions",
          "action": "Get question keywords",
          "description": "Find question-based keywords"
        },
        {
          "name": "Get Longtail Keywords",
          "value": "getLongtail",
          "action": "Get longtail keywords",
          "description": "Find long-tail keyword variations"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "keywordResearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "addTasks",
      "options": [
        {
          "name": "Add Tasks",
          "value": "addTasks",
          "action": "Add SERP tasks",
          "description": "Create SERP tasks for keywords (returns task IDs)"
        },
        {
          "name": "Get Results (standard)",
          "value": "getResults",
          "action": "Get SERP results",
          "description": "Get status or standard SERP results for a task"
        },
        {
          "name": "List Tasks",
          "value": "listTasks",
          "action": "List SERP tasks",
          "description": "List recent SERP tasks (last 24 hours)"
        },
        {
          "name": "Get Advanced Results",
          "value": "getAdvancedResults",
          "action": "Get advanced SERP results",
          "description": "Retrieve advanced (detailed) SERP results"
        },
        {
          "name": "Get Locations",
          "value": "getLocations",
          "action": "Get SERP locations",
          "description": "Get available location IDs for SERP queries"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "serpClassic"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAudits",
      "options": [
        {
          "name": "Create Standard Audit",
          "value": "createStandard",
          "action": "Create standard audit",
          "description": "Launch a standard (HTML) site audit"
        },
        {
          "name": "Create Advanced Audit",
          "value": "createAdvanced",
          "action": "Create advanced audit",
          "description": "Launch a JS-rendered site audit (for SPAs)"
        },
        {
          "name": "List Audits",
          "value": "listAudits",
          "action": "List all audits",
          "description": "Get all audits with status for the account"
        },
        {
          "name": "Get Audit Status",
          "value": "getStatus",
          "action": "Get audit status",
          "description": "Get status/progress of a specific audit"
        },
        {
          "name": "Get Audit Report",
          "value": "getReport",
          "action": "Get audit report",
          "description": "Retrieve full audit report for a completed audit"
        },
        {
          "name": "Get Crawled Pages",
          "value": "getCrawl",
          "action": "Get crawled pages",
          "description": "Get list of crawled pages for an audit"
        },
        {
          "name": "Get Issues by Type",
          "value": "getIssuesByType",
          "action": "Get issues by type",
          "description": "Get pages affected by a specific issue type"
        },
        {
          "name": "Get Issues by URL",
          "value": "getIssuesByUrl",
          "action": "Get issues for URL",
          "description": "Get all issue details for a specific audited URL"
        },
        {
          "name": "Get Links",
          "value": "getLinks",
          "action": "Get audit links",
          "description": "Get all outgoing links found during the audit"
        },
        {
          "name": "Get Audit History",
          "value": "getHistory",
          "action": "Get audit history",
          "description": "Get historical snapshot of a specific audit run"
        },
        {
          "name": "Update Audit",
          "value": "updateAudit",
          "action": "Update audit details",
          "description": "Update the title of an audit"
        },
        {
          "name": "Delete Audit",
          "value": "deleteAudit",
          "action": "Delete audit",
          "description": "Delete an audit by ID"
        },
        {
          "name": "Recheck Standard Audit",
          "value": "recheckStandard",
          "action": "Recheck standard audit",
          "description": "Re-run a standard audit with same settings"
        },
        {
          "name": "Recheck Advanced Audit",
          "value": "recheckAdvanced",
          "action": "Recheck advanced audit",
          "description": "Re-run an advanced audit with same settings"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "websiteAudit"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Overview",
      "value": "getOverview",
      "action": "Get AI search overview",
      "description": "Get LLM visibility metrics for a domain",
      "resource": "aiSearch"
    },
    {
      "name": "Discover Brand",
      "value": "discoverBrand",
      "action": "Discover brand name",
      "description": "Identify brand name for a domain",
      "resource": "aiSearch"
    },
    {
      "name": "Get Prompts by Target",
      "value": "getPromptsByTarget",
      "action": "Get prompts by target",
      "description": "Get prompts mentioning target domain",
      "resource": "aiSearch"
    },
    {
      "name": "Get Prompts by Brand",
      "value": "getPromptsByBrand",
      "action": "Get prompts by brand",
      "description": "Get prompts mentioning brand name",
      "resource": "aiSearch"
    },
    {
      "name": "Get Leaderboard",
      "value": "getLeaderboard",
      "action": "Get AI search leaderboard",
      "description": "Compare domain performance against competitors across LLMs",
      "resource": "aiSearch"
    },
    {
      "name": "Get Summary",
      "value": "getSummary",
      "action": "Get backlinks summary",
      "description": "Get extended backlink statistics (total links, domains, etc)",
      "resource": "backlinks"
    },
    {
      "name": "Get Metrics",
      "value": "getMetrics",
      "action": "Get backlink metrics",
      "description": "Get key backlink metrics for one or more targets",
      "resource": "backlinks"
    },
    {
      "name": "Get All Backlinks",
      "value": "getAll",
      "action": "Get all backlinks",
      "description": "Get detailed list of backlinks (supports sorting/pagination)",
      "resource": "backlinks"
    },
    {
      "name": "Get Raw Backlinks",
      "value": "getRaw",
      "action": "Get raw backlinks",
      "description": "Stream backlinks in batches (cursor-based for large datasets)",
      "resource": "backlinks"
    },
    {
      "name": "Get Count",
      "value": "getCount",
      "action": "Get backlinks count",
      "description": "Get total number of backlinks to a target",
      "resource": "backlinks"
    },
    {
      "name": "Export Backlinks",
      "value": "export",
      "action": "Export backlinks",
      "description": "Bulk export all backlinks (for large-scale retrieval)",
      "resource": "backlinks"
    },
    {
      "name": "Check Export Status",
      "value": "exportStatus",
      "action": "Check export status",
      "description": "Check status of bulk export job",
      "resource": "backlinks"
    },
    {
      "name": "Download Export Data",
      "value": "exportDownload",
      "action": "Download export data",
      "description": "Download completed export data",
      "resource": "backlinks"
    },
    {
      "name": "Get History",
      "value": "getHistory",
      "action": "Get backlinks history",
      "description": "Get backlinks found or lost in a date range",
      "resource": "backlinks"
    },
    {
      "name": "Get History Count",
      "value": "getHistoryCount",
      "action": "Get backlinks history count",
      "description": "Get daily counts of new/lost backlinks over a date range",
      "resource": "backlinks"
    },
    {
      "name": "Get Cumulative History",
      "value": "getCumulativeHistory",
      "action": "Get cumulative backlinks history",
      "description": "Get daily total of live backlinks over a date range",
      "resource": "backlinks"
    },
    {
      "name": "Get Anchors",
      "value": "getAnchors",
      "action": "Get anchor texts",
      "description": "Get anchor texts of backlinks pointing to the target",
      "resource": "backlinks"
    },
    {
      "name": "Get Referring Domains",
      "value": "getRefDomains",
      "action": "Get referring domains",
      "description": "Get list of domains linking to the target",
      "resource": "backlinks"
    },
    {
      "name": "Get Referring Domains Count",
      "value": "getRefDomainsCount",
      "action": "Get referring domains count",
      "description": "Get number of unique referring domains",
      "resource": "backlinks"
    },
    {
      "name": "Get Referring Domains History",
      "value": "getRefDomainsHistory",
      "action": "Get referring domains history",
      "description": "Get referring domains with new/lost links in a date range",
      "resource": "backlinks"
    },
    {
      "name": "Get Referring Domains History Count",
      "value": "getRefDomainsHistoryCount",
      "action": "Get referring domains history count",
      "description": "Get count of referring domains with link changes",
      "resource": "backlinks"
    },
    {
      "name": "Get Referring IPs",
      "value": "getReferringIps",
      "action": "Get referring IPs",
      "description": "Get IPv4 addresses of sites linking to the target",
      "resource": "backlinks"
    },
    {
      "name": "Get Referring IPs Count",
      "value": "getReferringIpsCount",
      "action": "Get referring IPs count",
      "description": "Get number of unique IP addresses linking to the target",
      "resource": "backlinks"
    },
    {
      "name": "Get Referring Subnets Count",
      "value": "getReferringSubnetsCount",
      "action": "Get referring subnets count",
      "description": "Get number of unique /24 IP subnets linking to the target",
      "resource": "backlinks"
    },
    {
      "name": "Get Indexed Pages",
      "value": "getIndexedPages",
      "action": "Get indexed pages",
      "description": "Get pages indexed or found by the backlink crawler",
      "resource": "backlinks"
    },
    {
      "name": "Get Authority",
      "value": "getAuthority",
      "action": "Get authority metrics",
      "description": "Get InLink Rank (page authority) and Domain InLink Rank",
      "resource": "backlinks"
    },
    {
      "name": "Get Domain Authority",
      "value": "getDomainAuthority",
      "action": "Get domain authority",
      "description": "Get Domain InLink Rank for the target domain",
      "resource": "backlinks"
    },
    {
      "name": "Get Domain Authority Distribution",
      "value": "getDomainAuthorityDistribution",
      "action": "Get domain authority distribution",
      "description": "Get distribution of domain authority scores among linking domains",
      "resource": "backlinks"
    },
    {
      "name": "Get Page Authority",
      "value": "getPageAuthority",
      "action": "Get page authority",
      "description": "Get InLink Rank (authority) for the target URL",
      "resource": "backlinks"
    },
    {
      "name": "Get Page Authority History",
      "value": "getPageAuthorityHistory",
      "action": "Get page authority history",
      "description": "Get historical InLink Rank values for the target URL",
      "resource": "backlinks"
    },
    {
      "name": "Get Regional Database Overview",
      "value": "getOverviewDb",
      "action": "Get regional database overview",
      "description": "Get detailed statistics for a specific regional database (FAST)",
      "resource": "domainAnalysis"
    },
    {
      "name": "Get Worldwide Aggregate",
      "value": "getOverviewWorldwide",
      "action": "Get worldwide aggregate statistics",
      "description": "Get worldwide aggregate statistics for a domain (RECOMMENDED)",
      "resource": "domainAnalysis"
    },
    {
      "name": "Get Worldwide Aggregate for URL",
      "value": "getWorldwideAggregateUrl",
      "action": "Get worldwide aggregate for URL",
      "description": "Aggregate a specific URL's global search performance statistics for both organic and paid traffic",
      "resource": "domainAnalysis"
    },
    {
      "name": "Get Domain Pages",
      "value": "getDomainPages",
      "action": "Get domain pages",
      "description": "Get a filterable list of pages for a domain with their keyword performance metrics",
      "resource": "domainAnalysis"
    },
    {
      "name": "Get Domain Subdomains",
      "value": "getDomainSubdomains",
      "action": "Get domain subdomains",
      "description": "Get a list of subdomains for a domain with their traffic and keyword metrics",
      "resource": "domainAnalysis"
    },
    {
      "name": "Get Overview History",
      "value": "getOverviewHistory",
      "action": "Get overview history",
      "description": "Get historical domain metrics over a date range",
      "resource": "domainAnalysis"
    },
    {
      "name": "Get Keywords",
      "value": "getKeywords",
      "action": "Get domain keywords",
      "description": "Get keywords for which a domain ranks",
      "resource": "domainAnalysis"
    },
    {
      "name": "Get Keywords Comparison",
      "value": "getKeywordsComparison",
      "action": "Get keywords comparison",
      "description": "Compare keyword rankings between two domains",
      "resource": "domainAnalysis"
    },
    {
      "name": "Get Competitors",
      "value": "getCompetitors",
      "action": "Get domain competitors",
      "description": "Get competitor domains",
      "resource": "domainAnalysis"
    },
    {
      "name": "Get Paid Ads for Keyword",
      "value": "getAdsForKeyword",
      "action": "Get paid ads for keyword",
      "description": "Get domains advertising on a specific keyword",
      "resource": "domainAnalysis"
    },
    {
      "name": "Get Paid Ads for Domain",
      "value": "getAdsForDomain",
      "action": "Get paid ads for domain",
      "description": "Get keywords a domain is advertising on",
      "resource": "domainAnalysis"
    },
    {
      "name": "Export Metrics",
      "value": "exportMetrics",
      "action": "Export keyword metrics",
      "description": "Get volume, CPC, competition, and difficulty for multiple keywords",
      "resource": "keywordResearch"
    },
    {
      "name": "Get Similar Keywords",
      "value": "getSimilar",
      "action": "Get similar keywords",
      "description": "Find semantically similar keywords",
      "resource": "keywordResearch"
    },
    {
      "name": "Get Related Keywords",
      "value": "getRelated",
      "action": "Get related keywords",
      "description": "Find topically related keywords with overlapping URLs",
      "resource": "keywordResearch"
    },
    {
      "name": "Get Question Keywords",
      "value": "getQuestions",
      "action": "Get question keywords",
      "description": "Find question-based keywords",
      "resource": "keywordResearch"
    },
    {
      "name": "Get Longtail Keywords",
      "value": "getLongtail",
      "action": "Get longtail keywords",
      "description": "Find long-tail keyword variations",
      "resource": "keywordResearch"
    },
    {
      "name": "Add Tasks",
      "value": "addTasks",
      "action": "Add SERP tasks",
      "description": "Create SERP tasks for keywords (returns task IDs)",
      "resource": "serpClassic"
    },
    {
      "name": "Get Results (standard)",
      "value": "getResults",
      "action": "Get SERP results",
      "description": "Get status or standard SERP results for a task",
      "resource": "serpClassic"
    },
    {
      "name": "List Tasks",
      "value": "listTasks",
      "action": "List SERP tasks",
      "description": "List recent SERP tasks (last 24 hours)",
      "resource": "serpClassic"
    },
    {
      "name": "Get Advanced Results",
      "value": "getAdvancedResults",
      "action": "Get advanced SERP results",
      "description": "Retrieve advanced (detailed) SERP results",
      "resource": "serpClassic"
    },
    {
      "name": "Get Locations",
      "value": "getLocations",
      "action": "Get SERP locations",
      "description": "Get available location IDs for SERP queries",
      "resource": "serpClassic"
    },
    {
      "name": "Create Standard Audit",
      "value": "createStandard",
      "action": "Create standard audit",
      "description": "Launch a standard (HTML) site audit",
      "resource": "websiteAudit"
    },
    {
      "name": "Create Advanced Audit",
      "value": "createAdvanced",
      "action": "Create advanced audit",
      "description": "Launch a JS-rendered site audit (for SPAs)",
      "resource": "websiteAudit"
    },
    {
      "name": "List Audits",
      "value": "listAudits",
      "action": "List all audits",
      "description": "Get all audits with status for the account",
      "resource": "websiteAudit"
    },
    {
      "name": "Get Audit Status",
      "value": "getStatus",
      "action": "Get audit status",
      "description": "Get status/progress of a specific audit",
      "resource": "websiteAudit"
    },
    {
      "name": "Get Audit Report",
      "value": "getReport",
      "action": "Get audit report",
      "description": "Retrieve full audit report for a completed audit",
      "resource": "websiteAudit"
    },
    {
      "name": "Get Crawled Pages",
      "value": "getCrawl",
      "action": "Get crawled pages",
      "description": "Get list of crawled pages for an audit",
      "resource": "websiteAudit"
    },
    {
      "name": "Get Issues by Type",
      "value": "getIssuesByType",
      "action": "Get issues by type",
      "description": "Get pages affected by a specific issue type",
      "resource": "websiteAudit"
    },
    {
      "name": "Get Issues by URL",
      "value": "getIssuesByUrl",
      "action": "Get issues for URL",
      "description": "Get all issue details for a specific audited URL",
      "resource": "websiteAudit"
    },
    {
      "name": "Get Links",
      "value": "getLinks",
      "action": "Get audit links",
      "description": "Get all outgoing links found during the audit",
      "resource": "websiteAudit"
    },
    {
      "name": "Get Audit History",
      "value": "getHistory",
      "action": "Get audit history",
      "description": "Get historical snapshot of a specific audit run",
      "resource": "websiteAudit"
    },
    {
      "name": "Update Audit",
      "value": "updateAudit",
      "action": "Update audit details",
      "description": "Update the title of an audit",
      "resource": "websiteAudit"
    },
    {
      "name": "Delete Audit",
      "value": "deleteAudit",
      "action": "Delete audit",
      "description": "Delete an audit by ID",
      "resource": "websiteAudit"
    },
    {
      "name": "Recheck Standard Audit",
      "value": "recheckStandard",
      "action": "Recheck standard audit",
      "description": "Re-run a standard audit with same settings",
      "resource": "websiteAudit"
    },
    {
      "name": "Recheck Advanced Audit",
      "value": "recheckAdvanced",
      "action": "Recheck advanced audit",
      "description": "Re-run an advanced audit with same settings",
      "resource": "websiteAudit"
    }
  ]

npm_readme:
  # n8n-nodes-seranking

  This is an n8n custom node that lets you use [SE Ranking](https://seranking.com/) in your n8n workflows.

  SE Ranking is a comprehensive SEO platform providing keyword research, competitor analysis, website audits, backlink monitoring, and AI search visibility tracking.

  [n8n](https://n8n.io/) is a workflow automation platform.

  ---

  ## Table of Contents

  - [Installation](#installation)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [Operations](#operations)
  - [Usage Examples](#usage-examples)
  - [API Documentation](#api-documentation)
  - [Version History](#version-history)

  ---

  ## Installation

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

  ### Prerequisites

  - Node.js 18.x or higher
  - n8n 1.0.0 or higher
  - SE Ranking API Token ([Get it here](https://online.seranking.com/admin.api.dashboard.html))

  ### npm (Recommended)

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

  ### Quick Installation

  1. Navigate to your n8n installation directory
  2. Install the package:
     ```bash
     npm install @seranking/n8n-nodes-seranking
     ```
  3. Restart n8n

  ### Manual Install

  ### Step 1: Install n8n

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

  ### Step 2: Install SE Ranking Node

  **Option A: From .tgz file**

  ```bash
  npm install -g seranking-n8n-nodes-seranking-1.3.0.tgz
  ```

  **Option B: From GitHub**

  ```bash
  npm install -g git+https://github.com/seranking/n8n-nodes-seranking.git
  ```

  **Option C: From source (for developers)**

  ```bash
  cd ~/.n8n/custom
  git clone https://github.com/seranking/n8n-nodes-seranking.git
  cd n8n-nodes-seranking
  npm install
  npm run build
  npm link
  ```

  ### Step 3: Start n8n

  ```bash
  n8n start
  ```

  Open `http://localhost:5678` and add the SE Ranking node to your workflow.

  ### Step 4: Configure Credentials

  1. Add SE Ranking node
  2. Click "Create New Credential"
  3. Enter your API Token
  4. Select "Data API" as API Type
  5. Save

  ### Docker Installation

  ```bash
  # Create custom directory
  mkdir -p ~/.n8n/custom
  cd ~/.n8n/custom

  # Install node 
  npm install @seranking/n8n-nodes-seranking
  # OR
  npm install git+https://github.com/seranking/n8n-nodes-seranking.git

  # Run n8n
  docker run -it --rm \
    --name n8n \
    -p 5678:5678 \
    -v ~/.n8n:/home/node/.n8n \
    docker.n8n.io/n8nio/n8n
  ```

  ### Verify Installation

  1. Open n8n at `http://localhost:5678`
  2. Search for "SE Ranking" node
  3. If it appears, installation successful ✓

  ### Updating

  **From npm:**

  ```bash
  npm update @seranking/n8n-nodes-seranking
  ```

  **From .tgz:**

  ```bash
  npm uninstall -g seranking-n8n-nodes-seranking
  npm install -g seranking-n8n-nodes-seranking-NEW-VERSION.tgz
  ```

  **From GitHub:**

  ```bash
  npm install -g git+https://github.com/seranking/n8n-nodes-seranking.git
  ```

  **From source:**

  ```bash
  cd ~/.n8n/custom/n8n-nodes-seranking
  git pull
  npm install
  npm run build
  ```

  Then restart n8n
  ---

  ## Credentials

  To use this node, you need:

  1. **SE Ranking Account** - Sign up at [seranking.com](https://seranking.com/)
  2. **API Token** - Generate from your [SE Ranking API Dashboard](https://online.seranking.com/admin.api.dashboard.html)

  ### Setting up credentials in n8n

  1. Open any workflow and add the **SE Ranking** node
  2. Click on **Create New Credential**
  3. Enter your **API Token**
  4. Select **API Type**:
     - **Data API** — SEO research data (domains, keywords, backlinks, SERP)
     - **Project API** — Project management, tracking, audits, sub-accounts
  5. Click **Save**

  The node will automatically test your credentials by making a test request to the SE Ranking API.

  > **Note:** Data API and Project API use different tokens. Data API tokens are UUID format; Project API tokens are 40-character hex format. Get both from your [SE Ranking API Dashboard](https://online.seranking.com/admin.api.dashboard.html).

  ---

  ## Compatibility

  - **n8n version**: 1.0.0 or higher
  - **Node.js version**: 18.x or higher
  - **SE Ranking API**: v1 (Data API) + Project API (`api4.seranking.com`)

  ## Operations

  This node provides access to **20 SE Ranking resources** with **171 total operations** across two API types:

  ### Data API (6 resources, 65 operations)

  ### AI Search (5 operations)

  - Get Overview - LLM visibility metrics across ChatGPT, Perplexity, Gemini
  - Discover Brand - Identify brand name for domain
  - Get Prompts by Target - Find prompts mentioning your domain
  - Get Prompts by Brand - Track brand mentions in AI responses
  - Get Leaderboard - Compare domain performance against competitors across LLMs


  ### Backlinks (25 operations)

  - Get Summary - Complete backlink portfolio overview
  - Get Metrics - Key metrics for multiple targets
  - Get All Backlinks - Detailed backlink list with filters
  - Get Raw Backlinks - Cursor-based bulk retrieval
  - Get Count - Total backlinks count
  - Export Backlinks - Bulk export functionality
  - Check Export Status - Monitor export progress
  - Download Export Data - Retrieve completed exports
  - Get History - New/lost backlinks by date range
  - Get History Count - Daily new/lost counts
  - Get Cumulative History - Historical growth tracking
  - Get Anchors - Anchor text analysis
  - Get Referring Domains - List of linking domains
  - Get Referring Domains Count - Unique domain count
  - Get Referring Domains History - Domain link changes
  - Get Referring Domains History Count - Domain change counts
  - Get Referring IPs - IP addresses of linking sites
  - Get Referring IPs Count - Unique IP count
  - Get Referring Subnets Count - /24 subnet diversity
  - Get Indexed Pages - Pages in backlink index
  - Get Authority - InLink Rank metrics
  - Get Domain Authority - Domain-level authority
  - Get Domain Authority Distribution - Authority score distribution
  - Get Page Authority - Page-level authority
  - Get Page Authority History - Historical authority tracking

  ### Domain Analysis (11 operations)

  - Get Regional Database Overview - Regional performance data
  - Get Worldwide Aggregate - Global domain statistics
  - Get Worldwide Aggregate for URL - URL-level global performance
  - Get Overview History - Historical metrics tracking
  - Get Keywords - Ranking keywords with filters
  - Get Keywords Comparison - Domain vs competitor analysis
  - Get Domain Pages - Page-level keyword and traffic metrics
  - Get Domain Subdomains - Subdomain performance analysis
  - Get Competitors - Identify competing domains
  - Get Paid Ads for Keyword - Advertisers on keywords
  - Get Paid Ads for Domain - Domain's advertising keywords

  ### Keyword Research (5 operations)

  - Export Metrics - Bulk keyword metrics (up to 700 keywords)
  - Get Similar Keywords - Semantically similar suggestions with full filter support (traffic, difficulty, intents, SERP features, word count, and more)
  - Get Related Keywords - Topically related keywords with full filter support (traffic, difficulty, intents, SERP features, word count, and more)
  - Get Question Keywords - Question-based variations with full filter support (traffic, difficulty, intents, SERP features, word count, and more)
  - Get Longtail Keywords - Long-tail opportunities

  ### Website Audit (14 operations)

  - Create Standard Audit - HTML site audit
  - Create Advanced Audit - JS-rendered audit for SPAs
  - List Audits - All audits with status
  - Get Audit Status - Check audit progress
  - Get Audit Report - Full audit results
  - Get Crawled Pages - List of crawled URLs
  - Get Issues by Type - Pages with specific issues
  - Get Issues by URL - All issues for one URL
  - Get Links - Internal/external links found
  - Get Audit History - Historical audit snapshots
  - Update Audit - Modify audit details
  - Delete Audit - Remove audit
  - Recheck Standard Audit - Re-run HTML audit
  - Recheck Advanced Audit - Re-run JS audit

  ### SERP Classic (5 operations)

  - Add Tasks - Create SERP tasks for keywords (up to 1,000 per request, supports Pingback URL)
  - Get Results - Get standard SERP results for a task
  - List Tasks - List recent SERP tasks (last 24 hours)
  - Get Advanced Results - Retrieve detailed SERP results with all features
  - Get Locations - Get available location IDs for SERP queries

  ---

  ### Project API (14 resources, 106 operations)

  ### Project Management (17 operations)

  - List Projects - Get all projects
  - Add Project - Create a new project
  - Change Project Settings - Update project configuration
  - Delete Project - Remove a project
  - List Search Engines - Get search engines for a project
  - Add Search Engine - Add search engine to project
  - Change Search Engine - Update search engine settings
  - Delete Search Engine - Remove search engine from project
  - List Keywords - Get project keywords
  - Add Keywords - Add keywords to project
  - Delete Keywords - Remove keywords from project
  - Get Project Stats - Overall project statistics
  - Get Keyword Positions - Keyword ranking positions over time
  - Get Ads Chart - Advertising data for keywords
  - Get Historical Dates - Available historical check dates
  - Set Manual Position - Manually set a keyword position
  - Run Position Check - Trigger a position recheck

  ### Project Groups (5 operations)

  - List Groups - Get all project groups
  - Add Group - Create a project group
  - Rename Group - Update group name
  - Delete Group - Remove a project group
  - Move Projects to Group - Move projects into a group

  ### AI Result Tracker (13 operations)

  - Get Site Brand - Get brand name for a site
  - Save Site Brand - Set brand name for a site
  - List LLM Engines - Get all LLM engines for a site
  - Get LLM Engine - Get specific LLM engine details
  - Create LLM Engine - Add LLM engine (ChatGPT, Gemini, Perplexity, Google AI)
  - Update LLM Engine - Modify LLM engine settings
  - Delete LLM Engine - Remove LLM engine from site
  - Get LLM Status - Check LLM engine processing status
  - Get LLM Statistics - Presence and overlap stats
  - List Prompts - Get prompts for an LLM engine
  - Add Prompts - Add keywords/prompts to LLM engine
  - Delete Prompts - Remove prompts from LLM engine
  - Get Prompt Rankings - Prompt ranking data over time

  ### Keyword Groups (5 operations)

  - List Groups - Get keyword groups for a project
  - Add Group - Create a keyword group
  - Move Keywords - Move keywords to a group
  - Rename Group - Update keyword group name
  - Delete Group - Remove a keyword group

  ### Competitors (7 operations)

  - Add Competitor - Add competitor to project
  - List Competitors - Get all competitors for a project
  - Get Keyword Positions - Competitor ranking positions
  - Delete Competitor - Remove a competitor
  - Get TOP 10 Results - SERP top 10 for a keyword
  - Get TOP 100 Results - SERP top 100 for a keyword
  - Get All Competitors - All competitors from SERP data

  ### URL Tags (4 operations)

  - List Tags - Get all URL tags for a site
  - Add Tag - Create a URL tag
  - Update Tag Assignment - Assign tags to URLs/domains
  - Delete Tag - Remove a URL tag

  ### Analytics Traffic (2 operations)

  - Get Google Search Console Data - GSC queries with impressions, clicks, CTR
  - Calculate SEO Potential - Estimated traffic and revenue potential

  ### Account System (3 operations)

  - Get Account Balance - Account balance and currency
  - Get User Profile - Account profile information
  - Get Subscription Data - Subscription type and status

  ### Sub-Account Management (8 operations)

  - List Sub-Accounts - Get all sub-accounts
  - Get Sub-Account Details - Sub-account settings and permissions
  - Create Sub-Account - Create a new sub-account
  - Delete Sub-Account - Remove a sub-account
  - Update Sub-Account - Modify sub-account settings
  - List Shared Projects - Projects shared with sub-account
  - List Owned Projects - Projects owned by sub-account
  - Share Projects - Share projects with sub-account

  ### General Data (4 operations)

  - List Search Engines - Available search engines and regions
  - List Languages for Google - Google language codes
  - List Volume Regions - Regions for keyword volume checks
  - Get Keyword Search Volume - Search volume for keywords in a region

  ### Marketing Plan (5 operations)

  - List Plan Items - Get marketing plan checklist
  - Add Task - Add custom task to plan
  - Update Task - Modify task title and description
  - Set Task Status - Mark task as complete/incomplete
  - Delete Task - Remove a custom task

  ### Website Audit (Project) (12 operations)

  - Create Audit - Launch a website audit
  - List Audits - Get all audits
  - Get Audit Status - Check audit progress
  - Get Audit Report - Full audit results
  - Get Crawled Pages - Pages found during audit
  - Get Pages by Issue - Pages affected by specific issue
  - Get All Issues for URL - All issues for a specific page
  - Get All Links - Internal/external links found
  - Get Audit History - Historical audit data
  - Update Audit Title - Rename an audit
  - Delete Audit - Remove an audit
  - Recheck Audit - Re-run an audit

  ### Backlink Checker (17 operations)

  - List Backlinks - Get monitored backlinks
  - Add Backlink - Add a backlink to monitor
  - Import Backlinks List - Bulk import backlinks
  - Update Import Settings - Configure GSC auto-import
  - Start GSC Import - Import backlinks from Google Search Console
  - Get GSC Import Status - Check GSC import progress
  - Delete Backlinks - Remove monitored backlinks
  - Recheck Backlinks - Re-check backlink status or index
  - Get Backlink Statistics - Backlink portfolio stats
  - List Disavowed Backlinks - Get disavowed backlinks
  - Add Disavowed Backlinks - Add URLs to disavow list
  - Delete Disavowed Backlink - Remove from disavow list
  - List Backlink Groups - Get backlink groups
  - Create Backlink Group - Create a backlink group
  - Delete Backlink Group - Remove a backlink group
  - Rename Backlink Group - Update group name
  - Move Backlinks to Group - Move backlinks between groups

  ### Search Volume (4 operations)

  - Create Volume Check - Submit keyword volume check request
  - List Volume Checks - Get submitted check requests
  - Get Volume Check Results - Retrieve volume check results
  - Delete Volume Check - Remove a check request

  ## Usage Examples

  Ready-to-use workflows demonstrating real-world applications of the SE Ranking node. Each example includes importable n8n workflows, setup instructions, and expected outputs.

  ---

  ### 🤖 Example 1: AI Search Visibility Tracker

  **Track your brand's presence and competitive gaps across ChatGPT, Perplexity, and Gemini**

  Two comprehensive workflows for monitoring AI visibility and identifying content opportunities.

  **Workflow 1: AI Search Visibility Tracker**

  Monitor how often your brand appears in AI-powered search engines with automated historical tracking.

  - Link presence count across multiple AI engines
  - Average position tracking in AI citations
  - AI opportunity traffic estimates
  - Period-over-period comparison metrics

  **Workflow 2: Competitor Topic Gap Analysis**

  Identify content opportunities by analyzing where competitors outrank you in AI search and traditional SEO.

  - AI visibility gaps across ChatGPT, Perplexity, and Gemini
  - Keyword gaps with search volume and difficulty
  - Competitor backlink authority metrics
  - Prioritized opportunities with HIGH/MEDIUM/LOW scoring
  - Actionable recommendations for each gap

  **Best For:** Marketing teams tracking AI SEO performance, Content strategists planning editorial calendars, SEO teams doing competitive intelligence

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/AI-Search)

  ---

  ### 🔗 Example 2: Backlinks Monitoring & Analysis

  **Track new/lost backlinks, monitor domain authority, and analyze anchor text distribution**

  Automatically monitor backlink portfolio health with daily tracking and alerts for significant changes.

  **What You'll Get:**

  - Daily new/lost backlink reports
  - Domain authority trend tracking
  - Anchor text distribution analysis
  - Referring domain diversity metrics
  - Export-ready CSV/Excel reports

  **Best For:** SEO agencies managing client backlink portfolios, In-house SEO teams tracking link-building campaigns

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/SERP-Classic)

  ---

  ### 📊 Example 3: Domain Analysis Data Processor

  **Transform SE Ranking API data into structured Google Sheets reports**

  Automatically process and organize domain analysis data with intelligent type detection.

  **What You'll Get:**

  - Regional performance across 200+ countries
  - Domain summary with organic vs. paid breakdown
  - Keywords analysis with positions and difficulty
  - Competitor insights and gap analysis
  - Multi-domain comparison with worldwide traffic data

  **Best For:** SEO agencies managing multiple clients, Enterprise teams tracking regional performance

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/Domain-Analysis)

  ---

  ### 🔍 Example 4: Keyword Research Automation

  **Automate comprehensive keyword research with trend analysis**

  Build an automated keyword intelligence pipeline with historical tracking and SERP features.

  **What You'll Get:**

  - Bulk keyword metrics with volume and CPC
  - Historical trend analysis (peaks, valleys, averages)
  - SERP features tracking (PAA, featured snippets, etc.)
  - Search intent mapping (informational, commercial, navigational)

  **Best For:** Content strategists planning editorial calendars, SEO specialists doing competitor research

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/Keyword-Research)

  ---

  ### 🔧 Example 5: Website Audit Automation

  **Automatically crawl sites, detect issues, and generate reports**

  Schedule regular technical SEO audits and get alerts when critical issues are detected.

  **What You'll Get:**

  - Automated monthly/weekly site audits
  - Issue detection across 25+ SEO factors
  - Historical issue tracking and resolution monitoring
  - Exportable reports for clients/stakeholders

  **Best For:** Development teams doing pre-launch checks, SEO consultants managing multiple client sites

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/Website-Audit)

  ---

  ### 📍 Example 6: SERP Classic Tracking

  **Track keyword rankings and analyze SERP features across search engines**

  Monitor keyword positions, SERP features, and competitor visibility with automated rank tracking.

  **What You'll Get:**

  - Keyword position tracking across multiple locations
  - SERP features analysis (featured snippets, local pack, etc.)
  - Competitor ranking visibility
  - Device-specific rankings (desktop, mobile, tablet)
  - Historical rank tracking

  **Best For:** SEO teams tracking keyword performance, Local businesses monitoring location-based rankings, Agencies managing multi-client SERP tracking

  📂 [View Full Guide & Download Workflow →](./Usage-Examples/SERP-Classic)

  ---
  ### 🔔 Example 7: SERP Pingback Webhooks

  **Get notified instantly when SERP results are ready — no polling required!**

  Instead of checking task status repeatedly, SE Ranking calls your webhook when done.

  #### Simple Workflow (3 nodes)

  ```
  [Webhook] → [SE Ranking: Get Results] → [Google Sheets]
     ↑
     └── SE Ranking calls this when task completes
  ```

  #### Step-by-Step Setup

  **Step 1: Create Webhook to Receive Notifications**

  Add a **Webhook** node:
  | Setting | Value |
  |---------|-------|
  | HTTP Method | `GET` |
  | Path | `serp-callback` |
  | Response Mode | `Immediately` |

  Click **"Listen for test event"** and copy the URL.

  **Step 2: Create SERP Task with Pingback**

  In another workflow, add **SE Ranking** node:
  | Setting | Value |
  |---------|-------|
  | Resource | `SERP Classic` |
  | Operation | `Add Tasks` |
  | Search Engine | `google` |
  | Device | `desktop` |
  | Language Code | `en` |
  | Location ID | `2840` (USA) |
  | Keywords | `seo tools` |
  | Tag | `my-test` |
  | **Pingback URL** | `https://your-n8n.com/webhook/serp-callback?id=$id&tag=$tag` |

  > ⚠️ Use `$id` and `$tag` exactly as shown — SE Ranking replaces them with real values.

  **Step 3: Fetch Results When Webhook Fires**

  Back in your webhook workflow, add **SE Ranking** node after the Webhook:
  | Setting | Value |
  |---------|-------|
  | Resource | `SERP Classic` |
  | Operation | `Get Results` |
  | Task ID | `{{ $json.query.id }}` |

  **That's it!** When SE Ranking finishes, it calls your webhook, which fetches the results automatically.

  #### Using in Advanced Workflows

  Add pingback to any existing SERP workflow:

  ```
  [Schedule] → [SE Ranking: Add Tasks] ──(async)──→ [Webhook] → [Get Results] → [Process]
                      │
                      └── pingback_url triggers webhook when done
  ```

  ---

  ### 🏆 Example 8: AI Search Leaderboard

  **Compare your AI visibility against competitors in one request.**

  See how your brand performs vs competitors across ChatGPT, Perplexity, Gemini, and Google AI Overview.

  #### Simple Workflow (2 nodes)

  ```
  [Manual Trigger] → [SE Ranking: Get Leaderboard] → [View Results]
  ```

  #### Step-by-Step Setup

  **Step 1: Add SE Ranking Node**

  | Setting | Value |
  |---------|-------|
  | Resource | `AI Search` |
  | Operation | `Get Leaderboard` |
  | Primary Target | `yoursite.com` |
  | Primary Brand | `Your Brand` |
  | Source | `us` |
  | AI Engines | Select: `chatgpt`, `perplexity`, `ai-overview` |

  **Step 2: Add Competitors**

  Click **"Add Competitor"** and enter:
  | Target Domain | Brand Name |
  |---------------|------------|
  | `competitor1.com` | `Competitor 1` |
  | `competitor2.com` | `Competitor 2` |

  **Step 3: Run and View Results**

  Execute the workflow. Response includes:
  - Link presence count (how often you appear)
  - Average position in AI citations
  - Change vs previous period
  - Breakdown by AI engine

  #### Using in Advanced Workflows

  Combine with scheduling and reporting:

  ```
  [Schedule: Weekly] → [Get Leaderboard] → [Code: Calculate Gaps] → [Google Sheets] → [Slack Alert]
  ```

  **Example: Find where competitors beat you**
  ```javascript
  // In Code node after Get Leaderboard
  const dominated = $input.all().filter(item => 
    item.json.competitor_presence > item.json.primary_presence
  );
  return dominated;
  ```

  ---

  ### 🚀 Quick Start

  1. **Browse** the example that matches your use case
  2. **Download** the `workflow.json` file from the example folder
  3. **Import** into n8n (Workflows → Import from File)
  4. **Configure** your SE Ranking API credentials
  5. **Run** and customize to your needs

  **Need help?** Each example includes troubleshooting tips and configuration details.

  ---

  ## API Documentation

  This node implements the following SE Ranking APIs:

  **Data API** (`api.seranking.com/v1`):
  - [AI Search API](https://seranking.com/api/data/ai-search/)
  - [Backlinks API](https://seranking.com/api/data/backlinks/)
  - [Domain Analysis API](https://seranking.com/api/data/domain-analysis/)
  - [Keyword Research API](https://seranking.com/api/data/keyword-research/)
  - [Website Audit API](https://seranking.com/api/data/website-audit/)
  - [SERP API](https://seranking.com/api/data/serp/)

  **Project API** (`api4.seranking.com`):
  - [Project API Documentation](https://seranking.com/api/project/)

  For detailed API specifications, visit [SE Ranking API Documentation](https://seranking.com/api.html).

  ---

  ## Version History

  ### v1.3.6 (Current)

  * 🔧 **FIX: Rate limiting compatibility** - Replaced setTimeout with n8n-workflow sleep function for n8n verified node compliance

  ### v1.3.5 

  * ✅ **NEW: SERP Pingback URL** - Webhook notifications when SERP tasks complete
  * ✅ **NEW: AI Search Leaderboard** - Compare visibility against competitors across LLMs
  * ✅ **Total: 65 operations across 6 resources**
  * ✅ Event-driven SERP workflow support
  * ✅ Multi-competitor AI visibility comparison

  ### v1.3.3 

  - ✅ **NEW: Get Worldwide Aggregate for URL** - URL-level global performance metrics
  - ✅ **NEW: Get Domain Pages** - Page-level keyword and traffic analysis with intent breakdown
  - ✅ **NEW: Get Domain Subdomains** - Subdomain traffic and keyword metrics
  - ✅ **Total: 62 operations across 6 resources**
  - ✅ Advanced filtering for pages/subdomains (traffic %, keywords count, traffic sum,)
  - ✅ Search intent breakdown (Informational, Navigational, Transactional, Commercial, Local)

  ### v1.3.0 

  - ✅ Complete AI Search resource (4 operations)
  - ✅ Complete Backlinks resource (25 operations)
  - ✅ Enhanced Domain Analysis resource (8 operations - added History, Comparison, Paid Ads)
  - ✅ Complete Keyword Research resource (5 operations)
  - ✅ Complete Website Audit resource (14 operations)
  - ✅ **NEW: Complete SERP Classic resource (5 operations)**
  - ✅ **Total: 59 operations across 6 resources**
  - ✅ Comprehensive error handling with detailed messages
  - ✅ Full TypeScript support
  - ✅ Input validation (domains, sources, dates)
  - ✅ Pagination support (offset/limit)
  - ✅ Advanced filtering options
  - ✅ Multi-keyword support (up to 1,000 keywords for SERP tasks)
  - ✅ Backlink export and bulk operations
  - ✅ Website audit creation and management
  - ✅ **NEW: SERP rank tracking and analysis**
  - ✅ **NEW: Multi-location SERP data retrieval**

  ### v1.2.3

  - ✅ Complete AI Search resource (4 operations)
  - ✅ **NEW: Complete Backlinks resource (25 operations)**
  - ✅ Enhanced Domain Analysis resource (8 operations - added History, Comparison, Paid Ads)
  - ✅ Complete Keyword Research resource (5 operations)
  - ✅ **NEW: Complete Website Audit resource (14 operations)**
  - ✅ **Total: 54 operations across 5 resources**
  - ✅ Comprehensive error handling with detailed messages
  - ✅ Full TypeScript support
  - ✅ Input validation (domains, sources, dates)
  - ✅ Pagination support (offset/limit)
  - ✅ Advanced filtering options
  - ✅ Multi-keyword support (up to 700 keywords)
  - ✅ **NEW: Backlink export and bulk operations**
  - ✅ **NEW: Website audit creation and management**

  ### v1.0.7

  - ✅ Complete AI Search resource (4 operations)
  - ✅ Complete Domain Analysis resource (4 operations)
  - ✅ Complete Keyword Research resource (5 operations)
  - ✅ Total: 13 operations across 3 resources
  - ✅ Comprehensive error handling with detailed messages
  - ✅ Full TypeScript support
  - ✅ Input validation (domains, sources, dates)
  - ✅ Pagination support (offset/limit)
  - ✅ Advanced filtering options
  - ✅ Multi-keyword support (up to 700 keywords)

  ---

  ## Features

  ✅ **171 Operations** - Comprehensive coverage across 20 resources (Data API + Project API)

  ✅ **Pingback Webhooks** - Event-driven notifications for SERP task completion

  ✅ **AI Competitive Analysis** - Leaderboard comparison across LLM engines

  ✅ **Type Safety** - Full TypeScript implementation with strict typing  

  ✅ **Error Handling** - Detailed error messages with troubleshooting hints  

  ✅ **Pagination** - Efficient handling of large datasets  

  ✅ **Advanced Filtering** - Volume, position, CPC, difficulty filters  

  ✅ **Validation** - Input validation for domains, country codes, and parameters  

  ✅ **Authentication** - Automatic credential management and testing  

  ✅ **Rate Limiting** - Built-in rate limit handling with retry logic  

  ✅ **Batch Operations** - Support for multiple keywords/domains  

  ✅ **Backlink Monitoring** - Complete backlink analysis and tracking  

  ✅ **Website Auditing** - Technical SEO audits with issue detection

  ✅ **SERP Tracking** - Keyword ranking and SERP features analysis

  ✅ **Advanced Filtering** - Volume, position, CPC, difficulty, traffic, search intent, SERP features, keyword word count, and include/exclude keyword pattern filters, and the new SERP Feature Link filter (filter[serp_features_2]) — which lets you filter keywords where your domain is specifically linked within a SERP feature (e.g. AI Overviews, Reviews), distinct from the existing serpFeatures filter which only checks for feature presence on the SERP.

  ---

  ## Limitations

  - **Rate Limits**: SE Ranking API has rate limits (varies by plan)
  - **Regional Data**: Some data is region-specific (requires country code)
  - **Keyword Limits**: Export Metrics supports up to 700 keywords per request
  - **Historical Data**: History trend data adds to response time
  - **API Credits**: Some operations consume API credits (check your plan)

  ---
  ## Rate Limiting

  This node includes built-in rate limiting (300ms delay between requests) to help prevent hitting SE Ranking API limits.

  If you still encounter "429 Too Many Requests" errors when processing large amounts of data, you can use n8n's built-in solutions:

  1. **Retry On Fail**: Open node Settings → enable "Retry On Fail" → set "Wait Between Tries" to 1000ms or more
  2. **Split In Batches + Wait**: Use the "Loop Over Items" node to process items in smaller batches with a "Wait" node between requests

  For more details, see [n8n's rate limiting documentation](https://docs.n8n.io/integrations/builtin/rate-limits/).

  ---
  ## Troubleshooting

  ### Pingback Not Received

  **Problem**: SERP task completes but webhook never fires

  **Solution**:
  1. Use production webhook URL (not `webhook-test`)
  2. Ensure URL is publicly accessible (not localhost)
  3. Use HTTPS
  4. Respond within 5 seconds with HTTP 200
  5. Use literal `$id` and `$tag` placeholders

  **Valid URL format:**
  ```
  ✅ https://your-domain.com/webhook/serp-callback?id=$id&tag=$tag
  ❌ https://localhost:5678/webhook/...
  ❌ https://your-domain.com/webhook-test/...
  ```
  ```

  ---

  ### Authentication Errors

  **Problem**: "401 Unauthorized" or "Invalid API Token"

  **Solution**:

  1. Verify API token is correct (copy from SE Ranking dashboard)
  2. Ensure API Type is set to "Data API"
  3. Check token hasn't expired
  4. Regenerate token in SE Ranking dashboard if needed
  5. Test credentials using the "Test" button in n8n

  ---

  ### Invalid Source/Country Code

  **Problem**: "Invalid source" or "400 Bad Request"

  **Solution**:

  1. Use correct Alpha-2 country codes: `us`, `uk`, `de`, `fr`, `es`, `it`, `ca`, `au`, `pl`
  2. Country code must be lowercase
  3. Check if SE Ranking has data for that region
  4. Some engines/features may not be available in all regions

  ---

  ### Domain Format Errors

  **Problem**: "Invalid domain format" or "Domain validation failed"

  **Solution**:

  1. Remove `http://` or `https://` from domain (unless operation specifies full URL)
  2. Remove `www.` prefix
  3. Remove trailing slashes
  4. Use format: `example.com` not `www.example.com/`
  5. For subdomains: `blog.example.com` is valid

  **Valid formats:**

  - ✅ `example.com`
  - ✅ `blog.example.com`
  - ✅ `example.co.uk`
  - ❌ `https://example.com`
  - ❌ `www.example.com`
  - ❌ `example.com/`

  ---

  ### Empty Results

  **Problem**: No data returned from API

  **Solution**:

  1. Verify domain has data in SE Ranking database
  2. Check if domain is indexed/tracked
  3. Try different source/region (domain may rank elsewhere)
  4. Adjust filters - they may be too restrictive
  5. For new domains, wait 24-48 hours for initial data collection
  6. Check if keyword has search volume in selected region

  ---

  ### Timeout Errors

  **Problem**: "Request timeout" or "Operation exceeded time limit"

  **Solution**:

  1. Reduce `limit` parameter (try 100 instead of 1000)
  2. Use pagination with `offset` to fetch data in chunks
  3. For keyword export, reduce number of keywords (try 100 instead of 700)
  4. Remove `history_trend` parameter if not needed (adds processing time)
  5. Use "Get Worldwide Aggregate" instead of getting all regional databases

  ---

  ### Too Many Keywords Error

  **Problem**: "Too many keywords" or "Maximum 700 keywords exceeded"

  **Solution**:

  1. Split keyword list into batches of 700 or less
  2. Use multiple node executions with different batches
  3. Consider using keyword suggestion operations first to narrow down list

  ---

  ### Rate Limit Errors

  **Problem**: "429 Too Many Requests" or "Rate limit exceeded"

  **Solution**:

  1. Add delay between requests using n8n Wait node
  2. Reduce frequency of scheduled workflows
  3. Use batch operations instead of individual requests
  4. Upgrade SE Ranking plan for higher rate limits
  5. Implement exponential backoff retry logic

  ---

  ## Best Practices

  ### 1. Efficient Data Retrieval

  ✅ **DO:**

  - Use "Get Worldwide Aggregate" for quick domain overview
  - Use pagination for large datasets (limit: 100-500)
  - Cache frequently accessed data
  - Use filters to reduce result size

  ❌ **DON'T:**

  - Request all databases when you only need one region
  - Fetch 10,000 keywords at once without pagination
  - Request history_trend unless specifically needed

  ### 2. Keyword Research

  ✅ **DO:**

  - Start with similar keywords, then expand to related/questions
  - Use filters to focus on achievable opportunities (difficulty < 50)
  - Export metrics in batches of 200-500 keywords
  - Include multiple keyword types for comprehensive research

  ❌ **DON'T:**

  - Request all keyword types simultaneously without filtering
  - Ignore difficulty scores (targeting too-hard keywords wastes effort)
  - Forget to check search intent and relevance

  ### 3. Backlink Monitoring

  ✅ **DO:**

  - Schedule daily checks for new/lost backlinks
  - Use "Get Summary" for quick health checks
  - Export full data monthly for archival
  - Track Domain InLink Rank trends over time
  - Monitor anchor text distribution for natural link profile

  ❌ **DON'T:**

  - Poll "Get All Backlinks" every hour (use history endpoints)
  - Download exports without checking status first
  - Ignore referring domain diversity (IP distribution)

  ### 4. Competitor Analysis

  ✅ **DO:**

  - Use "Get Competitors" to identify relevant competitors first
  - Track competitor changes over time (weekly/monthly)
  - Focus on keywords where competitors rank in top 20
  - Analyze multiple competitors to find patterns

  ❌ **DON'T:**

  - Compare against irrelevant competitors
  - Track too many competitors (focus on top 5-10)
  - Ignore competitor's content strategy and backlink profile

  ### 5. AI Search Optimization

  ✅ **DO:**

  - Monitor multiple engines (ChatGPT, Perplexity, Gemini)
  - Track brand mentions and citation types
  - Focus on high-volume prompts
  - Use base_domain scope for brand monitoring

  ❌ **DON'T:**

  - Only track one LLM engine
  - Ignore prompt context and user intent
  - Forget to optimize content based on insights

  ### 6. Website Auditing

  ✅ **DO:**

  - Use Advanced Audit for JavaScript-heavy sites (React, Vue, Angular)
  - Set realistic max_pages based on site size
  - Schedule monthly audits for ongoing monitoring
  - Compare historical audits to track improvements
  - Export issues to spreadsheet for team collaboration

  ❌ **DON'T:**

  - Set max_pages too high (start with 1000-5000)
  - Ignore robots.txt unless intentionally testing blocked areas
  - Run audits too frequently (daily audits waste credits)

  ### 7. Error Handling

  ✅ **DO:**

  - Implement retry logic for transient errors
  - Log errors for debugging
  - Use n8n's "Continue on Fail" for batch operations
  - Validate input before API calls

  ❌ **DON'T:**

  - Ignore error messages (they contain helpful hints)
  - Retry immediately after rate limit (wait 60s)
  - Skip input validation

  ---

  ### Development Setup

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

  # Navigate to directory
  cd n8n-nodes-seranking

  # Install dependencies
  npm install

  # Build the node
  npm run build

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

  ### Project Structure

  ```
  n8n-nodes-seranking/
  │
  ├── credentials/
  │   └── SeRankingApi.credentials.ts                               # API credentials configuration
  │
  ├── nodes/
  │   └── SeRanking/
  │       ├── SeRanking.node.ts                                     # Main node definition
  │       ├── dataApi/
  │       │   ├── operations/
  │       │   │   ├── AiSearchOperations.ts                         # AI Search operations logic
  │       │   │   ├── BacklinksOperations.ts                        # Backlinks operations logic
  │       │   │   ├── DomainAnalysisOperations.ts                   # Domain Analysis operations logic
  │       │   │   ├── KeywordResearchOperations.ts                  # Keyword Research operations logic
  │       │   │   ├── WebsiteAuditOperations.ts                     # Website Audit operations logic
  │       │   │   └── SerpClassicOperations.ts                      # SERP Classic operations logic
  │       │   └── descriptions/
  │       │       ├── AiSearchDescription.ts                        # AI Search UI definitions
  │       │       ├── BacklinksDescription.ts                       # Backlinks UI definitions
  │       │       ├── DomainAnalysisDescription.ts                  # Domain Analysis UI definitions
  │       │       ├── KeywordResearchDescription.ts                 # Keyword Research UI definitions
  │       │       ├── WebsiteAuditDescription.ts                    # Website Audit UI definitions
  │       │       └── SerpClassicDescription.ts                     # SERP Classic UI definitions
  │       ├── projectApi/
  │       │   ├── operations/
  │       │   │   ├── ProjectManagementOperations.ts                # Project Management operations
  │       │   │   ├── ProjectGroupsOperations.ts                    # Project Groups operations
  │       │   │   ├── AiResultTrackerOperations.ts                  # AI Result Tracker operations
  │       │   │   ├── KeywordGroupsOperations.ts                    # Keyword Groups operations
  │       │   │   ├── CompetitorsOperations.ts                      # Competitors operations
  │       │   │   ├── UrlTagsOperations.ts                          # URL Tags operations
  │       │   │   ├── AnalyticsTrafficOperations.ts                 # Analytics Traffic operations
  │       │   │   ├── AccountSystemOperations.ts                    # Account System operations
  │       │   │   ├── SubAccountOperations.ts                       # Sub-Account operations
  │       │   │   ├── GeneralDataOperations.ts                      # General Data operations
  │       │   │   ├── MarketingPlanOperations.ts                    # Marketing Plan operations
  │       │   │   ├── WebsiteAuditOperations.ts                     # Website Audit (Project) operations
  │       │   │   ├── BacklinkCheckerOperations.ts                  # Backlink Checker operations
  │       │   │   └── SearchVolumeOperations.ts                     # Search Volume operations
  │       │   └── descriptions/
  │       │       ├── ProjectManagementDescription.ts               # Project Management UI definitions
  │       │       ├── ProjectGroupsDescription.ts                   # Project Groups UI definitions
  │       │       ├── AiResultTrackerDescription.ts                 # AI Result Tracker UI definitions
  │       │       ├── KeywordGroupsDescription.ts                   # Keyword Groups UI definitions
  │       │       ├── CompetitorsDescription.ts                     # Competitors UI definitions
  │       │       ├── UrlTagsDescription.ts                         # URL Tags UI definitions
  │       │       ├── AnalyticsTrafficDescription.ts                # Analytics Traffic UI definitions
  │       │       ├── AccountSystemDescription.ts                   # Account System UI definitions
  │       │       ├── SubAccountDescription.ts                      # Sub-Account UI definitions
  │       │       ├── GeneralDataDescription.ts                     # General Data UI definitions
  │       │       ├── MarketingPlanDescription.ts                   # Marketing Plan UI definitions
  │       │       ├── WebsiteAuditDescription.ts                    # Website Audit (Project) UI definitions
  │       │       ├── BacklinkCheckerDescription.ts                 # Backlink Checker UI definitions
  │       │       └── SearchVolumeDescription.ts                    # Search Volume UI definitions
  │       └── utils/
  │           ├── validators.ts                                     # Input validators
  │           └── apiRequest.ts                                     # API request handler
  │
  ├── Usage-Examples/
  │   ├── AI-Search/
  │   │   ├── AIVisibilityTracker.json                              # Workflow 1: AI Visibility Tracker
  │   │   ├── AIVisibilityTrackerResults.xlsx                       # Workflow 1 Results
  │   │   ├── SERanking-CompetitorTopicGapAnalysis.json             # Workflow 2: Competitor Topic Gap Analysis
  │   │   ├── SE Ranking - Competitor Topic Gap Analysis.xlsx       # Workflow 2 Results
  │   │   └── README.md                                             # AI Search workflows documentation
  │   │
  │   ├── Backlinks/
  │   │   ├── Backlinks-Monitoring&Analysis.json                    # Backlinks monitoring workflow
  │   │   └── README.md                                             # Backlinks workflow documentation
  │   │
  │   ├── Domain-Analysis/
  │   │   ├── DomainAnalysisMulti-FormatProcessor.json              # Workflow 1: Multi-Format Data Processor
  │   │   ├── DomainAnalysisMulti-FormatProcessor.xlsx              # Workflow 1 Results
  │   │   ├── DomainTraffic&CompetitorAnalysis.json                 # Workflow 2: Multi-Domain Traffic Analysis
  │   │   ├── DomainTraffic&CompetitorAnalysis.xlsx                 # Workflow 2 Results
  │   │   ├── Get_Regional_DB_Overview.jpg                          # Screenshot: Regional Overview
  │   │   ├── Get_Worldwide_Aggregate.jpg                           # Screenshot: Worldwide Aggregate
  │   │   ├── Get_Domain_Keywords.jpg                               # Screenshot: Keywords Analysis
  │   │   ├── Get_Competitors.jpg                                   # Screenshot: Competitors
  │   │   ├── Get keywords comparison Organic Common Keywords.jpg   # Screenshot: Keywords Comparison
  │   │   ├── Get keywords comparison Organic Keyword Gap.jpg       # Screenshot: Organic Gap
  │   │   ├── Get keywords comparison Paid Keyword Gap.jpg          # Screenshot: Paid Gap
  │   │   ├── Get keywords comparison Paid.jpg                      # Screenshot: Paid Comparison
  │   │   ├── Get overview history Organic.jpg                      # Screenshot: Organic History
  │   │   ├── Get overview history Paid.jpg                         # Screenshot: Paid History
  │   │   ├── Get paid ads for domain.jpg                           # Screenshot: Domain Ads
  │   │   ├── Get paid ads for keyword.jpg                          # Screenshot: Keyword Ads
  │   │   ├── Get audit links.png                                   # Screenshot: Audit Links
  │   │   ├── Get crawled pages.png                                 # Screenshot: Crawled Pages
  │   │   ├── Get issues for URL.png                                # Screenshot: URL Issues
  │   │   └── README.md                                             # Domain Analysis workflows documentation
  │   │
  │   ├── Keyword-Research/
  │   │   ├── KeywordResearch→GoogleSheetsPipeline.json             # Keyword research workflow
  │   │   ├── KeywordResearch→GoogleSheetsPipeline.xlsx             # Workflow results
  │   │   ├── Get_Similar_Keywords.jpg                              # Screenshot: Similar Keywords
  │   │   ├── Get_Related_Keywords.jpg                              # Screenshot: Related Keywords
  │   │   ├── Get_Question_Keywords.jpg                             # Screenshot: Question Keywords
  │   │   ├── Get_Longtail_Keywords.jpg                             # Screenshot: Longtail Keywords
  │   │   └── README.md                                             # Keyword Research workflow documentation
  │   │
  │   ├── Website-Audit/
  │   │   ├── Website-Audit-Technical-SEO-Monitor.json              # Website audit workflow
  │   │   └── README.md                                             # Website Audit workflow documentation
  │   │
  │   └── SERP-Classic/
  │       ├── Gelato-Small-Towns-Amsterdam-Area.json                # SERP tracking workflow
  │       ├── Gelato Small Towns Amsterdam Area.xlsx                # Workflow results
  │       └── README.md                                             # SERP Classic workflow documentation
  │
  ├── package.json
  ├── package-lock.json
  ├── tsconfig.json
  └── README.md
  ```

  ---

  ## Acknowledgments

  - Built for the [n8n](https://n8n.io/) workflow automation platform
  - Powered by [SE Ranking API](https://seranking.com)

  ---

  ## Keywords

  n8n, n8n-custom-node, seranking, seo, keyword-research, domain-analysis, ai-search, llm-visibility, serp-tracking, competitive-analysis, seo-automation, workflow-automation, project-management, backlink-checker, website-audit, search-volume, marketing-plan, sub-account, ai-result-tracker

  ---

  **Made with ❤️ for SEO professionals using n8n**

ai_documentation_summary:
  {"purpose":"A custom n8n node that enables workflow automation with SE Ranking's SEO platform, allowing access to keyword research, competitor analysis, website audits, backlink monitoring, and AI search visibility tracking.","capabilities":["AI Search visibility tracking (LLM metrics, brand discovery, prompt tracking)","Backlink analysis (summary, metrics, detailed lists, raw data, export)","Domain analysis (authority metrics, page authority, history tracking)","Competitor comparison","Keyword research","Website audits","Anchor text analysis","Referring domain and IP analysis","Data export functionality"],"authentication":"API Token required (entered in n8n credentials with 'Data API' type)","commonUseCases":["SEO competitor analysis workflows","Backlink monitoring and tracking","Website authority auditing","AI search visibility optimization","Automated SEO reporting"],"limitations":["Requires SE Ranking account and API token","Compatible only with n8n 1.0.0+ and Node.js 18.x+","Uses SE Ranking Data API v1"],"relatedNodes":["Google Search Console","Ahrefs","Moz","SE Ranking"]}


node_type: @base64ai/n8n-nodes-base64ai.base64ai
package_name: @base64ai/n8n-nodes-base64ai
display_name: Base64 Document AI
description: All-in-one AI solution for document understanding
category: Community
development_style: declarative
version: 1,2
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: mbc_base64ai
author_github_url: https://github.com/base64ai/n8n-nodes-base64ai.git
npm_package_name: @base64ai/n8n-nodes-base64ai
npm_version: 2.0.2
community_fetched_at: 2026-04-16T09:43:35.874Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Face",
          "value": "face"
        },
        {
          "name": "Flow",
          "value": "flow"
        },
        {
          "name": "Result",
          "value": "result"
        },
        {
          "name": "Signature",
          "value": "signature"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "recognizeDocument",
      "options": [
        {
          "name": "Recognize Document",
          "value": "recognizeDocument",
          "action": "Recognize a document",
          "description": "Recognize a document by URL or binary data"
        },
        {
          "name": "Recognize Document Async",
          "value": "recognizeDocumentAsync",
          "action": "Recognize a document asynchronously",
          "description": "Start an asynchronous document recognition job by uploading a document or URL"
        },
        {
          "name": "Get Async Scan Result",
          "value": "getAsyncScanResult",
          "action": "Get async scan result",
          "description": "Fetch the status or result of a previously created async scan job"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "recognizeSignature",
      "options": [
        {
          "name": "Recognize Signature",
          "value": "recognizeSignature",
          "action": "Recognize a signature",
          "description": "Recognize a signature from a single image"
        },
        {
          "name": "Verify Signature",
          "value": "verifySignature",
          "action": "Verify a signature",
          "description": "Verify a signature by comparing two images"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "signature"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "recognizeFace",
      "options": [
        {
          "name": "Recognize Face",
          "value": "recognizeFace",
          "action": "Recognize a face",
          "description": "Recognize a face from a single image"
        },
        {
          "name": "Verify Face",
          "value": "verifyFace",
          "action": "Verify a face",
          "description": "Verify a face by comparing two images"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "face"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listFlows",
      "options": [
        {
          "name": "List Flows",
          "value": "listFlows",
          "action": "List flows",
          "description": "Retrieve all flows configured in your Base64.ai account"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "flow"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFlowResults",
      "options": [
        {
          "name": "Get Flow Results",
          "value": "getFlowResults",
          "action": "Get flow results",
          "description": "Retrieve results created by the specified flow"
        },
        {
          "name": "Get Result by UUID",
          "value": "getResultByUuid",
          "action": "Get result by UUID",
          "description": "Fetch a single result using its UUID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "result"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Recognize Document",
      "value": "recognizeDocument",
      "action": "Recognize a document",
      "description": "Recognize a document by URL or binary data",
      "resource": "document"
    },
    {
      "name": "Recognize Document Async",
      "value": "recognizeDocumentAsync",
      "action": "Recognize a document asynchronously",
      "description": "Start an asynchronous document recognition job by uploading a document or URL",
      "resource": "document"
    },
    {
      "name": "Get Async Scan Result",
      "value": "getAsyncScanResult",
      "action": "Get async scan result",
      "description": "Fetch the status or result of a previously created async scan job",
      "resource": "document"
    },
    {
      "name": "Recognize Signature",
      "value": "recognizeSignature",
      "action": "Recognize a signature",
      "description": "Recognize a signature from a single image",
      "resource": "signature"
    },
    {
      "name": "Verify Signature",
      "value": "verifySignature",
      "action": "Verify a signature",
      "description": "Verify a signature by comparing two images",
      "resource": "signature"
    },
    {
      "name": "Recognize Face",
      "value": "recognizeFace",
      "action": "Recognize a face",
      "description": "Recognize a face from a single image",
      "resource": "face"
    },
    {
      "name": "Verify Face",
      "value": "verifyFace",
      "action": "Verify a face",
      "description": "Verify a face by comparing two images",
      "resource": "face"
    },
    {
      "name": "List Flows",
      "value": "listFlows",
      "action": "List flows",
      "description": "Retrieve all flows configured in your Base64.ai account",
      "resource": "flow"
    },
    {
      "name": "Get Flow Results",
      "value": "getFlowResults",
      "action": "Get flow results",
      "description": "Retrieve results created by the specified flow",
      "resource": "result"
    },
    {
      "name": "Get Result by UUID",
      "value": "getResultByUuid",
      "action": "Get result by UUID",
      "description": "Fetch a single result using its UUID",
      "resource": "result"
    }
  ]

npm_readme:
  # Base64.ai n8n Community Node

  Use [Base64.ai](https://base64.ai) directly from your n8n workflows to automate document processing, identity verification, and biometric checks without writing glue code. This package exposes the public Base64.ai API as an installable community node.

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

  ## Installation

  1. Open your n8n instance and go to **Settings → Community Nodes**.
  2. Click **Install**, enter `@base64ai/n8n-nodes-base64ai`, and confirm the warning.
  3. Restart n8n if prompted.

  Alternatively, install via command line inside your n8n deployment directory:

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

  ## Authentication

  The node authenticates with your Base64.ai **email** and **API key**.

  1. Sign in at [Base64.ai Console](https://app.base64.ai) and create an API key under **Settings → API Keys**.
  2. Copy the email associated with your workspace (usually the same email you use to log in).
  3. In n8n, create new credentials of type **Base64.ai API** and paste both values.

  Credentials are transported over HTTPS and stored by n8n according to your instance configuration.

  ## Operations

  | Resource | Operations | Description |
  | --- | --- | --- |
  | Document | Recognize Document, Recognize Document Async, Get Async Scan Result | Upload or link to a document and run a selected Base64.ai flow, either sync or async. |
  | Signature | Recognize Signature, Verify Signature | Detect signatures on a single document or compare two signatures for verification. |
  | Face | Recognize Face, Verify Face | Run biometric detection or compare two faces. |
  | Flow | List Flows | Enumerate flows available to the authenticated workspace (used to populate dropdowns). |
  | Result | Get Flow Results, Get Result By UUID | Fetch processed results in bulk or by UUID for downstream systems. |

  Every operation returns the raw Base64.ai API payload so you can post-process it with native n8n nodes.

  ## Usage Notes

  - **Input Source** – You can provide publicly accessible URLs or binary data from earlier nodes. When using binaries, ensure the previous node sets `data` (or customize the property name) and the binary data is not too large for your n8n instance.
  - **Flows** – The Document and Result resources support selecting a flow from the Base64.ai API or entering an ID manually. Use manual entry for dynamic expressions or when the flow is newly created.
  - **Asynchronous workloads** – Use **Document → Recognize Document Async** for multi-page or high-volume documents; store the returned UUID and poll with **Document → Get Async Scan Result** until the status becomes `done`.
  - **Headers** – When you provide a Flow ID the node automatically adds the `base64ai-flow-id` header required by the API.

  ## Example Workflow

  **Goal:** Recognize a document from a public URL and extract fields.

  1. Add a **Manual Trigger** node.
  2. Add **Base64 Document AI** and set:
     - **Resource**: Document
     - **Operation**: Recognize Document
     - **Input Source**: URL
     - **Document URL**: `https://example.com/sample-invoice.pdf`
     - **Flow**: Select a flow from the list (or enter a Flow ID manually)
  3. Add a **Set** node to pick the fields you need from the response, for example:
     - `{{$json.fields.invoice_number.value}}`
     - `{{$json.fields.total.value}}`

  This workflow will return the raw Base64.ai response and let you extract the fields you care about using native n8n nodes.

  ## Compatibility

  - Tested with n8n `>= 1.60.0` running on Node.js `>= 18.17`.
  - The codebase targets the latest n8n Node CLI (`@n8n/node-cli` v1) and TypeScript 5.9.
  - All requests are made against the public `https://base64.ai/api` endpoint.

  ## Resources

  - [Base64.ai](https://base64.ai/)
  - [Base64.ai API Reference](https://apidoc.base64.ai/)
  - [n8n Community Nodes guide](https://docs.n8n.io/integrations/community-nodes/installation/)
  - Support: [support@base64.ai](mailto:support@base64.ai)

  ## Version History

  - **1.0.0** – Current stable release. See [CHANGELOG.md](CHANGELOG.md) for full history.


node_type: @zohosign/n8n-nodes-sign.zohoSignTrigger
package_name: @zohosign/n8n-nodes-sign
display_name: Zoho Sign Trigger
description: Triggers on incoming events
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: zohosign
author_github_url: https://github.com/ZohoSign-integ/n8n-nodes-zohosign.git
npm_package_name: @zohosign/n8n-nodes-sign
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:35.875Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # Zoho Sign integration with n8n

  Zoho Sign is a secure digital signature and workflow automation platform for businesses. Use this node to automate Zoho Sign operations directly from n8n workflows.

  To learn more about Zoho Sign, visit our homepage, or contact sales with any questions.

  - [Prerequisites](#prerequisites)
  - [Installation](#installation)
  - [Credentials](#credentials)
  - [Operations](#operations)
  - [Compatibility](#compatibility)

  ## Prerequisites

  - A Zoho Sign account
  - n8n
  - Access to OAuth 2.0 credentials (client ID and client secret)

  ## Installation

  Follow the n8n community nodes installation guide to install the Zoho Sign node.

  If you use n8n as a self-hosted user, you can install this node even if it doesn't appear in the default node list. Follow [GUI installation guide](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/).

  **Package name: @zohosign/n8n-nodes-sign**

  ## Credentials

  To use the Zoho Sign node, you will need to authenticate via Zoho OAuth 2.0.

  ### Setting up OAuth 2.0

  1. Visit [Zoho OAuth 2.0](https://www.zoho.com/accounts/protocol/oauth.html) and follow the instructions to generate a client ID and client secret. Select **Server-based Applications** as the client type.

  2. Make sure to select the correct `Authorization URL` and `Access Token URL` depending on your Zoho Sign domain.

  3. Enter the client ID and client secret in the credential page of the n8n node and click **Connect my account**.

  4. Once connected, your Zoho Sign account is ready to use in workflows.

  ## Operations

  The Zoho Sign node supports a range of document and template operations. Each operation listed below includes a link to its specific API documentation.

  See all Zoho Sign [API documentation](https://www.zoho.com/sign/api/).

  ### Document operations

  #### Get Many

  Get all document requests in your account.

  #### Get

  Get a specific document request. 

  Requires `Request ID` (found via Get Documents List operation or in the Zoho Sign UI URL for the specific request).

  Optional boolean `Format Actions` helps to transform the request actions array for use in request `Update` operation by providing a generalized structure with placeholders.

  #### Get Form Data

  See form data from a completed document.

  Requires `Request ID`.

  #### Get Folder List

  See all folders in your account.

  #### Get Field Types

  See all field types supported by Zoho Sign.

  #### Get Document Types

  See all document types in your account.

  #### Download PDF

  Download a request's data.

  Requires `Request ID`.

  #### Download Particular PDF File

  Download a specific PDF file in the request data.

  Requires `Request ID` and `Document ID`.

  #### Download Completion Certificate

  Download the completion certificate for a completed request.

  Requires `Request ID`.

  #### Recall

  Recall a signing request.

  Requires `Request ID`, `Reason (optional)`.

  #### Remind Recipient

  Send out a reminder email to recipients about a signing request.

  Requries `Request ID`.

  #### Create a New Folder

  Create a new folder in your account.

  Requires `Folder Name`.

  #### Create New Document Type

  Create a new document type for your account.

  Requires `Document Type Name` and `Document Type Description (optional)`.

  #### Update Document Type

  Update the name and description of a document type.

  Requires `Request Type ID`, `Document Category Name`, and `Document Category Description (optional)`.

  #### Correct

  Put a signing request in "CORRECTION" state so the admin can update it. Recipients cannot sign while the request is in this state. After making corrections, submit the request again to enable signing.

  Requires `Request ID`.

  #### Upload

  Create a new request by uploading documents, or upload documents to a drafted request.

  Requires `Request ID`.

  #### Submit

  Submit a document for signatures. This operation sends an email to all recipients to start the signing process. It will mark the document as "In progress" and prevent further editing unless the Correct Document operation is invoked with the request ID.

  Requires `Request ID`.

  #### Delete

  Delete a request.

  For a sent request, set `In Progress = true` to delete it. If not properly set, the request won't be deleted.

  Requires `Request IDs to Delete` (a list of request IDs) and `In Progress` (Boolean field to indicate what type of document to delete).

  ```
  {
  	"data": ["38002000000070097", ...]
  }
  ```

  #### Extend

  Change the expiration date for the signing request.

  Requires `Request ID` and `Expire By`.

  #### Update

  Update the information regarding a signing request.

  ### Template Operations

  #### Get Many

  Get all templates in your account.

  #### Get

  Get information regarding a particular template.

  Requires `Template ID`.

  Optional boolean `Format Actions & Prefill fields` helps you to format the output for use in `Send For Signatures` operation by providing a generalized structure with placeholders.

  #### Upload

  Create a new template by uploading a document or upload documents to an existing template.

  Requires `Template ID` (optional; will upload the document to the corresponding template).

  #### Send For Signatures

  Send a signing request using a template as a base.

  Requires `Template ID`, `Is QuickSend` (Boolean that determines whether quick send or new document request draft), and `Prefill Fields` (optional; required if prefill fields are present in the document and you're using quick send).

  #### Delete

  Deletes a template.

  Requires `Template ID`.

  ## Compatibility

  This node is generally tested against and is compatible with the latest stable version of **n8n**. A minimum n8n version of **1.113.0** or higher is recommended.

ai_documentation_summary:
  {"purpose":"The Zoho Sign Trigger node automates Zoho Sign operations within n8n workflows by triggering on incoming events and supporting various document and template management actions.","capabilities":["Get all document requests","Get specific document request by Request ID","Get form data from completed documents","Get folder list","Get field types","Get document types","Download PDF data","Download specific PDF file","Download completion certificate","Recall signing request"],"authentication":"OAuth 2.0 (Client ID and Client Secret required)","commonUseCases":["Automating document collection and submission workflows","Managing digital signature expiration dates","Recalling or correcting failed signature requests","Sending reminders to recipients","Template-based document generation and signing"],"limitations":["Requires a Zoho Sign account with OAuth 2.0 credentials","Minimum n8n version 1.113.0 recommended","Delete operation requires setting 'In Progress' to true for sent requests"],"relatedNodes":["Zoho Sign Create","Zoho Sign Update","Zoho Sign Delete","Zoho Sign Get","Zoho Sign Send For Signatures"]}


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-04-16 09:43:35
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-04-16T09:43:35.876Z
ai_summary_generated_at: 2026-03-25 22:51:43
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",
      "resource": "automation"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an automation",
      "description": "Delete an automation",
      "resource": "automation"
    },
    {
      "name": "Duplicate",
      "value": "duplicate",
      "action": "Duplicate an automation",
      "description": "Duplicate an existing automation",
      "resource": "automation"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an automation",
      "description": "Get a single automation by ID",
      "resource": "automation"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many automations",
      "description": "Get many automations",
      "resource": "automation"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an automation",
      "description": "Update an existing automation",
      "resource": "automation"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a document",
      "description": "Create a new document from an automation",
      "resource": "document"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List placeholders",
      "description": "List placeholders for an automation",
      "resource": "placeholder"
    },
    {
      "name": "Duplicate Google Doc",
      "value": "duplicateGoogleDoc",
      "action": "Duplicate a google doc template",
      "description": "Duplicate a Google Doc template",
      "resource": "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":"The DocsAutomator node enables users to create, manage, and automate document generation within n8n workflows by integrating with the DocsAutomator API.","capabilities":["List all automations in the workspace","Retrieve a single automation by ID","Create new automations","Update existing automation settings","Delete automations","Duplicate automations","Generate documents from automations with placeholder data","List available placeholders for templates","Duplicate Google Doc templates","Process documents in preview mode"],"authentication":"API key required","commonUseCases":["Automated invoice generation with dynamic line items","Bulk document creation from templates","Workflow integration with external data sources for document personalization","Template management and duplication"],"limitations":["Only API/n8n automations are shown in the dropdown selection","Line items must be provided as valid JSON arrays","Some operations may require specific DocsAutomator workspace settings"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


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-04-16 09:43:35
author_name: dumitrucucu
author_github_url: https://github.com/agency-ai-solutions/
npm_package_name: n8n-nodes-agencii
npm_version: 0.4.0
community_fetched_at: 2026-04-16T09:43:35.877Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Chat",
          "value": "chat"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendMessage",
      "options": [
        {
          "name": "Send Message",
          "value": "sendMessage",
          "action": "Send message 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",
      "resource": "chat"
    }
  ]

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":"Connects n8n workflows to Agencii.ai platform agencies to send messages and receive responses from configured multi-agent systems.","capabilities":["Send messages to agency default agents","Maintain conversation context via Session ID","Route requests to specific agencies using Integration ID","Return structured responses including text, sessionId, and metadata"],"authentication":"API Key (Bearer token in header)","commonUseCases":["Automated task execution via AI agent agencies","Multi-turn conversational workflows with context retention","Customer feedback analysis and summarization","Interactive data processing with specialized agents"],"limitations":["Model selection, temperature, max tokens, and agent behavior are configured on the Agencii.ai platform, not in n8n","Messages are routed to the default agent unless configured otherwise on the platform","Endpoint is fixed and not user-editable in the node","Session ID must be managed by the user for multi-turn conversations"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: @pinecone-database/n8n-nodes-pinecone-assistant.pineconeAssistant
package_name: @pinecone-database/n8n-nodes-pinecone-assistant
display_name: Pinecone Assistant
description: A Pinecone Assistant node for n8n
category: Community
development_style: declarative
version: 0.1.10
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: pinecone-ops
author_github_url: https://github.com/pinecone-io/n8n-nodes-pinecone-assistant.git
npm_package_name: @pinecone-database/n8n-nodes-pinecone-assistant
npm_version: 0.1.10
community_fetched_at: 2026-04-16T09:43:35.878Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-pinecone-assistant

  This is the official [n8n](https://n8n.io/) community node for interacting with [Pinecone](https://www.pinecone.io/) Assistant in your workflows.

  [Pinecone Assistant](https://docs.pinecone.io/guides/assistant/overview) allows you to build production-grade chat and agent-based applications quickly. It abstracts the complexities of implementing retrieval-augmented (RAG) systems by managing the chunking, embedding, storage, query planning, vector search, model orchestration, and reranking for you.

  ## Installation

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

  ## Operations

  ### Assistants

  #### List Assistants

  Retrieves a list of all Pinecone Assistants in your project. Use this operation to discover available assistants or populate assistant selection fields in your workflows.

  ##### Fields
  - **Additional Fields:**
    - **Source Tag** (optional): Specify a source tag to attribute usage to this integration. This is primarily used for Pinecone integration partners. Read more in the [Pinecone documentation](https://docs.pinecone.io/integrations/build-integration/attribute-usage-to-your-integration).

  ##### Output

  Returns an array of assistant objects containing assistant names and host URLs.

  ### Files

  #### List Files

  Retrieves all files associated with a specific Pinecone Assistant. Use this to see what files are available in an assistant, filter files by metadata, or verify file uploads.

  ##### Fields
  - **Assistant Name** (required): The name of the Pinecone Assistant to query. This list is populated dynamically based on your available assistants.
  - **Additional Fields:**
    - **Metadata Filter** (optional): Limit the list of files to only those matching the metadata filter. Add key-value pairs to filter by specific metadata.
    - **Advanced Metadata Filter (JSON)** (optional): Use advanced metadata filtering when you need support for operators like `$or`, `$ne`, `$in`, etc. Provide a JSON object with filter expressions. Learn more about metadata filter expressions in the [Pinecone documentation](https://docs.pinecone.io/guides/search/filter-by-metadata#metadata-filter-expressions).
    - **Source Tag** (optional): Specify a source tag to attribute usage to this integration. This is primarily used for Pinecone integration partners. Read more in the [Pinecone documentation](https://docs.pinecone.io/integrations/build-integration/attribute-usage-to-your-integration).

  **Note:** Only one of Metadata Filter or Advanced Metadata Filter can be set, not both.

  ##### Output

  Returns an array of file objects with their metadata and external file IDs.

  #### Upload File

  Uploads a new file to a Pinecone Assistant. Assistant automatically chunks, embeds, and indexes the file for retrieval. Use this to add new documents or content to your assistant's knowledge.

  ##### Fields
  - **Assistant Name** (required): The name of the Pinecone Assistant to upload the file to. This list is populated dynamically based on your available assistants.
  - **External File ID** (required): A unique identifier for the file in the Pinecone Assistant. This should be unique for each file.
  - **Input Data Field Name** (required): The name of the field in the input item that contains the file data. Default is "data".
  - **Additional Fields:**
    - **Metadata** (optional): A collection of key-value pairs to add as metadata to the file. This metadata can be used later for filtering files or context snippets.
    - **Source Tag** (optional): Specify a source tag to attribute usage to this integration. This is primarily used for Pinecone integration partners. Read more in the [Pinecone documentation](https://docs.pinecone.io/integrations/build-integration/attribute-usage-to-your-integration).

  **Note:** There is no need to specify External File ID in the metadata field directly as this operation will make sure it's set.

  ##### Output

  Returns the uploaded file information.

  #### Update File

  Updates an existing file in a Pinecone Assistant. This operation deletes the existing file(s) with the specified external file ID and uploads the new version.

  ##### Fields
  - **Assistant Name** (required): The name of the Pinecone Assistant containing the file to update. This list is populated dynamically based on your available assistants.
  - **External File ID** (required): The external file ID of the file to update. If the existing file does not exist, a new file will be uploaded. Use this to refresh or modify content in your assistant's knowledge base. If there are multiple files with the same external file ID, all will be updated.
  - **Input Data Field Name** (required): The name of the field in the input item that contains the updated file data. Default is "data".
  - **Additional Fields:**
    - **Metadata** (optional): A collection of key-value pairs to update the file's metadata.
    - **Source Tag** (optional): Specify a source tag to attribute usage to this integration. This is primarily used for Pinecone integration partners. Read more in the [Pinecone documentation](https://docs.pinecone.io/integrations/build-integration/attribute-usage-to-your-integration).

  ##### Output

  Returns the updated file information.

  #### Delete File

  Deletes a file from a Pinecone Assistant. Use this to remove outdated or unwanted content from your assistant's knowledge.

  ##### Fields
  - **Assistant Name** (required): The name of the Pinecone Assistant containing the file to delete. This list is populated dynamically based on your available assistants.
  - **External File ID** (required): The external file ID to identify the file in the Pinecone Assistant. If there are multiple files with the same external file ID, this operation will delete all of them.
  - **Additional Fields:**
    - **Source Tag** (optional): Specify a source tag to attribute usage to this integration. This is primarily used for Pinecone integration partners. Read more in the [Pinecone documentation](https://docs.pinecone.io/integrations/build-integration/attribute-usage-to-your-integration).

  ##### Output

  Returns a confirmation object with `deleted: true`.

  ### Context Snippets

  #### Get Context Snippets

  Retrieves relevant context snippets from a Pinecone Assistant based on a query. This is the core RAG (Retrieval-Augmented Generation) operation that finds and returns the most relevant chunks of text from your assistant's files that match your query. Use this to provide context to LLMs or to retrieve relevant information for your applications.

  ##### Fields
  - **Assistant Name** (required): The name of the Pinecone Assistant to query for context snippets. This list is populated dynamically based on your available assistants.
  - **Query** (required): The query text used to retrieve relevant context snippets. This is the search term that will be used to find matching content in your assistant's files.
  - **Additional Fields:**
    - **Include Multimodal Context** (optional): Whether to include multimodal context snippets. Default is `true`. When enabled, the assistant will return multimodal context snippets (e.g., images from PDFs) in addition to text snippets.
    - **Include Binary Content** (optional): Whether to include binary content with multimodal context snippets. Default is `true`. Only applies when Include Multimodal Context is enabled. When enabled, binary content (e.g., base64 image data) will be included in the response.
    - **Metadata Filter** (optional): Limit the context snippets to only those from files matching the metadata filter. Add key-value pairs to filter by specific metadata.
    - **Snippet Size** (optional): The maximum context snippet size in tokens. Default is 2048.
    - **Top K** (optional): The maximum number of context snippets to return. Default is 16.
    - **Advanced Metadata Filter (JSON)** (optional): Use advanced metadata filtering when you need support for operators like `$or`, `$ne`, `$in`, etc. Provide a JSON object with filter expressions. Learn more about metadata filter expressions in the [Pinecone documentation](https://docs.pinecone.io/guides/search/filter-by-metadata#metadata-filter-expressions).
    - **Source Tag** (optional): Specify a source tag to attribute usage to this integration. This is primarily used for Pinecone integration partners. Read more in the [Pinecone documentation](https://docs.pinecone.io/integrations/build-integration/attribute-usage-to-your-integration).

  **Note:** Only one of Metadata Filter or Advanced Metadata Filter can be set, not both.

  ##### Output

  Returns an array of context snippets with their text or image content, relevance scores, references, and associated metadata.

  ## Credentials

  To use the Pinecone Assistant node, you'll need a Pinecone account and an API key. You can get started for free on the Starter plan (refer to [current pricing and limits](https://docs.pinecone.io/guides/assistant/pricing-and-limits) for more info).

  1. Sign up for a [Pinecone account](https://app.pinecone.io/)
  2. Create an [API key](https://app.pinecone.io/organizations/-/projects/-/keys)

  ## Compatibility

  This node was tested locally against n8n 2.9.4.

  ## Usage

  Refer to our [Pinecone Assistant quickstart](https://docs.pinecone.io/guides/assistant/quickstart/n8n-quickstart) for n8n to get started with a pre-built workflow using this node, an Assistant, and Open AI.

  ## Version history

  - V1 - Initial version of the Pinecone Assistant node
  - V1.2 - Deprecates the `pineconeAssistantApi` credential in favor of `pineconeApi`

  ## Node development

  To develop, build, and run this node locally, use the `n8n-node` cli tool or `pnpm`. For more info on `n8n-node`, refer [here](https://docs.n8n.io/integrations/creating-nodes/build/n8n-node/).

  1. Install dependencies

  ```bash
  $ cd n8n-nodes-pinecone-assistant
  $ pnpm install
  ```
  2. Build the node

  This compiles Typescript files and bundles project assets into the `dist` folder.

  ```bash
  $ pnpm run build
  ```

  Running this will clean the `dist` folder.

  3. Test the node

  This runs a local instance of n8n with the node. It watches the project directory and automatically rebuilds when changes are detected.

  ```bash
  $ pnpm run dev
  ```

  Head over to http://localhost:5678 to test the node in a workflow.

  4. Run tests

  Run the unit test suite.

  ```bash
  $ pnpm test
  ```

  5. Versioning the node

  When making changes to a version of the node, ensure backwards compatibility with the current version as all existing workflows will use the previous version until it is manually migrated. If it cannot be backwards compatible, create a new version of the node:

  - In `PineconeAssistant.node.ts`, change `defaultVersion` to the new version number
  - In `PineconeAssistant.node.ts`, update the list of `nodeVersions`
  - Add a new version directory, named `v#` (i.e. `v2`)
  - In the new version directory, add the versioned node, `PineconeAssistantV2.node.ts` and all the functionality.

  Note: It is possible to continue using the previous version's functionality and configure per version using `displayOptions`, etc. See version 1.2.

  6. Release the node and publish to npm

  Releases are performed via the **Release: NPM Package** GitHub Actions workflow. The workflow:

  - Lints and builds the project
  - Bumps the version in `package.json` (patch, minor, or major)
  - Updates `nodes/PineconeAssistant/version.json`
  - Regenerates `CHANGELOG.md` with [auto-changelog](https://github.com/CookPete/auto-changelog)
  - Commits the changes and creates a git tag
  - Builds again (so the published package contains the new version)
  - Publishes to npm with provenance
  - Pushes the commit and tag to the repository
  - Creates a draft GitHub release

  To release a new version:

  1. Open the **Actions** tab in the repository, select **Release: NPM Package**, and click **Run workflow**.
  2. Optionally choose a branch to release from (default is the repository default branch).
  3. Choose the release type: **patch** (bug fixes), **minor** (new features, backwards compatible), or **major** (breaking changes).
  4. Run the workflow. It uses the `npm-publish` environment; ensure npm trusted publishing (or your chosen auth) is configured for that environment.
  5. After the run completes, publish the draft GitHub release from the **Releases** page if you use GitHub releases.

  ## Contributing

  We welcome contributions! Please feel free to:
  - Submit issues and bug reports
  - Propose new features and improvements
  - Contribute code via pull requests
  - Share your use cases and success stories

  ## License

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

ai_documentation_summary:
  {"purpose":"A community n8n node that enables interaction with Pinecone Assistants to manage files, metadata, and knowledge bases for RAG-powered chat and agent applications.","capabilities":["List all available Pinecone Assistants","List files within a specific assistant with optional metadata filtering","Upload new files to an assistant for automatic chunking and indexing","Update existing files by replacing content and metadata","Delete files from an assistant","Apply advanced metadata filters using JSON operators ($or, $ne, $in)","Attribute usage to integration partners via Source Tags"],"authentication":"API key required (inherited from Pinecone integration)","commonUseCases":["Building production-grade chatbots with RAG","Managing knowledge base documents in agent workflows","Filtering and updating training data for AI assistants","Integrating with Pinecone integration partners for usage tracking"],"limitations":["Only one metadata filter type (Metadata Filter or Advanced Metadata Filter) can be used simultaneously","External File ID must be provided manually during upload/update operations"],"relatedNodes":["Pinecone Vector Store","Pinecone Index","HTTP Request","JSON"]}


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

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

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

npm_readme:
  # n8n-nodes-langfuse

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

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

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

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

  ## Installation

  ### Self-hosted n8n

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

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

  ### n8n Cloud

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

  ## Operations

  ### Get Prompt

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

  Steps

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

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

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

  ## Credentials

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

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

  ## Development

  ### Prerequisites

  You need the following installed on your development machine:

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

  ### Build new version

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

  ### Test in local n8n

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

  ## Resources

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

  ## License

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

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


node_type: @fellow/n8n-nodes-fellow.fellowTrigger
package_name: @fellow/n8n-nodes-fellow
display_name: Fellow Trigger
description: Triggers workflow when Fellow events occur
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: sciyoshi
author_github_url: https://github.com/fellowapp/n8n-nodes-fellow.git
npm_package_name: @fellow/n8n-nodes-fellow
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:35.880Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-fellow

  This is an n8n community node that lets you integrate [Fellow](https://fellow.ai) into your n8n workflows.

  Fellow is the top-rated AI meeting assistant that records, transcribes, and summarizes meetings. This node allows you to automate workflows triggered by meeting events and interact with Fellow's meeting notes and action items.

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

  ## Installation

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

  ## Credentials

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

  1. Log in to [Fellow](https://fellow.ai)
  2. Navigate to your user settings
  3. Generate an API key from the API, MCP & Webhooks section
  4. Use your workspace subdomain and API key to configure the credentials in n8n

  ## Operations

  ### Fellow Node

  **Action Items**
  - **Get**: Retrieve an action item by ID
  - **Get Many**: List action items with optional filters (scope, completed, archived, AI-detected)
  - **Complete**: Mark an action item as complete

  **Notes**
  - **Get**: Retrieve an AI-generated meeting note by ID
  - **Get Many**: List notes with optional filters (title, event, channel, date ranges, attendees)

  ### Fellow Trigger

  Trigger workflows when Fellow events occur:

  - **AI Note Generated**: Triggers when an AI note is generated after a meeting
  - **AI Note Shared to Channel**: Triggers when an AI note is shared to a Fellow channel
  - **Action Item Assigned To Me**: Triggers when an action item is assigned to you
  - **Action Item Completed**: Triggers when an action item is marked as complete

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Fellow](https://fellow.ai)
  - [Fellow Help Center](https://help.fellow.ai)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows automatically when specific events occur in Fellow, such as AI-generated meeting notes, notes shared to channels, or action item assignments/completions.","capabilities":["Trigger on AI note generation","Trigger on AI note sharing to channel","Trigger on action item assignment to user","Trigger on action item completion","Retrieve action items by ID","List action items with filters (scope, completed, archived, AI-detected)","Mark action items as complete","Retrieve meeting notes by ID","List meeting notes with filters (title, event, channel, date ranges, attendees)"],"authentication":"API key required (Fellow API key from user settings)","commonUseCases":["Automate follow-up tasks when meeting notes are generated","Create workflows to track action items assigned to users","Integrate meeting summaries into other systems","Automate reminders when action items are completed"],"limitations":["Requires a valid Fellow API key and workspace subdomain","Limited to events and data available through Fellow's API"],"relatedNodes":["HTTP Request","Function","Wait Until","Code"]}


node_type: @ainoflow/n8n-nodes-ainoflow.ainoflowConvert
package_name: @ainoflow/n8n-nodes-ainoflow
display_name: Ainoflow Convert
description: Extract text or convert to PDF from documents, images, and audio (OCR & transcription)
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: dmitrijz
author_github_url: https://github.com/ainova-systems/n8n-nodes-ainoflow.git
npm_package_name: @ainoflow/n8n-nodes-ainoflow
npm_version: 1.0.7
community_fetched_at: 2026-04-16T09:43:35.881Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "convert",
      "options": [
        {
          "name": "Convert File",
          "value": "convert",
          "action": "Convert file to text or PDF",
          "description": "Extract text or convert to PDF from document, image, or audio"
        },
        {
          "name": "Get Result",
          "value": "getResult",
          "action": "Get result",
          "description": "Get result of conversion job"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Convert File",
      "value": "convert",
      "action": "Convert file to text or PDF",
      "description": "Extract text or convert to PDF from document, image, or audio"
    },
    {
      "name": "Get Result",
      "value": "getResult",
      "action": "Get result",
      "description": "Get result of conversion job"
    }
  ]

npm_readme:
  # n8n-nodes-ainoflow

  n8n community nodes for [Ainoflow](https://ainoflow.io) API services.

  ## Nodes

  | Node | Description |
  |------|-------------|
  | **Ainoflow Convert** | Extract text or convert to PDF from documents, images, and audio (OCR & transcription) |
  | **Ainoflow Files** | Store and manage binary files in object storage |
  | **Ainoflow Storage** | Store and retrieve JSON documents in key-value storage |

  ## Installation

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

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

  ## Credentials

  All nodes use the shared **Ainoflow API** credential:

  | Field | Description |
  |-------|-------------|
  | API Key | Your Ainoflow API key |
  | Base URL | API endpoint (default: `https://api.ainoflow.io`) |

  ## Ainoflow Convert

  Extract text or convert to PDF from documents, images, and audio files.

  ### Operations

  | Operation | Description |
  |-----------|-------------|
  | **Convert File** | Extract text or convert to PDF from document, image, or audio |
  | **Get Result** | Get result of conversion job |

  ### Input Sources

  - **Binary Data** - File from previous node
  - **URL** - Download from URL

  ### Response Modes

  | Mode | Behavior |
  |------|----------|
  | Direct | Wait and return content inline |
  | Persisted | Wait and return download URLs |
  | Polling | Return job ID immediately |
  | Webhook | Notify webhook URL when complete |

  ### Models

  | Model | Use Case |
  |-------|----------|
  | Auto | Auto-select based on file type (recommended) |
  | PaddleOCR | OCR for images |
  | Tesseract | OCR for PDFs |
  | Whisper (tiny/small/base) | Audio transcription |

  ### Supported Formats

  - **Documents:** PDF, JPEG, PNG, TIFF, BMP, WebP, GIF, DOC(X), XLS(X), PPT(X), ODT, TXT, RTF
  - **Audio:** WAV, MP3, M4A, MP4, WebM, OGG, FLAC, AAC, Opus

  ### Languages

  60 languages supported including: English, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Russian, Ukrainian, Chinese (Simplified/Traditional), Japanese, Korean, Arabic, and more.

  ## Ainoflow Files

  Manage binary files in object storage.

  ### Resources & Operations

  **File:**
  | Operation | Description |
  |-----------|-------------|
  | Create | Upload new file (auto-generated key) |
  | Create or Replace | Upload file with explicit key (upsert) |
  | Download | Download file content |
  | Delete | Delete file |
  | Get URL | Get pre-signed download URL |
  | Get Metadata | Get file metadata |
  | Get Many | List files in category |

  **Category:**
  | Operation | Description |
  |-----------|-------------|
  | Get Many | List categories with file counts |

  ### Input Sources (Create/Replace)

  - **Binary Data** - File from previous node
  - **URL** - Server downloads from URL

  ### Features

  - Categories for organizing files
  - Pre-signed URLs with configurable expiry
  - TTL support via `expiresAt`
  - Max file size: 100MB

  ## Ainoflow Storage

  Store and retrieve JSON documents.

  ### Resources & Operations

  **Record:**
  | Operation | Description |
  |-----------|-------------|
  | Create | Create new record (fails if exists) |
  | Create or Replace | Create or replace record (upsert) |
  | Update | Partial update via JSON Merge Patch (RFC 7386) |
  | Get | Retrieve record by key |
  | Delete | Delete record |
  | Get Metadata | Get record metadata without content |
  | Get Many | List records in category |

  **Category:**
  | Operation | Description |
  |-----------|-------------|
  | Get Many | List categories with record counts |

  ### Data Input

  - **Using Fields Below** - Key/value pairs with expression support
  - **Using JSON** - Direct JSON object or array

  ### Features

  - Categories for organizing records
  - TTL support via `expiresAt` or `expiresMs`
  - JSON Merge Patch for partial updates
  - Max record size: 10MB

  ## Development

  ### Prerequisites

  - Node.js v20.19+ to v24 (v22 LTS recommended)
  - npm

  ### Commands

  ```bash
  npm install        # Install dependencies
  npm run dev        # Run n8n with hot reload
  npm run build      # Production build
  npm run lint       # Check for issues
  npm run lint:fix   # Auto-fix issues
  ```

  ## Resources

  - [Ainoflow Platform](https://ainoflow.io) - Document conversion, file storage, and JSON storage APIs
  - [Ainova Systems](https://www.ainovasystems.com/) - Custom n8n nodes, workflow development, and AI automation solutions
  - [GitHub Repository](https://github.com/ainova-systems/n8n-nodes-ainoflow)
  - [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE.md) - Copyright 2026 Ainova Systems

ai_documentation_summary:
  {"purpose":"The Ainoflow Convert node extracts text from documents, images, and audio files using OCR and transcription, or converts files to PDF format.","capabilities":["Extract text from PDFs, images (JPEG, PNG, TIFF, BMP, WebP, GIF), and documents (DOCX, XLSX, PPTX, ODT, TXT, RTF)","Transcribe audio files (WAV, MP3, M4A, MP4, WebM, OGG, FLAC, AAC, Opus)","Convert files to PDF format","Support for 60+ languages","Multiple response modes: Direct, Persisted, Polling, Webhook","Model selection: Auto, PaddleOCR, Tesseract, Whisper (tiny/small/base)","Input from binary data or URL sources"],"authentication":"API Key required (shared credential with Base URL)","commonUseCases":["Extracting text from scanned documents or images","Transcribing audio recordings to text","Converting various file formats to PDF","Processing multilingual documents and audio"],"limitations":["Requires Ainoflow API key and subscription for usage","No specific limitations mentioned in README for the Convert node itself"],"relatedNodes":["Ainoflow Files","Ainoflow Storage"]}


node_type: n8n-nodes-smstools.smstools
package_name: n8n-nodes-smstools
display_name: Smstools
description: Send sms or voice messages with the Smstools API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: smstools
author_github_url: https://github.com/Smstools-api/
npm_package_name: n8n-nodes-smstools
npm_version: 0.1.2
community_fetched_at: 2026-04-16T09:43:35.881Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Tools",
          "value": "tools"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send message",
          "value": "send"
        },
        {
          "name": "Send voice message",
          "value": "send-voice"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "name": "Send message",
      "value": "send",
      "resource": "message"
    },
    {
      "name": "Send voice message",
      "value": "send-voice",
      "resource": "message"
    }
  ]

npm_readme:
  # n8n-nodes-smstools

  Community node for **Smstools** — the Belgian SMS gateway platform [smstools.be](https://www.smstools.be) and [smstools.com](https://www.smstools.com).  
  This node lets you send SMS messages, send voice messages, check delivery statuses, view your account balance, get available sender IDs, and format numbers directly in your n8n workflows.

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

  ---

  ## 🧩 Installation

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

  Once installed, search for **Smstools** in the Nodes panel within n8n.

  ---

  ## ⚙️ Supported Operations

  | Resource    | Operation           | Endpoint                 |
  |--------------|--------------------|--------------------------|
  | **Message**  | Send message        | `POST /v1/message/send`  |
  | **Message**  | Send voice message  | `POST /v1/voice/send`    |
  | **Account**  | Auth info           | `GET /v1/auth`           |
  | **Account**  | Get balance         | `GET /v1/account/balance`|
  | **Account**  | Get sender IDs      | `GET /v1/senderids`      |
  | **Tools**    | Format number       | `POST /v1/format/number` |

  ---

  ## 🔐 Credentials

  To connect with Smstools, you’ll need a **Client ID** and **Client Secret**.  
  These are available in your Smstools account dashboard.

  | Field | Description |
  |--------|-------------|
  | **Base URL** | Default: `https://api.smstools.com` (change only for private gateways) |
  | **Client ID** | Your API client ID from Smstools |
  | **Client Secret** | Your API client secret from Smstools |

  When you test credentials, the node calls `GET /v1/auth` and expects a valid username response on success.

  ---

  ## 🧪 Example Usage

  ### Send an SMS

  1. Add the **Smstools** node.  
  2. Choose **Resource:** `Message`, **Operation:** `Send message`.  
  3. Enter:
     - **Sender:** `MyCompany`
     - **To:** `+3247XXXXXXX`
     - **Message:** `Your package has been shipped!`
  4. *(Optional)* Enable **Test Mode** to simulate sending.

  The node will return the API response containing the message ID and status.

  ---

  ### Send a Voice Message

  1. Add the **Smstools** node.  
  2. Choose **Resource:** `Message`, **Operation:** `Send voice message`.  
  3. Enter:
     - **To:** `+3247XXXXXXX`
     - **Message:** `This is a test voice message from Smstools.`

  The API will convert your text to speech and call the recipient.

  ---

  ## 🧾 Compatibility

  - **Minimum n8n version:** `1.0.0+`
  - **Tested with:** `n8n 1.68+`
  - **Dependencies:** none external — uses built-in `httpRequest` helper.
  - **Supported Node.js (for n8n):** `>= 20.19 <= 24.x`

  ---

  ## 📘 Resources

  - [Smstools API documentation](https://www.smstools.com/en/sms-gateway-api)
  - [Smstools Dashboard](https://app.smstools.com/)
  - [n8n Community Nodes documentation](https://docs.n8n.io/integrations/#community-nodes)

  ---

  ## 🧱 Version History

  | Version | Date     | Notes |
  |----------|----------|-------|
  | **0.1.0** | 2025-10 | Initial community release with v1 API support for message, voice, account, and tools resources. |
  | **0.1.1** | 2025-10 | Update readme.md |
  | **0.1.2** | 2026-02 | Fix n8n review issues (peer deps, auth, pairedItem, continueOnFail, icons) |

  ---

  **Author:** Smstools ([info@smstools.be](mailto:info@smstools.be))  
  **License:** MIT  
  **Repository:** [GitHub](https://github.com/Smstools-api/n8n-nodes-smstools)  
  **npm:** [n8n-nodes-smstools](https://www.npmjs.com/package/n8n-nodes-smstools)

ai_documentation_summary:
  {"purpose":"A community n8n node that integrates with the Smstools API to send SMS and voice messages, manage account details, and format phone numbers.","capabilities":["Send SMS messages","Send voice messages (text-to-speech)","Check message delivery status","View account balance","Retrieve available sender IDs","Format phone numbers"],"authentication":"API Key (Client ID and Client Secret)","commonUseCases":["Automated customer notifications via SMS","Voice call campaigns for alerts or reminders","Managing SMS gateway account balances","Validating phone number formats before sending"],"limitations":["Requires a valid Smstools account with Client ID and Client Secret","Node requires n8n version 1.0.0+ (tested with 1.68+)","Compatible only with Node.js versions >= 20.19 and <= 24.x"],"relatedNodes":["httpRequest","n8n-nodes-base.code"]}


node_type: n8n-nodes-manychat.manyChat
package_name: n8n-nodes-manychat
display_name: ManyChat
description: Consume issues from the ManyChat API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: xal95
author_github_url: https://github.com/xAL95/
npm_package_name: n8n-nodes-manychat
npm_version: 0.2.1
community_fetched_at: 2026-04-16T09:43:35.882Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "page",
      "options": [
        {
          "name": "Page",
          "value": "page"
        },
        {
          "name": "Subscriber",
          "value": "subscriber"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInfo",
      "options": [
        {
          "name": "Create Bot Field",
          "value": "createBotField",
          "action": "Create bot field",
          "routing": {
            "request": {
              "url": "/fb/page/createBotField",
              "method": "POST"
            }
          }
        },
        {
          "name": "Create Custom Field",
          "value": "createCustomField",
          "action": "Create custom field",
          "routing": {
            "request": {
              "url": "/fb/page/createCustomField",
              "method": "POST"
            }
          }
        },
        {
          "name": "Create Tag",
          "value": "createTag",
          "action": "Create tag",
          "routing": {
            "request": {
              "url": "/fb/page/createTag",
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Bot Fields",
          "value": "getBotFields",
          "action": "Get bot fields",
          "routing": {
            "request": {
              "url": "/fb/page/getBotFields",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Custom Fields",
          "value": "getCustomFields",
          "action": "Get custom fields",
          "routing": {
            "request": {
              "url": "/fb/page/getCustomFields",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Flows",
          "value": "getFlows",
          "action": "Get flows",
          "routing": {
            "request": {
              "url": "/fb/page/getFlows",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Growth Tools",
          "value": "getGrowthTools",
          "action": "Get growth tools",
          "routing": {
            "request": {
              "url": "/fb/page/getGrowthTools",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Info",
          "value": "getInfo",
          "action": "Get info",
          "routing": {
            "request": {
              "url": "/fb/page/getInfo",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Otn Topics",
          "value": "getOtnTopics",
          "action": "Get otn topics",
          "routing": {
            "request": {
              "url": "/fb/page/getOtnTopics",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Tags",
          "value": "getTags",
          "action": "Get tags",
          "routing": {
            "request": {
              "url": "/fb/page/getTags",
              "method": "GET"
            }
          }
        },
        {
          "name": "Remove Tag",
          "value": "removeTag",
          "action": "Remove tag",
          "routing": {
            "request": {
              "url": "={{ $parameter.tagIdentifierType === 'name'\n\t\t\t\t\t\t\t\t\t? '/fb/page/removeTagByName'\n\t\t\t\t\t\t\t\t\t: '/fb/page/removeTag' }}",
              "method": "POST"
            }
          },
          "description": "Removes specified tag from the page and the page's subscribers"
        },
        {
          "name": "Set Bot Field",
          "value": "setBotField",
          "action": "Set bot field",
          "routing": {
            "request": {
              "url": "={{ $parameter.identifierType === 'name'\n\t\t\t\t\t\t\t\t\t? '/fb/page/setBotFieldByName'\n\t\t\t\t\t\t\t\t\t: '/fb/page/setBotField' }}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Set Bot Fields",
          "value": "setBotFields",
          "action": "Set bot fields",
          "routing": {
            "request": {
              "url": "/fb/page/setBotFields",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "page"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInfo",
      "options": [
        {
          "name": "Add Tag To Subscriber",
          "value": "addTag",
          "action": "Add tag to subscriber",
          "routing": {
            "request": {
              "url": "={{ $parameter.tagIdentifierType === 'name'\n\t\t\t\t\t\t\t\t\t? '/fb/subscriber/addTagByName'\n\t\t\t\t\t\t\t\t\t: '/fb/subscriber/addTag' }}",
              "method": "POST"
            }
          },
          "description": "Add a tag to a subscriber (by tag ID or tag name)"
        },
        {
          "name": "Create A Unified Subscriber",
          "value": "createSubscriber",
          "action": "Create a unified subscriber",
          "routing": {
            "request": {
              "url": "/fb/subscriber/createSubscriber",
              "method": "POST"
            }
          }
        },
        {
          "name": "Find By Custom Field",
          "value": "findByCustomField",
          "action": "Find by custom field",
          "routing": {
            "request": {
              "url": "/fb/subscriber/findByCustomField",
              "method": "GET"
            }
          }
        },
        {
          "name": "Find By System Field",
          "value": "findBySystemField",
          "action": "Find by system field",
          "routing": {
            "request": {
              "url": "/fb/subscriber/findBySystemField",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Info",
          "value": "getInfo",
          "action": "Get info",
          "routing": {
            "request": {
              "url": "/fb/subscriber/getInfo",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Info By User Ref",
          "value": "getInfoByUserRef",
          "action": "Get info by user ref",
          "routing": {
            "request": {
              "url": "/fb/subscriber/getInfoByUserRef",
              "method": "GET"
            }
          }
        },
        {
          "name": "Remove Tag From Subscriber",
          "value": "removeTag",
          "action": "Remove tag from subscriber",
          "routing": {
            "request": {
              "url": "={{ $parameter.tagIdentifierType === 'name'\n\t\t\t\t\t\t\t\t\t? '/fb/subscriber/removeTagByName'\n\t\t\t\t\t\t\t\t\t: '/fb/subscriber/removeTag' }}",
              "method": "POST"
            }
          },
          "description": "Remove a tag from a subscriber (by tag ID or tag name)"
        },
        {
          "name": "Search Subscribers By Full Name",
          "value": "findByName",
          "action": "Search subscribers by full name",
          "routing": {
            "request": {
              "url": "/fb/subscriber/findByName",
              "method": "GET"
            }
          }
        },
        {
          "name": "Set Custom Field",
          "value": "setCustomField",
          "action": "Set custom field",
          "routing": {
            "request": {
              "url": "={{ $parameter.identifierType === 'name'\n\t\t\t\t\t\t\t\t\t? '/fb/subscriber/setCustomFieldByName'\n\t\t\t\t\t\t\t\t\t: '/fb/subscriber/setCustomField' }}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Set Custom Fields",
          "value": "setCustomFields",
          "action": "Set custom fields",
          "routing": {
            "request": {
              "url": "/fb/subscriber/setCustomFields",
              "method": "POST"
            }
          }
        },
        {
          "name": "Update Subscriber",
          "value": "updateSubscriber",
          "action": "Update subscriber",
          "routing": {
            "request": {
              "url": "/fb/subscriber/updateSubscriber",
              "method": "POST"
            }
          }
        },
        {
          "name": "Verify By Signed Request",
          "value": "verifyBySignedRequest",
          "action": "Verify by signed request",
          "routing": {
            "request": {
              "url": "/fb/subscriber/verifyBySignedRequest",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "subscriber"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Bot Field",
      "value": "createBotField",
      "action": "Create bot field",
      "routing": {
        "request": {
          "url": "/fb/page/createBotField",
          "method": "POST"
        }
      },
      "resource": "page"
    },
    {
      "name": "Create Custom Field",
      "value": "createCustomField",
      "action": "Create custom field",
      "routing": {
        "request": {
          "url": "/fb/page/createCustomField",
          "method": "POST"
        }
      },
      "resource": "page"
    },
    {
      "name": "Create Tag",
      "value": "createTag",
      "action": "Create tag",
      "routing": {
        "request": {
          "url": "/fb/page/createTag",
          "method": "POST"
        }
      },
      "resource": "page"
    },
    {
      "name": "Get Bot Fields",
      "value": "getBotFields",
      "action": "Get bot fields",
      "routing": {
        "request": {
          "url": "/fb/page/getBotFields",
          "method": "GET"
        }
      },
      "resource": "page"
    },
    {
      "name": "Get Custom Fields",
      "value": "getCustomFields",
      "action": "Get custom fields",
      "routing": {
        "request": {
          "url": "/fb/page/getCustomFields",
          "method": "GET"
        }
      },
      "resource": "page"
    },
    {
      "name": "Get Flows",
      "value": "getFlows",
      "action": "Get flows",
      "routing": {
        "request": {
          "url": "/fb/page/getFlows",
          "method": "GET"
        }
      },
      "resource": "page"
    },
    {
      "name": "Get Growth Tools",
      "value": "getGrowthTools",
      "action": "Get growth tools",
      "routing": {
        "request": {
          "url": "/fb/page/getGrowthTools",
          "method": "GET"
        }
      },
      "resource": "page"
    },
    {
      "name": "Get Info",
      "value": "getInfo",
      "action": "Get info",
      "routing": {
        "request": {
          "url": "/fb/page/getInfo",
          "method": "GET"
        }
      },
      "resource": "page"
    },
    {
      "name": "Get Otn Topics",
      "value": "getOtnTopics",
      "action": "Get otn topics",
      "routing": {
        "request": {
          "url": "/fb/page/getOtnTopics",
          "method": "GET"
        }
      },
      "resource": "page"
    },
    {
      "name": "Get Tags",
      "value": "getTags",
      "action": "Get tags",
      "routing": {
        "request": {
          "url": "/fb/page/getTags",
          "method": "GET"
        }
      },
      "resource": "page"
    },
    {
      "name": "Remove Tag",
      "value": "removeTag",
      "action": "Remove tag",
      "routing": {
        "request": {
          "url": "={{ $parameter.tagIdentifierType === 'name'\n\t\t\t\t\t\t\t\t\t? '/fb/page/removeTagByName'\n\t\t\t\t\t\t\t\t\t: '/fb/page/removeTag' }}",
          "method": "POST"
        }
      },
      "description": "Removes specified tag from the page and the page's subscribers",
      "resource": "page"
    },
    {
      "name": "Set Bot Field",
      "value": "setBotField",
      "action": "Set bot field",
      "routing": {
        "request": {
          "url": "={{ $parameter.identifierType === 'name'\n\t\t\t\t\t\t\t\t\t? '/fb/page/setBotFieldByName'\n\t\t\t\t\t\t\t\t\t: '/fb/page/setBotField' }}",
          "method": "POST"
        }
      },
      "resource": "page"
    },
    {
      "name": "Set Bot Fields",
      "value": "setBotFields",
      "action": "Set bot fields",
      "routing": {
        "request": {
          "url": "/fb/page/setBotFields",
          "method": "POST"
        }
      },
      "resource": "page"
    },
    {
      "name": "Add Tag To Subscriber",
      "value": "addTag",
      "action": "Add tag to subscriber",
      "routing": {
        "request": {
          "url": "={{ $parameter.tagIdentifierType === 'name'\n\t\t\t\t\t\t\t\t\t? '/fb/subscriber/addTagByName'\n\t\t\t\t\t\t\t\t\t: '/fb/subscriber/addTag' }}",
          "method": "POST"
        }
      },
      "description": "Add a tag to a subscriber (by tag ID or tag name)",
      "resource": "subscriber"
    },
    {
      "name": "Create A Unified Subscriber",
      "value": "createSubscriber",
      "action": "Create a unified subscriber",
      "routing": {
        "request": {
          "url": "/fb/subscriber/createSubscriber",
          "method": "POST"
        }
      },
      "resource": "subscriber"
    },
    {
      "name": "Find By Custom Field",
      "value": "findByCustomField",
      "action": "Find by custom field",
      "routing": {
        "request": {
          "url": "/fb/subscriber/findByCustomField",
          "method": "GET"
        }
      },
      "resource": "subscriber"
    },
    {
      "name": "Find By System Field",
      "value": "findBySystemField",
      "action": "Find by system field",
      "routing": {
        "request": {
          "url": "/fb/subscriber/findBySystemField",
          "method": "GET"
        }
      },
      "resource": "subscriber"
    },
    {
      "name": "Get Info",
      "value": "getInfo",
      "action": "Get info",
      "routing": {
        "request": {
          "url": "/fb/subscriber/getInfo",
          "method": "GET"
        }
      },
      "resource": "subscriber"
    },
    {
      "name": "Get Info By User Ref",
      "value": "getInfoByUserRef",
      "action": "Get info by user ref",
      "routing": {
        "request": {
          "url": "/fb/subscriber/getInfoByUserRef",
          "method": "GET"
        }
      },
      "resource": "subscriber"
    },
    {
      "name": "Remove Tag From Subscriber",
      "value": "removeTag",
      "action": "Remove tag from subscriber",
      "routing": {
        "request": {
          "url": "={{ $parameter.tagIdentifierType === 'name'\n\t\t\t\t\t\t\t\t\t? '/fb/subscriber/removeTagByName'\n\t\t\t\t\t\t\t\t\t: '/fb/subscriber/removeTag' }}",
          "method": "POST"
        }
      },
      "description": "Remove a tag from a subscriber (by tag ID or tag name)",
      "resource": "subscriber"
    },
    {
      "name": "Search Subscribers By Full Name",
      "value": "findByName",
      "action": "Search subscribers by full name",
      "routing": {
        "request": {
          "url": "/fb/subscriber/findByName",
          "method": "GET"
        }
      },
      "resource": "subscriber"
    },
    {
      "name": "Set Custom Field",
      "value": "setCustomField",
      "action": "Set custom field",
      "routing": {
        "request": {
          "url": "={{ $parameter.identifierType === 'name'\n\t\t\t\t\t\t\t\t\t? '/fb/subscriber/setCustomFieldByName'\n\t\t\t\t\t\t\t\t\t: '/fb/subscriber/setCustomField' }}",
          "method": "POST"
        }
      },
      "resource": "subscriber"
    },
    {
      "name": "Set Custom Fields",
      "value": "setCustomFields",
      "action": "Set custom fields",
      "routing": {
        "request": {
          "url": "/fb/subscriber/setCustomFields",
          "method": "POST"
        }
      },
      "resource": "subscriber"
    },
    {
      "name": "Update Subscriber",
      "value": "updateSubscriber",
      "action": "Update subscriber",
      "routing": {
        "request": {
          "url": "/fb/subscriber/updateSubscriber",
          "method": "POST"
        }
      },
      "resource": "subscriber"
    },
    {
      "name": "Verify By Signed Request",
      "value": "verifyBySignedRequest",
      "action": "Verify by signed request",
      "routing": {
        "request": {
          "url": "/fb/subscriber/verifyBySignedRequest",
          "method": "POST"
        }
      },
      "resource": "subscriber"
    }
  ]

npm_readme:
  # n8n-nodes-manychat

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

  **ManyChat** is a messaging automation platform that allows you to build chatbots and manage subscribers for channels such as Facebook Messenger, Instagram, and WhatsApp.

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

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

  ---

  ## Installation

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

  After installation, the node will be available in the n8n editor under **Community Nodes**.

  ---

  ## Operations

  Currently, the node supports the following ManyChat API resources and operations:

  ### Page

  **Page Information**
  - Get Page Info

  **Tags**
  - Create Tag
  - Get Tags
  - Remove Tag (by ID)
  - Remove Tag (by Name)

  **Custom Fields**
  - Create Custom Field
  - Get Custom Fields

  **Bot Fields**
  - Get Bot Fields
  - Create Bot Field
  - Set Bot Field
  - Set Bot Field (by Name)
  - Set Multiple Bot Fields

  **Flows & Growth Tools**
  - Get Flows
  - Get Growth Tools

  **One-Time Notifications**
  - Get One-Time Notification Topics

  ---

  ### Subscriber

  **Subscriber Lookup**
  - Get Subscriber Info
  - Get Subscriber Info by User Reference
  - Find Subscriber by Name
  - Find Subscriber by Custom Field
  - Find Subscriber by System Field

  **Tags**
  - Add Tag to Subscriber
  - Add Tag to Subscriber (by Name)
  - Remove Tag from Subscriber
  - Remove Tag from Subscriber (by Name)

  **Subscriber Management**
  - Create Subscriber (Unified)
  - Update Subscriber
  - Verify Subscriber by Signed Request

  ---

  > Operation names in n8n are simplified for clarity and may differ slightly from the underlying ManyChat API endpoint names.

  ---

  ## Credentials

  This node requires authentication with the ManyChat API.

  ### Prerequisites
  - A ManyChat account
  - At least one connected page or channel (e.g. Facebook Messenger, Instagram)
  - A ManyChat API access token

  ### Authentication method
  - **API Token (Bearer Token)**

  ### Setup
  1. Log in to your ManyChat account.
  2. Navigate to **Settings → API**.
  3. Generate or copy your API token.
  4. In n8n, create new credentials for **ManyChat API**.
  5. Paste the API token into the credentials field and save.

  The node will use this token to authenticate all API requests.

  ---

  ## Compatibility

  - **Minimum n8n version:** 2.0.0
  - **Tested against:** n8n 2.x

  No known incompatibilities at this time.

  ---

  ## Usage

  This node can be used to automate and synchronize ManyChat data inside n8n workflows, for example:

  - Syncing ManyChat subscribers with a CRM or database
  - Managing subscriber tags and custom fields based on external events
  - Fetching page, flow, and bot field metadata for automation logic
  - Creating and updating subscribers programmatically

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

  ---

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [ManyChat API Swagger documentation](https://api.manychat.com/swagger)

  ---

  ## Version history

  ### 0.1.0
  - Initial release
  - Added **Page** and **Subscriber** resources
  - Support for tags, custom fields, bot fields, and subscriber management
  - Tested with n8n v2

  ### 0.2.0
  - Refactor: merge SetBotField variants and fix page actions
  - Merged SetBotField and SetBotFieldByName
  - Fixed "Remove Tag" page action
  - Fixed "Set Bot Field" page action
  - Added SetCustomField and SetCustomFields for Subscriber

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of ManyChat messaging platform operations by allowing users to interact with the ManyChat API for managing pages, subscribers, tags, and bot fields within n8n workflows.","capabilities":["Get Page Info","Manage Tags (Create, Get, Remove by ID/Name)","Manage Custom Fields (Create, Get)","Manage Bot Fields (Get, Create, Set, Set by Name, Set Multiple)","Get Flows and Growth Tools","Get One-Time Notification Topics","Get Subscriber Info (by various methods including name, custom fields, system fields)","Add/Remove Tags from Subscribers","Create and Update Subscribers","Verify Subscribers by Signed Request"],"authentication":"API Token (Bearer Token)","commonUseCases":["Syncing ManyChat subscribers with external CRMs or databases","Automating subscriber tagging and custom field management based on external events","Fetching page, flow, and bot field metadata for workflow logic","Programmatic creation and updating of subscribers"],"limitations":["Community node (not official n8n node)","Requires a ManyChat account with at least one connected page or channel","Operation names in n8n are simplified and may differ slightly from underlying ManyChat API endpoint names"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.set"]}


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

updated_at: 2026-04-16 09:43:35
author_name: rvreftab
author_github_url: https://github.com/Reftab/
npm_package_name: n8n-nodes-reftab
npm_version: 1.0.7
community_fetched_at: 2026-04-16T09:43:35.883Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "asset",
      "options": [
        {
          "name": "Asset",
          "value": "asset"
        },
        {
          "name": "Asset Maintenance",
          "value": "assetMaintenance"
        },
        {
          "name": "Custom",
          "value": "custom"
        },
        {
          "name": "Loan",
          "value": "loan"
        },
        {
          "name": "Reservation",
          "value": "reservation"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an asset",
          "description": "Get an asset by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many assets",
          "description": "Get multiple assets"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create an asset",
          "description": "Create a new asset"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an asset",
          "description": "Update an asset"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an asset",
          "description": "Delete an asset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "asset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a maintenance record",
          "description": "Get a maintenance record by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many maintenance records",
          "description": "Get multiple maintenance records"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a maintenance record",
          "description": "Create a new maintenance record for an asset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assetMaintenance"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a loan",
          "description": "Get a loan by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many loans",
          "description": "Get multiple loans"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a loan",
          "description": "Create a new loan (check out)"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a loan",
          "description": "Update a loan"
        },
        {
          "name": "Check In",
          "value": "checkIn",
          "action": "Check in a loan",
          "description": "Check in / return a loan"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "loan"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a reservation",
          "description": "Get a reservation by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many reservations",
          "description": "Get multiple reservations"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a reservation",
          "description": "Create a new reservation"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a reservation",
          "description": "Update a reservation"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a reservation",
          "description": "Delete a reservation"
        },
        {
          "name": "Fulfill",
          "value": "fulfill",
          "action": "Fulfill a reservation",
          "description": "Fulfill a reservation (convert to loan)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reservation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "apiCall",
      "options": [
        {
          "name": "API Call",
          "value": "apiCall",
          "action": "Make a custom API call",
          "description": "Make a custom API call"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "custom"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get an asset",
      "description": "Get an asset by ID",
      "resource": "asset"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many assets",
      "description": "Get multiple assets",
      "resource": "asset"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an asset",
      "description": "Create a new asset",
      "resource": "asset"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an asset",
      "description": "Update an asset",
      "resource": "asset"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an asset",
      "description": "Delete an asset",
      "resource": "asset"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a maintenance record",
      "description": "Get a maintenance record by ID",
      "resource": "assetMaintenance"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many maintenance records",
      "description": "Get multiple maintenance records",
      "resource": "assetMaintenance"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a maintenance record",
      "description": "Create a new maintenance record for an asset",
      "resource": "assetMaintenance"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a loan",
      "description": "Get a loan by ID",
      "resource": "loan"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many loans",
      "description": "Get multiple loans",
      "resource": "loan"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a loan",
      "description": "Create a new loan (check out)",
      "resource": "loan"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a loan",
      "description": "Update a loan",
      "resource": "loan"
    },
    {
      "name": "Check In",
      "value": "checkIn",
      "action": "Check in a loan",
      "description": "Check in / return a loan",
      "resource": "loan"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a reservation",
      "description": "Get a reservation by ID",
      "resource": "reservation"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many reservations",
      "description": "Get multiple reservations",
      "resource": "reservation"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a reservation",
      "description": "Create a new reservation",
      "resource": "reservation"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a reservation",
      "description": "Update a reservation",
      "resource": "reservation"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a reservation",
      "description": "Delete a reservation",
      "resource": "reservation"
    },
    {
      "name": "Fulfill",
      "value": "fulfill",
      "action": "Fulfill a reservation",
      "description": "Fulfill a reservation (convert to loan)",
      "resource": "reservation"
    },
    {
      "name": "API Call",
      "value": "apiCall",
      "action": "Make a custom API call",
      "description": "Make a custom API call",
      "resource": "custom"
    }
  ]

npm_readme:
  # n8n-nodes-reftab

  This is an n8n community node for [Reftab](https://reftab.com) - Asset Management Software.

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

  ## Installation

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

  ### npm Installation

  ```bash
  npm install n8n-nodes-reftab
  ```

  ### Manual Installation

  1. Navigate to your n8n nodes directory:
     ```bash
     cd ~/.n8n/nodes
     ```

  2. Install the package:
     ```bash
     npm install n8n-nodes-reftab
     ```

  3. Restart n8n

  ## Credentials

  To use this node, you need a Reftab API key pair:

  1. Log into your Reftab account
  2. Go to **Settings** > **API Keys**
  3. Click **Create API Key**
  4. Copy both the **Public Key** and **Secret Key**

  In n8n, create new Reftab API credentials and enter both keys.

  ## Resources

  This node supports the following Reftab resources:

  ### Asset
  - **Get** - Get a single asset by ID
  - **Get Many** - Get multiple assets with filtering options
  - **Create** - Create a new asset
  - **Update** - Update an existing asset
  - **Delete** - Delete an asset

  ### Asset Maintenance
  - **Get** - Get a maintenance record by ID
  - **Get Many** - Get multiple maintenance records with filtering
  - **Create** - Create a new maintenance record for an asset

  ### Loan
  - **Get** - Get a loan by ID
  - **Get Many** - Get multiple loans with filtering
  - **Create** - Create a new loan (check out items)
  - **Update** - Update a loan
  - **Check In** - Return loaned items

  ### Reservation
  - **Get** - Get a reservation by ID
  - **Get Many** - Get multiple reservations with filtering
  - **Create** - Create a new reservation
  - **Update** - Update a reservation
  - **Delete** - Delete a reservation
  - **Fulfill** - Convert a reservation to a loan

  ### Custom API Call
  - Make custom API calls to any Reftab endpoint

  ## Features

  - **HMAC Authentication** - Proper signature generation for Reftab API
  - **Email Lookups** - Enter email addresses for loanees/users and the node automatically looks up the ID
  - **Dynamic Dropdowns** - Locations, categories, and statuses are loaded dynamically
  - **Remote Signature** - Option to bypass signature requirements for automated checkouts

  ## Compatibility

  - n8n version 1.0.0 or later
  - Node.js 18.x or later

  ## License

  [MIT](LICENSE.md)

  ## Links

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the Reftab Asset Management Software API, allowing management of assets, loans, reservations, and maintenance records.","capabilities":["Retrieve single or multiple assets with filtering","Create, update, and delete assets","Manage asset maintenance records","Handle loan operations including creation, updates, and check-ins","Manage reservations including creation, updates, deletion, and fulfillment","Perform custom API calls to any Reftab endpoint","Automatically look up user IDs from email addresses","Load dynamic dropdowns for locations, categories, and statuses","Generate HMAC signatures for API authentication","Bypass signature requirements for automated checkouts"],"authentication":"API key required (Public Key and Secret Key)","commonUseCases":["Automating asset inventory management","Processing loan checkouts and returns","Managing reservation fulfillment workflows","Tracking asset maintenance schedules","Integrating Reftab data into broader business automation processes"],"limitations":["Community node (not official n8n node)","Requires separate Reftab account and API keys","Requires n8n version 1.0.0 or later","Requires Node.js 18.x or later"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: @voice-ai-labs/n8n-nodes-voice-ai.voiceAi
package_name: @voice-ai-labs/n8n-nodes-voice-ai
display_name: Voice AI
description: Interact with Voice.ai text-to-speech and voice management API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: klotayvai
author_github_url: https://github.com/voice-ai/n8n-nodes-voice-ai.git
npm_package_name: @voice-ai-labs/n8n-nodes-voice-ai
npm_version: 1.0.4
community_fetched_at: 2026-04-16T09:43:35.885Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "speech",
      "options": [
        {
          "name": "Speech",
          "value": "speech"
        },
        {
          "name": "Voice",
          "value": "voice"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "textToSpeech",
      "options": [
        {
          "name": "Text to Speech",
          "value": "textToSpeech",
          "action": "Convert text to speech",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/speech",
              "method": "POST",
              "encoding": "arraybuffer",
              "returnFullResponse": true
            }
          },
          "description": "Converts text into speech and returns audio"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "speech"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create (Clone)",
          "value": "create",
          "action": "Create a voice",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/clone-voice",
              "method": "POST",
              "headers": {
                "Content-Type": "multipart/form-data"
              }
            }
          },
          "description": "Create a new voice by cloning from an audio file"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a voice",
          "routing": {
            "request": {
              "url": "={{\"/voice/\" + $parameter[\"voiceId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a voice"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a voice",
          "routing": {
            "request": {
              "url": "={{\"/voice/\" + $parameter[\"voiceId\"]}}",
              "method": "GET"
            }
          },
          "description": "Get a voice by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many voices",
          "routing": {
            "request": {
              "url": "/voices",
              "method": "GET"
            }
          },
          "description": "Get many voices"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a voice",
          "routing": {
            "request": {
              "url": "={{\"/voice/\" + $parameter[\"voiceId\"]}}",
              "method": "PUT"
            }
          },
          "description": "Update a voice metadata"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voice"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Text to Speech",
      "value": "textToSpeech",
      "action": "Convert text to speech",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/speech",
          "method": "POST",
          "encoding": "arraybuffer",
          "returnFullResponse": true
        }
      },
      "description": "Converts text into speech and returns audio",
      "resource": "speech"
    },
    {
      "name": "Create (Clone)",
      "value": "create",
      "action": "Create a voice",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/clone-voice",
          "method": "POST",
          "headers": {
            "Content-Type": "multipart/form-data"
          }
        }
      },
      "description": "Create a new voice by cloning from an audio file",
      "resource": "voice"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a voice",
      "routing": {
        "request": {
          "url": "={{\"/voice/\" + $parameter[\"voiceId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a voice",
      "resource": "voice"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a voice",
      "routing": {
        "request": {
          "url": "={{\"/voice/\" + $parameter[\"voiceId\"]}}",
          "method": "GET"
        }
      },
      "description": "Get a voice by ID",
      "resource": "voice"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many voices",
      "routing": {
        "request": {
          "url": "/voices",
          "method": "GET"
        }
      },
      "description": "Get many voices",
      "resource": "voice"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a voice",
      "routing": {
        "request": {
          "url": "={{\"/voice/\" + $parameter[\"voiceId\"]}}",
          "method": "PUT"
        }
      },
      "description": "Update a voice metadata",
      "resource": "voice"
    }
  ]

npm_readme:
  # @voice-ai-labs/n8n-nodes-voice-ai

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

  Voice.ai is a text-to-speech and voice cloning API that enables you to generate realistic speech from text and create custom voice models.

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

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

  ## Installation

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

  Alternatively, you can install it via the n8n Community Nodes interface or using npm:

  ```bash
  npm install @voice-ai-labs/n8n-nodes-voice-ai
  ```

  ## Operations

  ### Speech
  - **Text to Speech**: Convert text into realistic speech audio

  ### Voice
  - **Get Many**: Retrieve a list of available voices
  - **Get**: Get details of a specific voice by ID
  - **Create (Clone)**: Clone a voice from an audio file
  - **Update**: Update voice metadata
  - **Delete**: Delete a voice

  ## Credentials

  To use this node, you need a Voice.ai API key.

  ### How to get your API key:

  1. Sign up for a Voice.ai account at [https://voice.ai](https://voice.ai)
  2. Navigate to your developer dashboard
  3. Generate an API key
  4. Copy the API key

  ### Setting up credentials in n8n:

  1. In n8n, go to **Credentials** > **New**
  2. Search for "Voice AI API"
  3. Enter your API key in the "API Key" field
  4. Click **Save**

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Tested with**: n8n 2.4.6

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Voice.ai API Documentation](https://voice.ai/docs/api-reference)
  * [Voice.ai Homepage](https://voice.ai)

  ## Version history

  ### 1.0.0
  - Initial release
  - Text-to-speech conversion with customizable parameters
  - Voice management operations (list, get, create, update, delete)
  - Voice cloning from audio files

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Voice.ai API to perform text-to-speech conversion and manage voice models, including cloning and updating.","capabilities":["Text to Speech conversion","Retrieve list of available voices","Get details of a specific voice by ID","Clone a voice from an audio file","Update voice metadata","Delete a voice"],"authentication":"API key required","commonUseCases":["Automated voiceovers for video content","Voice cloning for personalized audio responses","Text-to-speech automation in marketing workflows"],"limitations":["Requires a separate Voice.ai account and API key","Voice cloning requires an audio file input"],"relatedNodes":["n8n HTTP Request","n8n File"]}


node_type: n8n-nodes-trustmarkt.trustmarktTrigger
package_name: n8n-nodes-trustmarkt
display_name: Trustmarkt Trigger
description: Starts the workflow when Trustmarkt events occur (Webhooks)
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: trustmarktadmin
author_github_url: https://github.com/Trustmarkt-GmbH/
npm_package_name: n8n-nodes-trustmarkt
npm_version: 0.1.5
community_fetched_at: 2026-04-16T09:43:35.886Z
npm_readme:
  # n8n-nodes-trustmarkt

  This is an n8n community node. It lets you use the [Trustmarkt](https://trustmarkt.de) API in your n8n workflows.

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

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

  ## Installation

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

  ## Operations

  ### Trustmarkt Node

  - **Article**
      - Get an article
      - Get many articles
  - **Case Study**
      - Get a case study
      - Get many case studies
  - **Inquiry**
      - Get an inquiry
      - Get many inquiries
  - **Me**
      - Get authenticated user info
  - **Review**
      - Get a review
      - Get many reviews
  - **User**
      - Get a user
      - Get many users

  ### Trustmarkt Trigger Node

  Starts the workflow when Trustmarkt events occur via webhooks. Events are loaded dynamically from the API.

  ## Credentials

  You need a Trustmarkt API key to authenticate.

  1. Log in to your [Trustmarkt](https://trustmarkt.de) account.
  2. Navigate to your API settings and generate an API key.
  3. In n8n, create new **Trustmarkt API** credentials and paste your API key.

  The node supports Production, Testing, and Custom API environments.

  ## Compatibility

  Compatible with n8n version 1.60.0 or later.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Trustmarkt API documentation](https://www.trustmarkt.de/r/api)


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-04-16 09:43:35
author_name: layerre
author_github_url: https://github.com/layerre/
npm_package_name: n8n-nodes-layerre
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:35.886Z
ai_summary_generated_at: 2026-03-25 22:51:43
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",
      "resource": "template"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a template",
      "routing": {
        "request": {
          "url": "=/template/{{$parameter.templateId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a template",
      "resource": "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",
      "resource": "template"
    },
    {
      "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",
      "resource": "template"
    },
    {
      "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",
      "resource": "variant"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a variant",
      "routing": {
        "request": {
          "url": "=/template/{{$parameter.templateId}}/variant/{{$parameter.variantId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a variant",
      "resource": "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",
      "resource": "variant"
    },
    {
      "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",
      "resource": "variant"
    }
  ]

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":"This n8n node automates the creation of Canva design templates and their variants using the Layerre platform, enabling bulk image generation with customizable text, images, and layout properties.","capabilities":["Create templates from Canva design URLs","Retrieve templates by ID or list all user templates","Delete templates","Create variants with layer overrides (text, images, colors, positions)","Retrieve variants by ID or list all variants for a template","Delete variants","Override text properties (content, color, font, size, weight, italics, alignment, spacing)","Override image properties (URL, opacity, flip)","Override all layer properties (position, size, rotation, color)","Support for bulk image generation via spreadsheet data"],"authentication":"API key required (Layerre API key starting with 'lyr_')","commonUseCases":["Bulk personalized image generation from Canva templates","A/B testing with design variants","Automated marketing asset creation with dynamic content","Template management and versioning"],"limitations":["Requires a paid Layerre account with API access","Canva design URL must be publicly accessible or shareable","Limited to Layerre-supported Canva design features"],"relatedNodes":["n8n-nodes-canva.canva","n8n-nodes-spreadsheet.spreadsheet","n8n-nodes-download-image.download-image","n8n-nodes-loop-over-items.loop-over-items"]}


node_type: n8n-nodes-syncmate.whatsAuto
package_name: n8n-nodes-syncmate
display_name: WhatsApp Notifications by SyncMate
description: Send WhatsApp messages or media using SyncMate Assistro API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: heratassistro
author_github_url: https://github.com/heratshah-collab/
npm_package_name: n8n-nodes-syncmate
npm_version: 1.1.0
community_fetched_at: 2026-04-16T09:43:35.889Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "normal",
      "options": [
        {
          "name": "Send Notification",
          "value": "normal",
          "action": "Send a notification",
          "description": "Send a WhatsApp notification to a phone number"
        },
        {
          "name": "Send Group Message",
          "value": "group",
          "action": "Send a group message",
          "description": "Send a message to a WhatsApp group"
        },
        {
          "name": "Send Newsletter",
          "value": "newsletter",
          "action": "Send a newsletter",
          "description": "Send a message to a WhatsApp channel/newsletter"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Notification",
      "value": "normal",
      "action": "Send a notification",
      "description": "Send a WhatsApp notification to a phone number",
      "resource": "message"
    },
    {
      "name": "Send Group Message",
      "value": "group",
      "action": "Send a group message",
      "description": "Send a message to a WhatsApp group",
      "resource": "message"
    },
    {
      "name": "Send Newsletter",
      "value": "newsletter",
      "action": "Send a newsletter",
      "description": "Send a message to a WhatsApp channel/newsletter",
      "resource": "message"
    }
  ]

npm_readme:
  # n8n-nodes-syncmate

  Send WhatsApp messages or media using **SyncMate Assistro API** in n8n workflows.

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

  ---

  ## Features

  - Send text messages via WhatsApp
  - Send images, videos, documents, and other media
  - OAuth2 authentication with Assistro API
  - Designed for **n8n workflows**
  - Easy to integrate into existing automation

  ---

  ## Installation

  ### Install via npm

  ```bash
  npm install n8n-nodes-syncmate

ai_documentation_summary:
  {"purpose":"Send WhatsApp messages and media files using the SyncMate Assistro API within n8n workflows.","capabilities":["Send text messages via WhatsApp","Send images via WhatsApp","Send videos via WhatsApp","Send documents via WhatsApp","Send other media types via WhatsApp"],"authentication":"OAuth2 with Assistro API","commonUseCases":["Automated customer notifications","Order status updates","Appointment reminders","Media sharing in business communication"],"limitations":[],"relatedNodes":["n8n-nodes-whatsapp","n8n-nodes-http-request","n8n-nodes-oauth2"]}


node_type: @ionos-cloud/n8n-nodes-ionos-cloud.ionosCloudCertificateManager
package_name: @ionos-cloud/n8n-nodes-ionos-cloud
display_name: IONOS Cloud (Certificate Manager)
description: Interact with IONOS Cloud Certificate Manager API v2
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: rijeshharidas
author_github_url: https://github.com/ionos-cloud/n8n-nodes-ionos-cloud.git
npm_package_name: @ionos-cloud/n8n-nodes-ionos-cloud
npm_version: 1.0.8
community_fetched_at: 2026-04-16T09:43:35.889Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "certificate",
      "options": [
        {
          "name": "Certificate",
          "value": "certificate",
          "description": "Manage SSL/TLS certificates"
        },
        {
          "name": "Auto Certificate",
          "value": "autoCertificate",
          "description": "Manage auto-renewable certificates"
        },
        {
          "name": "Provider",
          "value": "provider",
          "description": "Manage certificate providers"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a certificate",
          "routing": {
            "request": {
              "url": "/certificates",
              "method": "POST"
            }
          },
          "description": "Create a certificate"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a certificate",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/certificates/{{$parameter.certificateId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a certificate"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a certificate",
          "routing": {
            "request": {
              "url": "=/certificates/{{$parameter.certificateId}}",
              "method": "GET"
            }
          },
          "description": "Get a certificate"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many certificates",
          "routing": {
            "request": {
              "url": "/certificates",
              "method": "GET"
            }
          },
          "description": "Get many certificates"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a certificate",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/certificates/{{$parameter.certificateId}}",
              "method": "PATCH"
            }
          },
          "description": "Update a certificate"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "certificate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an auto certificate",
          "routing": {
            "request": {
              "url": "/auto-certificates",
              "method": "POST"
            }
          },
          "description": "Create an auto certificate"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an auto certificate",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/auto-certificates/{{$parameter.autoCertificateId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete an auto certificate"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an auto certificate",
          "routing": {
            "request": {
              "url": "=/auto-certificates/{{$parameter.autoCertificateId}}",
              "method": "GET"
            }
          },
          "description": "Get an auto certificate"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many auto certificates",
          "routing": {
            "request": {
              "url": "/auto-certificates",
              "method": "GET"
            }
          },
          "description": "Get many auto certificates"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an auto certificate",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/auto-certificates/{{$parameter.autoCertificateId}}",
              "method": "PATCH"
            }
          },
          "description": "Update an auto certificate"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "autoCertificate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a provider",
          "routing": {
            "request": {
              "url": "/providers",
              "method": "POST"
            }
          },
          "description": "Create a provider"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a provider",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/providers/{{$parameter.providerId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a provider"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a provider",
          "routing": {
            "request": {
              "url": "=/providers/{{$parameter.providerId}}",
              "method": "GET"
            }
          },
          "description": "Get a provider"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many providers",
          "routing": {
            "request": {
              "url": "/providers",
              "method": "GET"
            }
          },
          "description": "Get many providers"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a provider",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/providers/{{$parameter.providerId}}",
              "method": "PATCH"
            }
          },
          "description": "Update a provider"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "provider"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a certificate",
      "routing": {
        "request": {
          "url": "/certificates",
          "method": "POST"
        }
      },
      "description": "Create a certificate",
      "resource": "certificate"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a certificate",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/certificates/{{$parameter.certificateId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a certificate",
      "resource": "certificate"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a certificate",
      "routing": {
        "request": {
          "url": "=/certificates/{{$parameter.certificateId}}",
          "method": "GET"
        }
      },
      "description": "Get a certificate",
      "resource": "certificate"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many certificates",
      "routing": {
        "request": {
          "url": "/certificates",
          "method": "GET"
        }
      },
      "description": "Get many certificates",
      "resource": "certificate"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a certificate",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/certificates/{{$parameter.certificateId}}",
          "method": "PATCH"
        }
      },
      "description": "Update a certificate",
      "resource": "certificate"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an auto certificate",
      "routing": {
        "request": {
          "url": "/auto-certificates",
          "method": "POST"
        }
      },
      "description": "Create an auto certificate",
      "resource": "autoCertificate"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an auto certificate",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/auto-certificates/{{$parameter.autoCertificateId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete an auto certificate",
      "resource": "autoCertificate"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an auto certificate",
      "routing": {
        "request": {
          "url": "=/auto-certificates/{{$parameter.autoCertificateId}}",
          "method": "GET"
        }
      },
      "description": "Get an auto certificate",
      "resource": "autoCertificate"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many auto certificates",
      "routing": {
        "request": {
          "url": "/auto-certificates",
          "method": "GET"
        }
      },
      "description": "Get many auto certificates",
      "resource": "autoCertificate"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an auto certificate",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/auto-certificates/{{$parameter.autoCertificateId}}",
          "method": "PATCH"
        }
      },
      "description": "Update an auto certificate",
      "resource": "autoCertificate"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a provider",
      "routing": {
        "request": {
          "url": "/providers",
          "method": "POST"
        }
      },
      "description": "Create a provider",
      "resource": "provider"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a provider",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/providers/{{$parameter.providerId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a provider",
      "resource": "provider"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a provider",
      "routing": {
        "request": {
          "url": "=/providers/{{$parameter.providerId}}",
          "method": "GET"
        }
      },
      "description": "Get a provider",
      "resource": "provider"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many providers",
      "routing": {
        "request": {
          "url": "/providers",
          "method": "GET"
        }
      },
      "description": "Get many providers",
      "resource": "provider"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a provider",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/providers/{{$parameter.providerId}}",
          "method": "PATCH"
        }
      },
      "description": "Update a provider",
      "resource": "provider"
    }
  ]

npm_readme:
  <div align="center">

  <img src="./credentials/ionos.svg" alt="IONOS Cloud" height="80" />&nbsp;&nbsp;&nbsp;&nbsp;<picture><source media="(prefers-color-scheme: dark)" srcset="https://n8n.io/brandguidelines/logo-white.svg"><source media="(prefers-color-scheme: light)" srcset="https://n8n.io/brandguidelines/logo-dark.svg"><img src="https://n8n.io/brandguidelines/logo-dark.svg" alt="n8n" height="80" /></picture>

  # n8n Nodes for IONOS Cloud

  [![npm version](https://img.shields.io/npm/v/@ionos-cloud/n8n-nodes-ionos-cloud.svg)](https://www.npmjs.com/package/@ionos-cloud/n8n-nodes-ionos-cloud)
  [![License](https://img.shields.io/npm/l/@ionos-cloud/n8n-nodes-ionos-cloud.svg)](https://github.com/ionos-cloud/n8n-nodes-ionos-cloud/blob/master/LICENSE)
  [![npm downloads](https://img.shields.io/npm/dm/@ionos-cloud/n8n-nodes-ionos-cloud.svg)](https://www.npmjs.com/package/@ionos-cloud/n8n-nodes-ionos-cloud)
  [![n8n](https://img.shields.io/badge/n8n-community-blue.svg)](https://n8n.io)
  ![Official](https://img.shields.io/badge/IONOS%20Cloud-Official-00BFFF.svg)

  **Official IONOS Cloud n8n community nodes**

  Automate your cloud infrastructure, DNS, CDN, certificates, and AI workflows with [n8n](https://n8n.io/)

  [Installation](#installation) • [Operations](#operations) • [Credentials](#credentials) • [Usage](#usage) • [Examples](#common-patterns) • [Resources](#resources)

  </div>

  ---

  ## Overview

  This is the **official** n8n community node package for IONOS Cloud, developed and maintained by the IONOS Cloud team. [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-license/) workflow automation platform.

  The package provides comprehensive integration with key IONOS Cloud services, enabling you to automate infrastructure provisioning, certificate management, DNS operations, CDN distribution, and AI-powered workflows directly from n8n.

  ## Included Nodes

  This package provides seven separate nodes for different IONOS Cloud services:

  1. **IONOS Cloud (Infrastructure)** - Core infrastructure management
  2. **IONOS Cloud (Certificate Manager)** - SSL/TLS certificate management  
  3. **IONOS Cloud (Cloud DNS)** - Domain name system management
  4. **IONOS Cloud (CDN)** - Content delivery network management
  5. **IONOS Cloud (AI Model Hub)** - AI model inference and RAG capabilities
  6. **IONOS Cloud Chat Model** ⚡ - LangChain sub-node for n8n's AI Agent (language model)
  7. **IONOS Cloud Embeddings** ⚡ - LangChain sub-node for n8n's AI Agent (text embeddings)

  ---

  ## Getting Started

  ### Prerequisites

  Before you begin, you will need:

  1. A [IONOS Cloud account](https://www.ionos.com/enterprise-cloud/signup)
  2. A Cloud API Bearer token ([learn how to generate tokens](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager))
  3. n8n installed (version 2.1.5 or higher)

  ### Installation

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

  #### Quick Installation Steps

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `@ionos-cloud/n8n-nodes-ionos-cloud` in **Enter npm package name**
  4. Agree to the risks of using community nodes
  5. Select **Install**

  **Note:** After installation, you may need to restart your n8n instance for the new node to be recognized.

  ## Operations

  ### Overview

  | Node | Resources | Operations | Description |
  |------|-----------|------------|-------------|
  | **Infrastructure** | 21 | 153 | Complete infrastructure management (compute, networking, storage, Kubernetes) |
  | **Certificate Manager** | 3 | 15 | SSL/TLS certificate lifecycle management with ACME support |
  | **Cloud DNS** | 7 | 28 | DNS zones, records (15 types), DNSSEC, zone transfers |
  | **CDN** | 2 | 7 | Content delivery with custom routing and geo-restrictions |
  | **AI Model Hub** | 4 | 20 | Foundation model inference, RAG capabilities, and OpenAI-compatible API |
  | **Chat Model** ⚡ | — | supplyData | LangChain chat model sub-node for n8n AI Agent |
  | **Embeddings** ⚡ | — | supplyData | LangChain embeddings sub-node for n8n AI Agent |

  > ⚡ **Sub-nodes**: The Chat Model and Embeddings nodes are LangChain sub-nodes that plug into n8n's built-in AI nodes (AI Agent, AI Chain, Vector Stores, etc.) rather than operating as standalone workflow nodes.

  > **✨ v1.0.2**: Patch release with enhanced subresource support for load balancers, NAT gateways, security groups, and target groups. Added request monitoring capabilities.


  <details>
  <summary><b>Infrastructure - Detailed Operations</b></summary>

  #### Account & Global Resources (12 operations)
  - **Contract** (1): Get Many
  - **Location** (2): Get, Get Many
  - **Image** (2): Get, Get Many  
  - **IP Block** (4): Create, Delete, Get, Get Many
  - **Request** (3): Get, Get All, Get Status

  #### Core Infrastructure (10 operations)
  - **Datacenter** (5): Create, Delete, Get, Get Many, Update
  - **LAN** (5): Create, Delete, Get, Get Many, Update

  #### Compute Resources (41 operations)
  - **Server** (21): Attach/Detach CDROM/Volume, Create, Delete, Get (+ CDROM/CDROMs/Volume/Volumes/Remote Console/Token), Get Many, Reboot, Resume, Start, Stop, Suspend, Update, Upgrade
  - **Volume** (6): Create, Create Snapshot, Delete, Get, Get Many, Update
  - **Snapshot** (4): Delete, Get, Get Many, Update
  - **NIC** (5): Create, Delete, Get, Get Many, Update
  - **Firewall Rule** (5): Create, Delete, Get, Get Many, Update

  #### Kubernetes (11 operations)
  - **Kubernetes Cluster** (6): Create, Delete, Get, Get Many, Get Kubeconfig, Update
  - **Node Pool** (5): Create, Delete, Get, Get Many, Update

  #### Networking (34 operations)
  - **Private Cross-Connect** (5): Create, Delete, Get, Get Many, Update
  - **Load Balancer** (9): Attach/Detach NIC, Create, Delete, Get (+ Balanced NIC/NICs), Get Many, Update
  - **Network Load Balancer** (5): Create, Delete, Get, Get Many, Update
    - Full support for Flow Logs and Forwarding Rules subresources
  - **Application Load Balancer** (5): Create, Delete, Get, Get Many, Update
    - Full support for Flow Logs and Forwarding Rules subresources with HTTP rules
  - **Target Group** (5): Create, Delete, Get, Get Many, Update
    - Enhanced with location and protocolVersion properties
  - **NAT Gateway** (5): Create, Delete, Get, Get Many, Update
    - Full support for Flow Logs and Rules subresources

  #### Security (5 operations)
  - **Security Group** (5): Create, Delete, Get, Get Many, Update
    - Full support for Rules subresource with comprehensive rule properties

  </details>

  <details>
  <summary><b>Certificate Manager - Detailed Operations</b></summary>

  #### Certificate Resource (5 operations)
  Upload and manage SSL/TLS certificates manually with full chain and private key support.
  - Create, Delete, Get, Get Many, Update

  #### AutoCertificate Resource (5 operations)
  Configure automatic certificate renewal via ACME providers (Let's Encrypt, etc.).
  - Create, Delete, Get, Get Many, Update
  - **Key Algorithms**: RSA (2048/4096), ECDSA (256/384)
  - **Features**: Subject Alternative Names (SANs), common name, provider selection

  #### Provider Resource (5 operations)
  Configure ACME certificate providers with External Account Binding (EAB) support.
  - Create, Delete, Get, Get Many, Update

  </details>

  <details>
  <summary><b>Cloud DNS - Detailed Operations</b></summary>

  #### Zone Resource (5 operations)
  Manage primary DNS zones.
  - Create, Delete, Get, Get Many, Update

  #### Record Resource (5 operations)
  Manage DNS records with 15 supported types: A, AAAA, ALIAS, CAA, CNAME, DS, HTTPS, MX, NS, SMIMEA, SRV, SSHFP, SVCB, TLSA, TXT
  - Create, Delete, Get, Get Many, Update

  #### SecondaryZone Resource (7 operations)
  Secondary zones with AXFR (zone transfer) support.
  - Create, Delete, Get, Get Many, Update, AXFR Get, AXFR Start

  #### ZoneFile Resource (2 operations)
  Import/export zones in BIND format (RFC 1035).
  - Get (export), Update (import)

  #### Quota Resource (1 operation)
  View DNS resource usage and limits.
  - Get

  #### DNSSEC Resource (3 operations)
  Enable and manage DNSSEC for zones.
  - Create (enable), Delete (disable), Get

  #### ReverseRecord Resource (5 operations)
  Manage reverse DNS (PTR) records for IPv4/IPv6.
  - Create, Delete, Get, Get Many, Update

  </details>

  <details>
  <summary><b>CDN - Detailed Operations</b></summary>

  #### Distribution Resource (5 operations)
  Configure CDN distributions with custom routing rules.
  - Create, Delete, Get, Get Many, Update
  - **Features**: Domain routing, SSL/TLS integration, HTTP/HTTPS schemes, geo-restrictions, upstream origins

  #### Ip Resource (2 operations)
  Get CDN edge server IPs for origin whitelisting.
  - Get, Get Many

  </details>

  <details>
  <summary><b>AI Model Hub - Detailed Operations</b></summary>

  #### Model Resource (2 operations)
  Browse and invoke foundation models for AI inference.
  - Get Many (list available models), Predict (run inference)
  - **Features**: RAG support via collection queries, custom model options, streaming responses

  #### Collection Resource (6 operations)
  Manage vector database collections for document storage and retrieval.
  - Create, Delete, Get, Get Many, Update, Query
  - **Features**: Chunking strategies (sentence/fixed/recursive), embedding models, database types (chromadb/pgvector), semantic search

  #### Document Resource (7 operations)
  Manage documents within collections for RAG applications.
  - Add, Delete, Delete All, Get, Get Many, Get Chunks, Update
  - **Features**: Base64 content encoding, metadata management, chunk retrieval, batch operations

  #### OpenAI Compatible Resource (5 operations)
  Use OpenAI-compatible API endpoints for standardized AI interactions.

  **Chat Completion** - Create chat completions with message history
  - Supports system, user, and assistant message roles
  - Parameters: model, messages (required), temperature, top_p, max_tokens, max_completion_tokens, n, stream, stop, presence_penalty, frequency_penalty, logit_bias, response_format, tools, tool_choice, user
  - Compatible with OpenAI chat completion API format

  **Completion** - Simple text completion
  - Parameters: model, prompt (required), temperature, top_p, max_tokens, n, stream, stop, presence_penalty, frequency_penalty, logit_bias, user
  - Compatible with OpenAI completion API format

  **Create Embeddings** - Generate vector embeddings from text
  - Parameters: model (default: BAAI/bge-large-en-v1.5), input (single text or comma-separated multiple texts)
  - Returns embedding vectors for semantic search and similarity

  **Generate Image** - Text-to-image generation
  - Parameters: model (default: black-forest-labs/FLUX.1-schnell), prompt (required), n, size (1024x1024, 1024x1792, 1792x1024), response_format (b64_json), user
  - Generates images from text descriptions

  **Get Many** - List available models
  - Returns all models in OpenAI-compatible format
  - Shows model capabilities and availability

  **API Endpoint**: `https://openai.inference.de-txl.ionos.com` (path: `/v1/*`)

  **Features**: Full OpenAI API compatibility, drop-in replacement for OpenAI in existing workflows, comprehensive parameter support

  > **Note:** Model dropdowns are populated dynamically from the IONOS API at runtime (`GET /v1/models`). When models are added or retired, the dropdown lists update automatically without requiring a node update.

  </details>

  ---

  ## Credentials

  All nodes in this package share a single credential type: **IONOS Cloud API**

  Authentication uses the [Cloud API Bearer token](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager).

  The same token works across all IONOS Cloud services (Infrastructure, Certificate Manager, DNS, CDN, and AI Model Hub).

  ## Compatibility

  Tested against n8n version 2.1.5+

  ## Usage

  ### Authentication
  1. Create new credentials in n8n and select "IONOS Cloud API"
  2. Provide your API token (generated from IONOS Cloud Console)
  3. The same credential works for all five nodes

  ### Using the Nodes

  #### Infrastructure
  * Add the "IONOS Cloud (Infrastructure)" node to your workflow
  * Select the resource (e.g., Server, Volume, Datacenter)
  * Choose the operation and configure the required fields

  #### Certificate Manager
  * Add the "IONOS Cloud (Certificate Manager)" node to your workflow
  * Select the resource (Certificate, AutoCertificate, or Provider)
  * Configure certificate properties, domains, and ACME providers

  #### DNS
  * Add the "IONOS Cloud (Cloud DNS)" node to your workflow
  * Select the resource (Zone, Record, SecondaryZone, etc.)
  * Configure DNS zones, records, and DNSSEC settings

  #### CDN
  * Add the "IONOS Cloud (CDN)" node to your workflow
  * Select the resource (Distribution or Ip)
  * Configure CDN distributions with routing rules and upstream origins

  #### AI Model Hub
  * Add the "IONOS Cloud (AI Model Hub)" node to your workflow
  * Select the resource (Model, Collection, Document, or OpenAI Compatible)
  * **Model**: AI inference with native IONOS API
  * **Collection**: Vector database management for RAG
  * **Document**: Manage documents in collections
  * **OpenAI Compatible**: Use OpenAI-compatible endpoints (chat, completions, embeddings, images)

  #### AI Agent Integration (Chat Model & Embeddings Sub-Nodes)

  The **IONOS Cloud Chat Model** and **IONOS Cloud Embeddings** are LangChain sub-nodes that integrate with n8n's built-in AI nodes.

  **Chat Model** — Use IONOS AI Model Hub as the LLM brain for the AI Agent:
  1. Add an **AI Agent** node to your workflow
  2. Click **+** on the AI Agent's **Language Model** input
  3. Select **IONOS Cloud Chat Model**
  4. Choose your credential and pick a model from the auto-populated dropdown
  5. The agent now uses IONOS AI Model Hub for all LLM reasoning

  **Embeddings** — Use IONOS AI Model Hub for text embeddings in RAG pipelines:
  1. Add an **In-Memory Vector Store** (or any vector store node)
  2. Click **+** on the vector store's **Embedding** input
  3. Select **IONOS Cloud Embeddings**
  4. Choose your credential and pick an embedding model

  **Example: AI Agent with RAG**
  ```
  Chat Trigger → AI Agent
                   ├── Language Model: IONOS Cloud Chat Model
                   ├── Memory: Window Buffer Memory
                   └── Tool: Vector Store Tool
                                └── In-Memory Vector Store (Load)
                                         └── Embedding: IONOS Cloud Embeddings
  ```

  > **Note:** The model dropdowns are populated dynamically from the IONOS API at runtime. Both sub-nodes reuse the same **IONOS Cloud API** credential as all other nodes in this package.

  ### Common Patterns

  **Automated SSL Certificate Deployment:**
  1. Use Certificate Manager to create an AutoCertificate
  2. Use CDN node to create a Distribution referencing the certificate ID
  3. Automate certificate renewal with n8n scheduling

  **Infrastructure Provisioning:**
  1. Use Infrastructure node to create Datacenter, Server, and Volume
  2. Use DNS node to create Zone and A/AAAA Records pointing to server IPs
  3. Use Certificate Manager to provision SSL certificates for domains

  **DNS Management:**
  1. Use DNS Zone resource to create zones
  2. Use Record resource to manage DNS records (A, CNAME, MX, TXT, etc.)
  3. Use DNSSEC resource to enable DNSSEC signing
  4. Use ReverseRecord for PTR records

  **AI-Powered Applications with RAG:**
  1. Use AI Model Hub Collection resource to create a vector database
  2. Use Document resource to add knowledge base documents
  3. Use Model Predict operation with collection query for context-aware responses
  4. Automate document updates and model inference in workflows

  **OpenAI-Compatible AI Integration:**
  1. Use OpenAI Compatible Chat Completion for conversational AI
  2. Use Create Embeddings for semantic search and similarity
  3. Use Generate Image for text-to-image generation
  4. Drop-in replacement for OpenAI API in existing n8n workflows

  **AI Agent with IONOS Cloud (native n8n AI integration):**
  1. Use IONOS Cloud Chat Model as the language model for n8n's AI Agent
  2. Use IONOS Cloud Embeddings with Vector Stores for RAG pipelines
  3. Combine with Window Buffer Memory for conversational context
  4. Add Vector Store Tool to give the agent access to your knowledge base
  5. See `examples/ionos-ai-agent-workflow.json` for a ready-to-import workflow

  ### Avoiding Rate Limits

  The IONOS AI Model Hub API enforces rate limits (300 requests/min, 5 requests/sec with a burst of 10). When a node receives multiple input items (e.g., from a preceding "Get All" operation), n8n executes the node once per item, which can trigger `429 Too Many Requests` errors.

  To prevent this, configure **batching** in the node's **Settings** tab:

  1. Open the AI Model Hub node and go to the **Settings** tab
  2. Under **Request Options**, click **Add Option** and select **Batching**
  3. Set **Items per Batch** to `2` (or lower)
  4. Set **Batch Interval (ms)** to `1000` (or higher)

  This ensures n8n processes only a few items at a time with a delay between batches, staying within the API rate limits.

  > **Tip:** If your workflow only needs a single API call (e.g., one Chat Completion), use a **Limit** node before the AI Model Hub node to reduce the input to 1 item.

  ## API Endpoints

  Each node connects to:

  - **Infrastructure**: `https://api.ionos.com/cloudapi/v6/`
  - **Certificate Manager**: `https://certificate-manager.de-fra.ionos.com`
  - **Cloud DNS**: `https://dns.de-fra.ionos.com`
  - **CDN**: `https://cdn.de-fra.ionos.com`
  - **AI Model Hub (Inference API)**: `https://inference.de-txl.ionos.com`
  - **AI Model Hub (OpenAI Compatible API)**: `https://openai.inference.de-txl.ionos.com`

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [IONOS Cloud Documentation](https://docs.ionos.com/cloud)
  * [Infrastructure API Documentation](https://api.ionos.com/docs/cloud/v6/)
  * [Certificate Manager API Documentation](https://api.ionos.com/docs/certmanager/v2/)
  * [Cloud DNS API Documentation](https://api.ionos.com/docs/dns/v1/)
  * [CDN API Documentation](https://api.ionos.com/docs/cdn/v1/)
  * [AI Model Hub API Documentation](https://api.ionos.com/docs/inference-modelhub/v1/)
  * [AI Model Hub OpenAI-compatible API Documentation](https://api.ionos.com/docs/inference-openai/v1/)

  ## Contributing

  We welcome contributions! If you find a bug or have a feature request:

  1. Check the [GitHub Issues](https://github.com/ionos-cloud/n8n-nodes-ionos-cloud/issues) to see if it's already been reported
  2. Open a new issue with a clear description and reproduction steps
  3. For feature requests, explain the use case and expected behavior

  ### Development

  To contribute code:

  1. Fork the repository
  2. Create a feature branch (`git checkout -b feature/amazing-feature`)
  3. Make your changes and test thoroughly
  4. Commit your changes (`git commit -m 'Add amazing feature'`)
  5. Push to the branch (`git push origin feature/amazing-feature`)
  6. Open a Pull Request

  ## License

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

  ## Support

  - 📖 [Documentation](https://docs.ionos.com/cloud)
  - 💬 [GitHub Issues](https://github.com/ionos-cloud/n8n-nodes-ionos-cloud/issues)
  - 🌐 [IONOS Cloud](https://www.ionos.com/cloud)
  - 📧 [Support](https://docs.ionos.com/cloud/support/general-information/contact-information)

  ---

  <div align="center">

  Made with ❤️ by the IONOS Cloud team

  </div>

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the IONOS Cloud Certificate Manager API v2 for SSL/TLS certificate lifecycle management.","capabilities":["Create SSL/TLS certificates","Delete SSL/TLS certificates","Get certificate details","List certificates","Update certificates","ACME protocol support","Certificate validation"],"authentication":"API key required (Cloud API Bearer token)","commonUseCases":["Automating SSL certificate provisioning for web servers","Managing certificate expiration and renewal workflows","Integrating certificate management into CI/CD pipelines","Automating domain secure configuration"],"limitations":["Requires IONOS Cloud account and API token setup","Requires n8n version 2.1.5 or higher","Part of community nodes (may require acceptance of risks)"],"relatedNodes":["IONOS Cloud (Infrastructure)","IONOS Cloud (Cloud DNS)","IONOS Cloud (CDN)","IONOS Cloud (AI Model Hub)","IONOS Cloud Chat Model"]}


node_type: n8n-nodes-afipsdk.afipSdk
package_name: n8n-nodes-afipsdk
display_name: Afip SDK
description: Official Afip SDK nodes.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: afipsdk
author_github_url: https://github.com/AfipSDK/
npm_package_name: n8n-nodes-afipsdk
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:35.891Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "webService",
      "options": [
        {
          "name": "Automation",
          "value": "automation"
        },
        {
          "name": "PDF",
          "value": "pdf"
        },
        {
          "name": "Util",
          "value": "util"
        },
        {
          "name": "Web Service",
          "value": "webService"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTokenAuth",
      "options": [
        {
          "name": "Get Authorization Token (TA)",
          "value": "getTokenAuth",
          "action": "Get authorization token (TA)",
          "description": "Before calling an ARCA web service, you need a TA, also known as an authorization token"
        },
        {
          "name": "Make Requests to ARCA Service",
          "value": "makeRequest",
          "action": "Execute web service request",
          "description": "Send requests to the ARCA web services"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webService"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "runAutomation",
      "options": [
        {
          "name": "Get Automation Result",
          "value": "getAutomationResult",
          "action": "Get automation result",
          "description": "Get automation result and retry if the automation is not complete"
        },
        {
          "name": "Run Automation",
          "value": "runAutomation",
          "action": "Run automation",
          "description": "Execute an Afip SDK automation"
        },
        {
          "name": "Run Automation And Wait",
          "value": "runAutomationAndWait",
          "action": "Run automation and wait",
          "description": "Execute an Afip SDK automation and wait for its result"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "automation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createPdf",
      "options": [
        {
          "name": "Create A PDF",
          "value": "createPdf",
          "action": "Create PDF",
          "description": "Create a PDF of your bills and send it to your customers"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdf"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getLastXml",
      "options": [
        {
          "name": "Get XML From Last Request",
          "value": "getLastXml",
          "action": "Get XML from last request",
          "description": "Get an XML including the last request and response to send to ARCA support mail"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "util"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Authorization Token (TA)",
      "value": "getTokenAuth",
      "action": "Get authorization token (TA)",
      "description": "Before calling an ARCA web service, you need a TA, also known as an authorization token",
      "resource": "webService"
    },
    {
      "name": "Make Requests to ARCA Service",
      "value": "makeRequest",
      "action": "Execute web service request",
      "description": "Send requests to the ARCA web services",
      "resource": "webService"
    },
    {
      "name": "Get Automation Result",
      "value": "getAutomationResult",
      "action": "Get automation result",
      "description": "Get automation result and retry if the automation is not complete",
      "resource": "automation"
    },
    {
      "name": "Run Automation",
      "value": "runAutomation",
      "action": "Run automation",
      "description": "Execute an Afip SDK automation",
      "resource": "automation"
    },
    {
      "name": "Run Automation And Wait",
      "value": "runAutomationAndWait",
      "action": "Run automation and wait",
      "description": "Execute an Afip SDK automation and wait for its result",
      "resource": "automation"
    },
    {
      "name": "Create A PDF",
      "value": "createPdf",
      "action": "Create PDF",
      "description": "Create a PDF of your bills and send it to your customers",
      "resource": "pdf"
    },
    {
      "name": "Get XML From Last Request",
      "value": "getLastXml",
      "action": "Get XML from last request",
      "description": "Get an XML including the last request and response to send to ARCA support mail",
      "resource": "util"
    }
  ]

npm_readme:
  # n8n-nodes-afipsdk

  This is an n8n community node that lets you use **Afip SDK** in your n8n workflows.

  [Afip SDK](https://afipsdk.com/) is a service that simplifies integration with ARCA (formerly AFIP), Argentina's federal tax authority. It handles authentication, web service requests, PDF generation, and browser automations so you don't have to deal with SOAP/XML directly.

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

  Search for `n8n-nodes-afipsdk` in the community nodes panel.

  ## Operations

  ### Web Service

  | Operation | Description |
  |-----------|-------------|
  | **Get Authorization Token (TA)** | Obtains an authorization token (Ticket de Acceso) required before calling any ARCA web service. Accepts `environment`, `tax_id`, `wsid`, and `force_create`. Supports custom `cert`/`key` for non-default certificates. |
  | **Make Requests to ARCA Service** | Sends requests to any ARCA web service using a previously obtained TA. |

  ### Automation

  | Operation | Description |
  |-----------|-------------|
  | **Run Automation** | Executes an Afip SDK automation asynchronously. Returns an automation ID you can use to poll for the result. |
  | **Run Automation And Wait** | Executes an automation and blocks until it completes, returning the result directly. |
  | **Get Automation Result** | Polls for the result of a previously started automation. Accepts an `automationId` and a `secondsToWait` retry interval. |

  ### PDF

  | Operation | Description |
  |-----------|-------------|
  | **Create A PDF** | Generates a PDF from a template and optionally emails it to a recipient. Accepts `file_name`, `send_to`, and `template`. |

  ### Util

  | Operation | Description |
  |-----------|-------------|
  | **Get XML From Last Request** | Returns the raw XML of the last request/response pair. Useful for debugging or sending to ARCA support. |

  ## Credentials

  This node requires an **Afip SDK API** credential (`afipSdkApi`).

  To set up credentials:
  1. Sign up at [afipsdk.com](https://afipsdk.com/) to obtain your API key.
  2. In n8n, go to **Settings → Credentials → New** and search for *Afip SDK*.
  3. Enter your API key and save.

  ## Compatibility

  - Tested with n8n `1.x`.
  - Requires n8n Nodes API version 1.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Afip SDK documentation](https://afipsdk.com/docs)
  - [ARCA (formerly AFIP) web services](https://www.afip.gob.ar/ws/)


